数值分析第四次实习报告_第1页
数值分析第四次实习报告_第2页
数值分析第四次实习报告_第3页
数值分析第四次实习报告_第4页
数值分析第四次实习报告_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学生实验报告书学生学号实验课成绩实验课程名称:数值分析(第四次实习)开课名称:计算机科学与技术学I指导老师姓名:熊盛武学生姓名:学生专业班级:软件工程0803班20092010学年 第一学期一、计算实习的内容:实习1给定矩阵A与向量50、“ 一 1 n0 02 301 2n0b=O(1) 求A的三角分解(不必输出);(2) 利用A的三角分解解卜列方程组: Ax=b Ax=bA?x=b对第题分析一下,如果先求M=A-,再解Mx=b,有何缺点?实习2追赶法的优点分别对n=5,100.300解下列方程组Ax=b2 1 、1 2 1-7、 -51 2 10 1 2丿b=再用现有的三角分解法程序解此方程

2、组,比较一下两者的效率,哪种方法机时少,可求解的 矩阵阶数高?实习3 Jacobi迭代法与Gauss-Seidel迭代法的收敛性与收敛速度研究用Jacobi迭代法与Gauss-Seide迭代法解下列方程组Ax=b的收敛性,通过上机计算, 验证分析是否正确,并观察右端项对迭代收敛是否有影响,比较两法的收敛速度。/ 10.8080.810.82QA=0.80.81丿bl=J丿b2=01 3、6 2-1)(-3、(100 14 -22-200-3 144345(1) A=bl= 丿b2=I Am /实习4松弛因子对超松弛迭代法收敛速度的影响编写一个超松弛迭代法解方程组Ax=的计算机程序,其中-411

3、-411-4A= 分别对不同的阶数丫 _II人-II e=W6时所用的迭代次数k,观察松弛因子对收敛速度的影响。(例如 7i=101 n=100) w=l.l t 1.2,1.9进行迭代,记录近似解-4实习5用欧拉公式求解计算实习:(_)三角分解法程序源代码#iiicludeusing namespace std;int main()const int MAX_N=20;static double aMAX_NMAX_N,bMAX_N、xMAX_N、yMAX_N;static double uMAX_NMAX_NMAX_NMAX_NJ;int ijknj;cout请输入矩阵阶数:”;ciiin

4、;if(nMAX_N)coutMThe mput n is larger than MAXJM.please redefine the NIAX_Nnendl; return 1;if(n=0)coutMplease mput n behveen 1 andHMAX_N; return 1;输入 aij,bicoutHnow mput the matrix aij jj=0.Hn-1 :H;for(i=0:in;i+)for(j=0:jnj+)cinai|j;cout,now mput the matrix bi,i=O.Hn-l:; fbr(i=O;in;i-H-)cinbi;分解过程fbi

5、(i=O;in;i+)lii=l矩阵对角元素为1fbr(k=O;kn;k+) for(j=0:jn-l;j-H-)/计算 u 矩阵 Ukj=akj;fbr(i=O;r=k-l ;r+)uMj-=lkr*urj; for(i=k+1 ;kn;i+)/ 计算 1 矩阵 lik=aik;for(r=0;r=k-l ;i+)lik-=lir*uik; lik/=ukk;/lv=bfbr(i=O;in;i-H-)yi=bi;for(j=Oj=O;i) xi=yi;for(j=i+l;jnj+)xi-=ui(j*x|j; xi/=uii;cout方程组的解为:”;输出X fbr(i=O;in;i-H-)

6、coutxi return 0;# mclude using namespace std; mt mam()const iiit MAX_N=300;mt aMAX_NhbMAX_N,cMAX_N.dMAX_N; float MAX_NMAX_N,yMAX_N,xMAX_N;lilt 11;cout“请输入矩阵阶数:”;cinn;if(nMAX_N)coutMThe mput n is larger tliaii MAX_N,please redefine tlie NIAX_NHendl; return 1; if(n=0)coutnplease input n between 1 andn

7、MAX_N; return 1;输入 an,bn,cn,dncoutnnow mput the matiix an,n=2.MnH :H; fbr(i=2;i=n;i+)ciiiai;coutHnow mput the matrix bn,n=l.HnM :”; fbr(i=l;i=n;i+)cmbi;coutnnow mput the matrix cnji=l”-:H; fbr(i=l;in;i+)ciiici;coutnnow mput the matnx dn,n=l./,nn :H; fbr(i=l;i=n;i+)ciiidi;追的过程r0=0;y0=0;al=0;cn=0;for(

8、i=l;i=n;i+)yi=(di-ai*yi-l)/li;赶的过程coutendl;xn=yn;xi=yi-ri*xi+l;coutvv”方程组的解为:”;for(i=l;i=n;i-H-)coutxi,r ”;coutendl;return 0;计算得解为:一2 3 3 3 2(三)雅可比迭代法和高斯赛德尔迭代法程序源代码include include using namespace std;iiit a.bjn;double *x0;void Jacobi(double *c.double *djnt n.double eps);void Gauss(double *c,double *

9、d jnt n.double eps);void maiiiQiiit n;double *A,*B;double e;cout“请选择求方程组的迭代方法!雅可比选0,高斯-赛德尔选l!endl; cinn;coutvv “输入方程组的变量的个数以及方程的个数!endl;cinab;A=new double*b;fdr(int i=0;ifendl;for(mt k=O;kb;k+) fdr(intj=Oja;j-H-)cmAk|j;cmBk;coutvv”输入方程组迭代的次数及所要求的精度!endl;cinme;coutH输入方程组迭代的初值rendl;for(intj=Oja;j-H-)c

10、inxOIj;switch (n)case 0:Jacobi(A,B,m,e);break;case l:Gauss(A.B,m.e);break;default:cout你没有选择求解方程组的一种方法!endl;break;void Jacobi(double *c.double *djnt n.double eps)mt k,i;double *y = new doublea/x=new doublea,s,temp=0.0; k=l;wlule(l)temp = 0.0;fdr(i=O;ia;i+)s=0.0;fdr(intj=Ojtemp)temp=fabs(xOi-s);if(tem

11、peps)coutvv”迭代成功!迭代结果为:nendl;fdr(i=O;ia;i+)coutMv,iH =Hviendl;break;if(k=m)coutM 迭代失败!,endl;break;k+=l;fdr(i=O;ia;i+)xOi=yi;void Gauss(double *c,double *d jnt n.double eps)mt k,i;double *y=new doublea5*x=new doublea,s,temp=0.0;fdr(i=O;ia;i+)xi=xOi;yi=xi;k=l;while(l)temp=0.0;fdr(i=O;ia;i+) s=0.0;fdr(

12、intj=Ojtemp)temp=fabs(xi-s);if(tempeps)coutvv”迭代成功!迭代结果为:nendl;fdr(i=O;ia;i+)coutMv,in =Hviendl;break;if(k=m)coutM 迭代失败 yvvendl;break;k+=l;fdr(i=O;i Fileslicrosoft Visual StudioMyProjectsqqTDebugqqr- exe* 慎选择求方程组的迭代方法?雅可比选0,書淒需盟 站入方程组的变量的个数以及方程的个数?33输入每个方程组的变量的系数以及方程右端的值?62-1-314-22k3 144输入方程组迭代的次数及

13、所要求的精度?190.0001输入方程组迭代的初值?0 0 0送代成功?迭代结果为:SfL0 =-0.727254ytl =0.808108y2 =0.252514Pess any key to continue.用高斯赛德尔迭代法程序运行结果如下:頁- rC: Progra Fileslicrosoft Visual StudioMyProjectsqqTDebugqqw- exe*冃请选择求方程组的迭代方法?雅可比选0,高斯-赛德尔选1?1输入方程组的变量的个数以及方程的个数?33输入每个方程组的变量的系数以及方程右端的值?62-1-314-22-3 144输入方程组迭代的次数及所要求的精

14、度?19 0.0001输入方程组迭代的初值?0 0 0迭代成功?迭代结果为:y0 =-0.727247SfLI =0.808074y2 =0.252546Pess any key to continue通过运行结果可以看出高斯赛德尔迭代法比雅可比迭代法所求结果精度高,收敛性好。(四)超松弛迭代法程序源代码# iiiclude using namespace std;# iiicludedefine MAX_N 20define MAXREPT 100#define epsilon 0.00001 mt mam()iiit n;Ult i,j,k;double err.w;static doub

15、le aMAX_NMAX_N,bMAX_NMAX_N,cMAX_N铠MAX_N; static double xMAX_N jixMAX_N;coutHinput n value (dim of Ax=c):H;/输入方程的维数ciiin;if(nMAX_N)coutHThe mput n is larger than MAX_N,please redefine the MAX_NMendl; return 1;if(n=0)coutHplease mput n between 1 andtrMAX_N;return 1;输入 aij,cicoutMnow mput the matrix ai

16、j4j=0.Hn-lH 上;fbr(i=0;in;i+)for(j=0jnj+)cinaij;coutMnow mput the matiix ci4=0.nii-lH :,r;fbr(i=0;in;i+)cinci;coutMnow mput the w value/);cinw;if(w=2)coutMw must between 1 and 2.Mendl;return 1;foi(i=o ;in;i+) 形成 x_ k+1 =bx_k +g迭代矩阵 bfor(j=OJnj+)gi=ci/aii;为了简化程序,假设aii!=0否则要附加对ai 1的处理for(i=O;jMAXREPT;i

17、+)foi(j=Ojnj+)nxj=gj;for(j=O;jnj+)for(k=O;kn;k+) if(j=k)contmue; iix|j+=b|j k *iixk 代fbr(k=j+l ;kn;k+)nxj+=bjk*xk; nxj=(l-w)*xj+w*iix|j;en=O;for(j=O;jnj+) if(errfabs(iixj-xj)en=fabs(iixlj-xj); for(j=Ojnj+)xj=nxj;if(errepsilon)coutMtlie solve aie:M;fbr(i=O;in;i+) coutxiH H;coutendl;return 0:coutHafte

18、r ,MAXREPTrepeat,no result.”;/输出 return 1;co = 1.2 时解为:02321790.06620660.494194co = 1.4 时解为:0232180.06620660.494194co = 1.6 时解为:0232180.06620740.494193由以上3组结果可知1,血越小,精度越人(五)欧拉公式程序源代码#iiiclude #iiiclude define f(x,y) (x+y) mt main()iiit m;iiit i;double a、b,yO;double xii.yn.xii 1 .yn 1 ,yii 1 b;double h;coutHmpiut the begm and end of x:H; cina;ciiib;coutMinput the y value/1;ciiiyO;coutMinpu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论