1 / 9
文档名称:

东北大学数值分析第一次实验报告.doc

格式:doc   大小:3,298KB   页数:9页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

东北大学数值分析第一次实验报告.doc

上传人:63229029 2017/4/15 文件大小:3.22 MB

下载得到文件列表

东北大学数值分析第一次实验报告.doc

文档介绍

文档介绍:数值分析实践报告姓 名学号班 级指 导教师开 设学期开 设时间报 告日期 2015 年5月 16日评 定成绩评 定人评 定日期东北大学软件学院 1 实验一: 1. 实验目的 1 、通过上机计算体会迭代法求解线性方程组的特点,并能和消去法比较; 2 、运用所学的迭代法算法,解决各类线性方程组,编出算法程序; 3 、体会上机计算时,终止步骤<或 k> (予给的迭代次数),对迭代法敛散性的意义; 4 、体会初始解 x ,松弛因子的选取,对计算结果的影响。 2. 实验环境使用平台: Microsoft Visual C++ 使用语言: C++ 3. 实验关键代码(1) 存放系数矩阵 double **A=new double*[n]; for(i=0;i<n;i++) A[i]=new double[n]; cout<<" 请输入 4 阶系数矩阵 A: "<<endl; for(i=0;i<n;i++) for(j=0;j<n;j++) cin>>A[i][j]; (2) 迭代算法 void Diedai(int n,double **A,double b[],double e,double w,double X[]){ int i,j,flag; double *t=new double[n]; double *Y=new double[n]; double *X_T=new double[n]; cout<<" 矩阵为: "<<endl; cout<<"**************************"<<endl; for(i=0;i<n;i++){ for(j=0;j<n;j++) cout<<A[i][j]<<'\t'; cout<<endl;} cout<<"**************************"<<endl; for(int k=0;k<2000;k++){ 2 flag=0; for(i=0;i<n;i++){ Y[i]=0; for(j=0;j<n;j++){ if(i!=j) Y[i]=Y[i]+A[i][j]*X[j];} X_T[i]=(1-w)*X[i]+w*(b[i]-Y[i])/A[i][i]; t[i]=fabs(X[i]-X_T[i]); X[i]=X_T[i];} for(i=0;i<n;i++) if(t[i]<=e) flag++; if(flag==n){ cout<<" 迭代次数为: "<<endl; cout<<(k+1)<<endl; break;}} if(k==2000) cout<<" 超出最大迭代次数"<<2000<<" ! "<<endl; delete []t; delete []X_T; delete []Y; } 注:以上仅是关键算法的代码,不是完整代码。 4. 实验结果依次输入 7 个超松弛因子,结果如下: 因子为 时,需要迭代 44 次; 3 因子为 时,需要迭代 17 次; 因子为 时,需要迭代 10 次; 因子为 时,需要迭代 6 次; 4 因子为 时,需要迭代 6 次; 因子为 时,需要迭代 32 次; 因子为 时,需要迭代超过 2000 次。超松弛迭代法收敛速度的快慢与松弛因子的选