数值分析课程设计方案实验报告_第1页
数值分析课程设计方案实验报告_第2页
数值分析课程设计方案实验报告_第3页
数值分析课程设计方案实验报告_第4页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、数值分析课程设计实验报告姓名:陈浩学号: 081002102班级: 091002指导老师:任林源完成日期: 2011-7目录一丶概述 _二丶设计内容 _三丶设计过程 _四丶主要代码 _五丶结果显示 _六丶结果验证 _七丶设计总结 _实验一: Gauss消去法和 Gauss选列主元消去法一丶概述1.1设计名称: Gauss消去法和 Gauss选列主元消去法1.2设计目的:数值分析课本中的最基础解线性方程组的方法Gauss 消去法和Gauss选列主元消去法,随着对他们的深入研究发现他们也有很多缺点.设计这次试验是为了找出这两者之间的区别。加强对这两种算法的了解和掌握 ,还有锻炼分析问题,解决问题的

2、能力,理解和掌握相关算法的原理执行并完成程序设计 .二丶设计内容、编程试验 Gauss消去法和 Gauss选列主元消去法 ;对二者算法进行比较;三丶设计过程3.1Gauss消去法3.1.1 消去法实现:根据消去法的原理,编写Matlab 程序,并运行,然后带入数据算出结果,再比较 .3.1.2 Gauss消去法的原理:方程组: A*x=bA 为矩阵 A= a(11) a(12)a(1n);a(21) a(22)a(2n);a(n1) a(n2)a(nn)b=b1 b2bn1回带过程用行列式的初等行变换把A 化为上三角矩阵,则可以取得xn 的值,有 xn 的值则可以带入上一式中求出 x(n-1)

3、 的值,以此类推则可以求得 xi 的值则递推公式xn=un,n-1/unnxi=1/uii(ui,n+1-(ui,i+1xi+1+.+uinxn)3.2 Gauss选列主元消去法3.2.1 原理:选列主元消去法就是在系数矩阵中按列选取绝对值最大的值作为主元素, 然后交换所在行与主元素所在行的位置,再按顺序消去法进行消元。四丶主要代码:4.1 Gauss消去法主要代码function x=hanxiaogu (A,b)n=length(b);for i= 1:n-1for k= i+1:nfor j= i+1:nif abs (A(i,i)10(-6)warning(分母为零不能计算 !);re

4、turn;elseA(k,j)= A(k,j)-A(i,j)*A(k,i)/A(i,i);endendb(k)=b(k)-b(i)*A(k,i)/A(i,i);A(k,i)=0;endend%回代求解x(n)=b(n)/A(n,n);for i=n-1:-1:1sum=0;for j=i+1:nsum=sum+A(i,j)*x(j);endx(i)=(b(i)-sum)/A(i,i);endend4.2 Gauss选列主元消法主要代码function x=Gaussxiaoqumethod(A,b)%用高斯消去法解线性方程组A*x=b%x 是未知量n=length(b);x=zeros(n,1

5、);c=zeros(1,n);%寻找最大元t=0;for i=1:n-1max=abs(A(i,i);m=i;for j=i+1:nif maxabs(A(j,i)max=abs(A(j,i);m=j;endendif m=ifor k=1:nc(k)=A(i,k);A(i,k)=A(m,k);A(m,k)=c(k);endt=b(i);b(i)=b(m);b(m)=t;endfor k=i+1:nfor j=i+1:nA(k,j)=A(k,j)-A(i,j)*A(k,i)/A(i,i);endb(k)=b(k)-b(i)*A(k,i)/A(i,i);A(k,i)=0;endend%回带过程x

6、(n)=b(n)/A(n,n);for i=n-1:-1:1sum=0;for j=i+1:nsum=sum+A(i,j)*x(j);endx(i)=(b(i)-sum)/A(i,i);endend五丶结果显示:5.1 Gauss消去法和 Gauss主元消去法结果相同显示结果: A =409612343678294322463872401511293645192637816431784400227863927b =406315504240-2557x=hanxiaogu (A,b)x =-0.1818-1.66942.2226-0.4440六丶结果验证A*x=4063.33841550.223

7、44240.23322556.6944这说明 Gauss消去法和 Gauss主元消去法的计算精度是相当高的。但是如果系数矩阵A 是奇异矩阵,就会出错。七丶设计总结列主元消元法和Gauss 消元法的计算过程基本上是一样的,只是在每一次消元前要选取系数矩阵的列主元,然后把方程组做适当的行交换再进行消元运算, 这就保证了舍入误差不扩散。列主元消元法克服了顺序 Gauss 消元的缺点,运算量也没有全主元消元法那么大,因此是解线性方程组的一种比较实用而且简单的方法。实验二: Gauss-Seidol迭代法线性方程组一概述:1.1设计说明: Guass-Seidol迭代法1.2设计目的:深入学习和掌握 G

8、auss-Seidol迭代法解线性方程组,会使用 Matlab 软件,回编写程序,并使用程序带入数据,计算出结果。二丶算法内容:编写程序,并使用 Matlab 程序运行程序,计算出结果三丶设计过程3.1Gauss-Seidol迭代法3.1.1迭代法的实现: 根据迭代法的原理, 编写 Matlab 程序,并运行,然后带入数据算出结果。3.1.2Gauss-Seidol迭代法的原理:线性方程组 Ax=bA=(aij)n n 非奇异, b=b bo. 将Ax=b 变换成映射形式的同解组x=Gx+f由此构造迭代公式x(k)=Gx(k-1)+f对取定的初值向量想x(0) ,取得极限 x*=Gx*+f从而

9、 x* 为 A*x=b 的解,当 k 充分大的时候 x*=x(k).四丶主要代码:function x=naspgs(A,b,x0,e,N)%用途:用向量(稀疏存储)形式的Gauss-Seidel迭代解线性方程组Ax=b%格式:x=naspgs(A,b,x0,e,N)A 为系数矩阵, b 为右端向量, x 返回解向%量,x0 为初值向量(默认原点),e 为精确度(默认 1e-4),设置迭代次数上限%以防发散(默认500)n=length(b);if nargin5,N=500;endif nargin3,e=1e-4,endif nargine&kN,k=k+1;x0=x;x=-iA1*(A-

10、A1)*x0+iA1*b;endx=full(x);if k=N,warning( 已达迭代次数上线 );endend五丶结果显示A=17.031,-0.615,-2.991,1.007,-1.006,0.000;-1.000,34.211,-1.000,-2.100,0.300,-1.700;0.000,0.500,13.000,-0.500,1.000,-1.500;4.501,3.110,-3.907,-61.705,12.170,8.999;0.101,-8.012,-0.017,-0.910,4.918,0.100;1.000,2.000,3.000,4.500,5.000,21.8

11、03 b=0.230,-52.322,54.000,240.236,29.304,-117.818 e=10(-6)x0=0 0 0 0 0 0 N=500x=naspgs(A,b,x0,e,N)x =0.9071-1.96183.2937-4.50072.0293-5.2551 六 丶 结 果 验 证 : A*x= 0.2301897-52.322009853.9995241.141902829.3037902117.8189953这说明 Gauss-Seidol迭代法的精确度比较高,但是奇异矩阵还是会出错的。七丶设计总结直接法得到的解是理论上准确的, 但是我们可以看得出, 它们的计算量都是 n3 数量级,存储量为 n2 量级,这在 n 比较小的时候还比较合适,但是对于现在的很多实际问题, 往往要我们求解很大的 n 的矩阵,而且这些矩阵往往

温馨提示

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

评论

0/150

提交评论