计算方法上机报告之线性方程求解源程序代码及流程图|上机实验实习报告|计算机上机实习报告流程图
点击下载流程图线性流程图.doc
# include<math.h>
# define eps 0.5e-4
# define n 3
static double aa[n][n]={{10,-1,-2},{-1,10,-2},{-1,-1,5}};
static double bb[n]={7.23,8.32,4.24};
main()
{ int i,j,NO;
double a[n+1][n+1],b[n+1],x[n+1];
int jcb();
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{ a[i][j]=aa[i-1][j-1];
b[i]=bb[i-1];
}
printf("\n please enter NO: ");
scanf("%d",&NO);
j=jcb(a,b,x,eps,NO);
if(j!=0)
for(i=1;i<=n;i++)
printf("x[%d]=%f",i,x[i]);
}
int jcb(a,b,x,ep,NO)
int NO;
double a[][n+1],b[],x[],ep;
{ int i,j,k=0;double x1[n+1],d,s,max;
for (i=1;i<=n;i++)
x[i]=0;
do{ max=0.0;
for(i=1;i<=n;i++)
{ s=0.0;
for(j=1;j<=n;j++)
if(j!=i)
s=s+a[i][j]*x[j];
x1[i]=(b[i]-s)/a[i][i];
d=fabs(x1[i]-x[i]);
if (max<d) max=d;
}
for(i=1;i<=n;i++)
x[i]=x1[i];
k++; }
while((max<=eps)&&(k<NO));
printf("k=%d\n",k);
if(k>=NO)
{ printf("\n faid!");
return(0);
}
return(1);
}