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

来源:百度知道 编辑:UC知道 时间:2024/05/21 19:37:13
要求输入未知数的个数。系数和常数.
再输出解.
一楼的雅可比迭代法根本不行

抄来的。加了输入。试了可以。

#include <stdio.h>
#include <math.h>

Jacobidiedai(int n, double *a, double *b,double *x)
{
int i,j;
double *x0,m=0,eps;
x0= (double *) malloc(n*sizeof(double));
for(i=0;i<n;i++)
x0[i]=x[i];
while(1)
{
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
m+=a[i*n+j]*x0[j];
m-=a[i*n+i]*x0[i];
x[i]=(b[i]-m)/a[i*n+i];
m=0;
}
for(i=1;i<n;i++)
{
eps=fabs(x[0]-x0[0]);
if(eps<fabs(x[i]-x0[i]))
eps=fabs(x[i]-x0[i]);
}
if(eps<1e-3) return 1;
for(i=0;i<n;i++)
x0[i]=x[i];
}
free(x0);
}

void main()
{
int i,j,n;
double *a;
double *b;
double *x;

printf("please enter n\n");
scanf("%d",&n);

a = (d