中北大学数字分析5-8实验报告.docVIP

  • 31
  • 0
  • 约7.64千字
  • 约 26页
  • 2016-10-19 发布于重庆
  • 举报
中北大学数字分析5-8实验报告

实验类别:数值分析 专 业:信息与计算科学 班 级 学 号:1308024120 姓 名:杨燕 中北大学理学院 实验五 线性方程组的迭代解法 【】Jacobi迭代法,Gauss-Seidol迭代法和SOR方法计算下列方程组的解。 【实验方法与步骤】 用C语言对Jacobi迭代法编程如下: #includestdio.h #includemath.h #define Max_N 10 #define Max_M 100 #define epsilon 1e-6 main() {int i,j,k=0,n; double a[Max_N][Max_N+1],x[Max_N],y[Max_N+1]; double s,temp; printf(\nPlease input n value(dim of Ax=b):); do { scanf(%d,n); if(nMax_N) printf(\nPlease re-input n value:); } while(nMax_N||n=0); /*输入Ax=b的[A|b]矩阵*/ printf(Input the A(i,j):\n); for(i=0;in;i++) for(j=0;jn+1;j++) scanf(%lf,a[i][j]); for(i=0;in;i++) x[i]=0; while(1) { temp=0.0;k++; for(i=0;in;i++) { s=0; for(j=0;jn;j++) { if(j==i) continue; s+=a[i][j]*x[j]; } y[i]=(a[i][n]-s)/a[i][i]; temp+=fabs(y[i]-x[i]); } if(tempepsilon) { printf(Diedaicishuis:%d\n,k); printf(Slove is:); for(i=0;in;i++) printf(x[%d]=%f\n,i,x[i]); break; } if(k=Max_M) { printf(The method is disconvergent!); return; } for(i=0;in;i++) x[i]=y[i]; } } 用C语言对Gauss-Seidol迭代法编程如下: #includestdio.h #includemath.h #define Max_N 10 #define Max_M 100 #define epsilon 1e-6 main() { int i,j,k=0,n; double a[Max_N][Max_N+1],x[Max_N],y[Max_N+1]; double s,temp; printf(\nPlease input n value(dim of Ax=b):); do { scanf(%d,n); if(nMax_N) printf(\nPlease re-input n value:); } while(nMax_N||n=0); /*输入Ax=b的[A|b]矩阵*/ printf(Input the A(i,j):\n); for(i=0;in;i++) for(j=0;jn+1;j++) scanf(%lf,a[i][j]); for(i=0;in;i++) x[i]=0; do { for(i=0;in;i++) { s=0; for(j=0;jn;j++) { s+=a[i][j]*x[j]; } temp=(a[i][n]-s)/a[i][i]; x[i]+=temp; } if(k=Max_M) { printf(The method is disconvergent!); return; } k++; } while(fabs(temp)e

文档评论(0)

1亿VIP精品文档

相关文档