雅可比迭代法解线性方程组

雅可比迭代法解线性方程组

雅可比迭代法解线性方程组

#include"stdio.h"

#include"math.h"

#include"alloc.h"

Jacobidiedai(n,a,b,x)

int n;

double *a,*b,*x;

{

int i,j;

double *x0,m=0,eps;

x0=malloc(n*sizeof(double));

for(i=0;i

x0[i]=x[i];

while(1)

{

for(i=0;i

{

for(j=0;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

{

eps=fabs(x[0]-x0[0]);

if(eps

eps=fabs(x[i]-x0[i]);

}

if(eps<1e-3) return 1;

for(i=0;i

x0[i]=x[i];

}

free(x0);

}

main()

{

int i;

double a[3][3]={{5,2,1},{-1,4,2},{2,-3,10}},b[3]={-12,20,3},x[3]={0,0,0}; Jacobidiedai(3,a,b,x);

for(i=0;i<3;i++)

printf("x[%d]=%f\n",i,x[i]);

}

相关主题
相关文档
最新文档