雅克比迭代法求解线性方程组

简介: 雅克比迭代法求解线性方程组
#include<bits/stdc++.h>
using namespace std;
const int maxn=110;
double a[110][110],b[110];
double x[110],tmpx[110];
const double eps=1e-6;
int main(){
  double epsilon,sum;
  int k=0;
  int n;scanf("%d",&n);
  for(int i=0;i<n;i++)
    for(int j=0;j<n;j++)
      scanf("%lf",&a[i][j]);
  for(int i=0;i<n;i++) 
    scanf("%lf",&b[i])
  while(1){
    epsilon=0;
    k++;
    for(int i=0;i<n;i++){
      sum=0;
      for(int j=0;j<n;j++){
        if(i==j) continue;
        sum+=a[i][j]*x[j];
      }
      tmpx[i]=(b[i]-sum)/a[i][i];
      epsilon=max(epsilon,fabs(tmpx[i]-x[i]));
    }
    for(int i=0;i<n;i++) x[i]=tmpx[i];
    if(epsilon<eps){
      printf("迭代次数为%d\n",k);
      printf("方程组的解为:\n");
      for(int i=0;i<n;i++)
        printf("x%d=%.6f\n",i,x[i]); 
      return 0;
    }
    if(k>=100){
      puts("-1");
      return 0;
    }
  }
  return 0;
}
/*
4
4 0.24 -0.08 
0.09 3 -0.15
0.04 -0.08 4
8 9 20
*/
目录
相关文章
|
7月前
迭代法求一元三次方程
迭代法求一元三次方程
89 0
|
7月前
【数值分析】Jacobi、Seidel和Sor迭代法求解线性方程组(附matlab代码)
【数值分析】Jacobi、Seidel和Sor迭代法求解线性方程组(附matlab代码)
1238:一元三次方程求解 2020-12-27
1238:一元三次方程求解 2020-12-27
102 0
|
算法
秒懂算法 | 递推方程求解方法
时间复杂度和空间复杂度表示为递推方程的两种求解方法。
370 1
秒懂算法 | 递推方程求解方法
|
人工智能 移动开发 算法
初等变换法求解线性方程组
初等变换法求解线性方程组
|
人工智能 开发者
求解拉格朗日乘子法 | 学习笔记
快速学习求解拉格朗日乘子法
求解拉格朗日乘子法 | 学习笔记
|
算法 C语言 C++
【算法练习】迭代法求平方根
【算法练习】迭代法求平方根
【算法练习】迭代法求平方根
|
机器学习/深度学习
拉格朗日对偶
拉格朗日对偶
拉格朗日对偶