求雅可比迭代法解方程组的C尀C++程序

要求输入输入未知数的个数。系数和常数.再输出解.
2025-02-24 17:41:49
推荐回答(3个)
回答1:

#include
#include

void main()
{float a[10][10],b[10],x[10],y[10],e,sum,c;
int i,j,n,l;
printf("The top exp is ");
scanf("%d",&n);
printf("Now input array A\n");
for(i=0;i for(j=0;j scanf("%f",&a[i][j]);
printf("Now input array B first and then array X\n");
for(i=0;i scanf("%f,%f",&b[i],&x[i]);
printf("Now input e\n");
scanf("%f",&e);
l=0;
do{for(i=0;i {sum=0;
for(j=0;j sum+=a[i][j]*x[j];
for(j=i+1;j sum+=a[i][j]*x[j];
y[i]=(b[i]-sum)/a[i][i];
l+=1;
}
c=fabs(x[0]-y[0]);
for(i=0;i if(c c=fabs(x[i]-y[i]);
for(i=0;i x[i]=y[i];
}while(c printf("%d\n",l);
for(i=0;i printf("%f\n",y[i]);
}

回答2:

这个过程应该是很清楚,但是期中有一点不好做的是要求一个矩阵的逆矩阵,这是一个很复杂的事情。

如果你是学习数值分析课,做练习题的话,大可不必用这种方法了,毕竟那些习题还是比较简单的。

当然如果是这种情况,也为了练习一下编程,那么你的精神当然是可嘉的。

回答3:

这种问题不用教吧,是锻炼你的编写程序的能力的