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

  • 42
  • 0
  • 约4.2千字
  • 约 9页
  • 2016-11-05 发布于重庆
  • 举报
东北大学数值分析第一次实验报告

数值分析实践报告 姓名 学号 班级 指导教师 开设学期 开设时间 报告日期 2015年5月16日 评定成绩 评定人 评定日期 东北大学软件学院 实验一: 实验目的 1、通过上机计算体会迭代法求解线性方程组的特点,并能和消去法比较;? 2、运用所学的迭代法算法,解决各类线性方程组,编出算法程序;? 3、体会上机计算时,终止步骤或k(予给的迭代次数),对迭代法敛散性的意义;? 4、体会初始解x,松弛因子的选取,对计算结果的影响。 实验环境 使用平台:Microsoft Visual C++ 使用语言:C++ 实验关键代码 存放系数矩阵 double **A=new double*[n]; for(i=0;in;i++) A[i]=new double[n]; cout请输入4阶系数矩阵A:endl; for(i=0;in;i++) for(j=0;jn;j++) cinA[i][j]; 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;in;i++){ for(j=0;jn;j++) coutA[i][j]\t; coutendl;} cout**************************endl; for(int k=0;k2000;k++){ flag=0; for(i=0;in;i++){ Y[i]=0; for(j=0;jn;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;in;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; } 注:以上仅是关键算法的代码,不是完整代码。 实验结果 依次输入7个超松弛因子,结果如下: 因子为0.15时,需要迭代44次; 因子为0.45时,需要迭代17次; 因子为0.75时,需要迭代10次; 因子为1.0时,需要迭代6次; 因子为1.25时,需要迭代6次; 因子为1.5时,需要迭代32次; 因子为1.75时,需要迭代超过2000次。 超松弛迭代法收敛速度的快慢与松弛因子的选择有密切关系,迭代次数随着超松弛因子增加先减少再增加。 实验二: 实验目的 1、通过上机计算体会迭代法求解线性方程组的特点,并能和消去法比较;? 2、运用所学的迭代法算法,解决各类线性方程组,编出算法程序;? 3、体会上机计算时,终止步骤或k(予给的迭代次数),对迭代法敛散性的意义;? 4、体会初始解x,松弛因子的选取,对计算结果的影响。 实验环境cout请输入矩阵的规格(?X?):; cinmatrixNum; matrixA=allocMem(matrixNum*matrixNum); matrixD=allocMem(matrixNum*matrixNum); matrixL=allocMem(matrixNum*matrixNum); matrixU=allocMem(matrixNum*matrixNum); B=allocMem(matrixNum*matrixNum); f=allocMem(matrixNum); x=allocMem(matrixNum); xk=allocMem(matrixNum); b=allocMem(matrixNum); coutendlendlendl请输入矩阵中各元素值(为 matrixNum*matrixNum,共计 matrixNu

文档评论(0)

1亿VIP精品文档

相关文档