雅可比迭代法
南 昌 航 空 大 学 实 验 报 告
年 月 日
课题名称: 计算方法
班级: 0904
指导老师评定: 实验名称: 雅可比迭代法 姓名: 同组人: 签名:
一. 实验目的
1. 加深对雅可比迭代法的理解。
2. 熟练的运用雅可比迭代法解题。
二. 实验内容
用雅可比迭代法解下列方程组:
10x 1-x 2+2x3=6
-x 1+11x2-x 3+x4=25
2x 1-x 2+10x3+x4=-11
3x 2-x 3+8x4=15
三. 实验步骤
1. 建立两个函数。
2. 输入x1,c,n 后,利用一个for 循环进行计算,求得x;
原始代码:
#include #include
南 昌 航 空 大 学 实 验 报 告
年 月 日
课题名称: 计算方法
班级: 09 实验名称: 雅可比迭代法 姓名: 同组人: 指导老师评定: 签名: void main()
{ double a[4][4]={{10,-1,2,0},{-1,11,-1,3},{2,-1,10,-1},{0,3,-1,8}};
double b[4]={6,25,-11,15};
double x[4],y[4],z[4],l[4];
double n;
int i,j,t;
x[0]=0;x[1]=0;x[2]=0;x[3]=0;x[4]=0;
for( t=0 ; t
{for( i=0 ;i
{ for( j=0,z[i]=0 ; j
{ if( j==i )
continue;
z[i]+=a[i][j]*x[j]; } y[i]=(b[i]-z[i])/a[i][i];
南 昌 航 空 大 学 实 验 报 告
年 月 日
课题名称: 计算方法
班级: 09 实验名称: 雅可比迭代法 姓名: 同组人: 指导老师评定: 签名: l[i]=fabs(y[i]-x[i]);
}
if(l[0]
for( i=0 ; i
{x[i]=y[i];
}
}
printf(" The answer are:");
for( i=0 ; i
printf("%lf ",x[i]);
}
四. 实验结果 1.00000 2.000001 -1.000000 1.000001