数值分析 C语言编程 求助!!谁是牛人来解决一下

来源:百度知道 编辑:UC知道 时间:2024/06/21 23:40:34
.用雅格比法与高斯-赛德尔迭代法解下列方程组Ax=b,研究其收敛性,上机验证理论分析是否正确,比较它们的收敛速度,观察右端项对迭代收敛有无影响。
(1)A行分别为A1=[6,2,-1],A2=[1,4,-2],A3=[-3,1,4]; b1=[-3,2,4]T, b2=[100,-200,345]T,
(2) A行分别为A1=[1,0,8,0.8],A2=[0.8,1,0.8],A3=[0.8,0.8,1];b1=[3,2,1] T, b2=[5,0,-10]T,
(3)A行分别为A1=[1,3],A2=[-7,1];b=[4,6]T,

这是我写的一个作业 你拿去改改吧
jacobi
#include<iostream>
using namespace std;
#include <math.h>
#define N 3
int main()
{
int i,j;
double a[N][N]={
{10,-1,-2},
{-1,10,-2},
{-1,-1,5}};
double b[N]={7.2,8.3,4.2};
double x[N]={0},tm;
double xnew[N]={0};
double max;
int m=0;
while(++m)
{
cout<<m;
max=0;
for(i=0;i<N;i++)

{
tm=0;
for(j=0;j<N;j++)
if(i!=j)
tm+=x[j]*a[i][j];
xnew[i]=(b[i]-tm)/a[i][i];
cout<<" x["<<i<<"]="<<xnew[i];
}
cout<<endl;
for(j=0;j<N;j++)
{
if(fabs(x[j]-xnew[j])>max)
max=fabs(x[j]-xnew[j]);
x[j]=xnew[j];
}
if(max<0.000001)
break;
}
return 1;
}
gussi
#