数值分析课程设计方案实验报告

上传人:新** 文档编号:512081485 上传时间:2022-12-23 格式:DOC 页数:13 大小:56.50KB
返回 下载 相关 举报
数值分析课程设计方案实验报告_第1页
第1页 / 共13页
数值分析课程设计方案实验报告_第2页
第2页 / 共13页
数值分析课程设计方案实验报告_第3页
第3页 / 共13页
数值分析课程设计方案实验报告_第4页
第4页 / 共13页
数值分析课程设计方案实验报告_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《数值分析课程设计方案实验报告》由会员分享,可在线阅读,更多相关《数值分析课程设计方案实验报告(13页珍藏版)》请在金锄头文库上搜索。

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

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

3、式xn二un,n-1/ unnxi=1/uii(ui, n+1-(ui,i+1xi+1+ .+u inxn)3.2 Gauss选列主元消去法原理:选列主元消去法就是在系数矩阵中按列选取绝对值最大 的值作为主元素,然后交换所在行与主元素所在行的位置,再按顺序消去法进行消元。四、主要代码:4.1 Gauss消去法主要代码fun cti on x=ha nxiaogu (A,b)n=len gth(b);for i= 1:n-1for k= i+1: nfor j= i+1: nif abs (A(i,i)10A(-6)warning(分母为零不能计算!);return;elseA(k,j)二 A(

4、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选列主元消法主要代码 fun cti on x=Gaussxiaoqumethod(A,b)%用高斯消去法解线性方程组A*x=b% x是未知量n=len gth(b);x=zeros (n ,1);c=zero

5、s(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%回带过

6、程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);endend五、结果显示:5.1 Gauss消去法和Gauss主元消去法结果相同显示结果:A =409612343678294322463872401511293645192637816431784400227863927b =406315504240-2557x=ha nxiaogu (A,b)x =-0.1818-1.66942.2226-0.4440六、结果验证A*x=4063.3384155

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

8、Gauss-Seidol迭代法解线性方程组, 会使用Matlab软件,回编写程序,并使用程序带入数据,计算 出结果。二、算法内容:编写程序,并使用Matlab程序运行程序,计算出结果三、设计过程3.1 Gauss-Seidol 迭代法迭代法的实现:根据迭代法的原理,编写Matlab程序,并运行, 然后带入数据算出结果。3.1.2 Gauss-Seidol迭代法的原理:线性方程组 Ax=b A=(aij)n x n非奇异,b=bb o.将Ax=b变换成映射形式的同解组x=Gx+f对取定的初值向量想x(0),取得极限x*=Gx*+f从而x*为A*x=b的解,当k充分大的时候x*=x(k).四、主要

9、代码:fun cti on x二n aspgs(A,b,xO,e,N)%用途:用向量(稀疏存储)形式的Gauss-Seidel迭代解线性方程组Ax=b%格式:x=naspgs(A,b,xO,e,N) A为系数矩阵,b为右端向量,x返回 解向%量,x0为初值向量(默认原点),e为精确度(默认1e-4),设置迭代次数上限%以防发散(默认500)n=len gth(b);if n arg in 5,N=500;e ndif n arg in 3,e=1e-4,e ndif n arg ine&kN,k=k+1;xO二x;x=-iA1*(A-A1)*xO+iA1*b;endx=full(x);if k

10、=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.803b二0.230,-52.322,54.000,240.236

11、,29.304,-117.818e=10A(-6)x0=0 0 0 0 0 0N=500x=n aspgs(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的矩阵, 而且这些矩阵往往是系数矩阵就是这些矩阵含有大量的0元素。对于这类的矩阵,在用直接法时就会耗费大量的时间和存储单元。因此我们有必要引入一类新的方法:迭代法。迭代法具有的特点是速度快。与非线性方程的迭代法一样,需要我们构造一个等价的方程,从而构造一个收敛序列,序列的极限值 就是方程组的根。迭代法需要主要的是所求方程组的特征值的模必须 小于1否则方程组的行列式不收敛。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号