满意答案
singleycf
2013.07.05
采纳率:54% 等级:13
已帮助:7908人
#include
#include
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
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);
}
void main()
{
int i,j,n;
double *a;
double *b;
double *x;
printf("please enter n\n");
scanf("%d",&n);
a = (double *) malloc(sizeof(double) * n*n);
b = (double *) malloc(sizeof(double) * n);
x = (double *) malloc(sizeof(double) * n);
printf("please enter a[j][i]\n");
for (i=0;i
printf("please enter b[j]\n");
for (j=0;j
(void) Jacobidiedai(n,a,b,x);
for(i=0;i
}
10分享举报