文档详情

数值分析C语言迭代法.doc

发布:2017-04-20约1.24千字共6页下载文档
文本预览下载声明
数值分析实验报告 上机实验题目 用SOR法求解方程组: 分别取w=0.65、1、1.2、1.45计算.要求精度为10-6;并指出迭代次数。 (参考P66解线性方程组的SOR迭代算法) /*************************************************/ #include stdio.h #include stdlib.h #include stdio.h void SOR(); double SORi(int); double SORj(int); double A[4][5]= {4,-6,2,-8,-8,-6,10,-6,14,12,2,-6,35,-15,16,-8,14,-15,22,13}; double X[4]={0}; double w; int main(){ printf(请输入w的值\n); scanf(%lf,w); SOR(); return 0; } void SOR(){ int i=0,j,n=0,max; printf(输入迭代次数\n); scanf(%d,max); while(nmax){ printf(迭代第%d次\n,n); while(i4) { X[i]=X[i]+(w/A[i][i])*(A[i][4]-SORi(i)-SORj(i)); printf(X[%d]=%lf8\n,i,X[i]); i++; } i=0; n++; } } double SORi(int i){ int j=0; double sum=0; while(ji) { sum+=A[i][j]*X[j]; j++; } return sum; } double SORj(int i){ int j=i; double sum=0; while(j4) { sum+=A[i][j]*X[j]; j++; } return sum; } /*************************************************/ w=0.65时 迭代了542次 /*****************************************************************************/ w=1时 迭代了278次 /********************************************************************/ w=1.2时 迭代了168次 /*******************************************************************/ w=1.45时 迭代了137次 由以上实验中得出w 取值为1.45时迭代效率较高。
显示全部
相似文档