线性方程组解法.doc_第1页
线性方程组解法.doc_第2页
线性方程组解法.doc_第3页
线性方程组解法.doc_第4页
线性方程组解法.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

电 子 科 技 大 学数值计算方法实 验 报 告学生姓名:周强学 号:2704203018一、实验室名称:211大楼206室二、实验项目名称:数值计算方法实验2线性方程组解法三、实验原理:(一)列主元高斯消去法高斯(Gauss)消去法主要思想是通过将方程组的系数增广矩阵同解变换成上三角矩阵,即将原方程组化为上三角方程组这种特殊的形式,这样求解方程组的问题就解决了。列主高斯消去法的必须条件是。但是即使,但当和相比很小时,在第k行元素有误,则该误差将放大倍传到的第i行。由于的绝对值很大,由此将带来舍入误差的严重增长,所以该条件下列主高斯消去法不适用。只有方程组的系数增广矩阵满足此条件时,才能用列主高斯消去法求解方程组;1)按列选主元。k-1次消元后,选第k列对角元以下绝对值最大的元素为该列主元。2)交换增广矩阵(A(k) b(k) 的第t行和k行。将新的主对角元,记为。3)用高斯消去法进行第k(kn)次消元.4)消元完成后,回代求解。图1为列主元高斯消元法流程图。 开始 结束YNY图1 列主元高斯消元法流程图(二)矩阵直接三角分解法 矩阵直接三角分解法不必借助于消元过程,而是由非奇异矩阵A的元素及递推关系直接定出L,U的元素,再根据分解出的L、U的矩阵,将A写成LU分解的紧凑格式,从而简化运算。图2是矩阵直接三角分解法的流程图。 开始 结束图2 矩阵直接三角分解法的流程图(三) 雅可比迭代法已知线性方程组 构造迭代通过此迭代格式求解方程组的算法为雅可比迭代法。图3为雅可比迭代法的流程图。Y 结束N 开始Y图3雅可比迭代法流程图(四)高斯-塞德尔迭代法已知线性方程组通过此迭代格式求解方程组的算法为高斯-塞德尔迭代法。四、实验目的: 1、熟悉求解线性方程组的有关理论和方法。2、编制列主元消去法、LU分解法、雅克比及高斯-赛德尔迭代法的程序。3、通过实际计算,进一步了解各种方法的优缺点,选择合适的数值方法。五、实验内容:(一)列主高斯消去法1 消元过程找主元 找,使得。如果,则矩阵A奇异,程序结束;否则执行.如果,则交换第k行和第的位置。消元,对,计算对,计算2 回代过程若,则矩阵A奇异,程序结束;否则执行。;对计算 实验程序:%消元过程for i=1:m-1 pivot,p=max(abs(Ab(i:n,i); %选取主元ip=p+i-1; %计算主元的行下标if ip=i Ab(i ip,:)=Ab(ip i,:); %行交换end pivot=Ab(i,i); for k=i+1:m Ab(k,i:nb)=Ab(k,i:nb)-(Ab(k,i)/pivot)*Ab(i,i:nb); %消元endEnd%回代过程x=zeros(n,1);x(n)=Ab(n,nb)/Ab(n,n); %计算x(n)的值for i=n-1:-1:1 x(i)=(Ab(i,nb)-Ab(i,i+1:n)*x(i+1:n)/Ab(i,i); %计算得出x(i)的值endfor k=1:n fprintf(x%d=%fn,k,x(k) %输出x(二)矩阵直接三角分解法 将方程组,分解为两个方程组,其中L是单位三角下矩阵,U是上三角矩阵。对,计算 对,计算 对对,计算 对,计算 ,对计算,对计算实验程序:%分解成紧凑格式Ab(2:m,1)=Ab(2:m,1)/Ab(1,1); %计算L(i,1)for k=2:m for j=k:nb Ab(k,j)=Ab(k,j)-Ab(k,1:k-1)*Ab(1:k-1,j); %计算矩阵U(m,n) end for i=k+1:m Ab(i,k)=(Ab(i,k)-Ab(i,1:k-1)*Ab(1:k-1,k)/Ab(k,k); %计算矩阵L(m,n) endend%回代过程x=zeros(n,1);x(n)=Ab(n,nb)/Ab(n,n);for k=n-1:-1:1 x(k)=(Ab(k,nb)-Ab(k,k+1:n)*x(k+1:n)/Ab(k,k); %计算x(i)的值endfor k=1:n fprintf(x%d=%fn,k,x(k) %输出x(i)end(三)雅克比迭代法设方程组的系数矩阵的对角元素,M为迭代次数容许的最大值,为容许误差。取初始向量,令。对计算如果,则输出,结束;否则执行.如果,则不收敛,终止程序;否则,转。实验程序:%迭代过程while 1 x1(1)=(b(1)-A(1,2:n)*x(2:n,1)/A(1,1); %计算x1(1) for i=2:n-1 x1(i)=(b(i)-A(i,1:i-1)*x(1:i-1,1)-A(i,i+1:n)*x(i+1:n,1)/A(i,i); %计算x1(i) y(n)=x1(i)-x(i); y(3) end x1(n)=(b(n)-A(n,1:n-1)*x(1:n-1,1)/A(n,n); %计算x1(n) k=k+1; if sum(abs(x1-x)=max fprintf(迭代法不收敛); %迭代次数大于max,终止 break end x=x1;end(四)高斯-塞德尔迭代法设方程组的系数矩阵的对角元素,M为迭代次数容许的最大值,为容许误差。取初始向量,令。对计算如果,则输出,结束;否则执行.如果,则不收敛,终止程序;否则,转。实验程序:%迭代过程while 1 x1(1)=(b(1)-A(1,2:n)*x(2:n,1)/A(1,1); %计算x1(1) for i=2:n-1 x1(i)=(b(i)-A(i,1:i-1)*x1(1:i-1,1)-A(i,i+1:n)*x(i+1:n,1)/A(i,i); %计算x1(i) end x1(n)=(b(n)-A(n,1:n-1)*x1(1:n-1,1)/A(n,n); %计算x1(n) k=k+1; if sum(abs(x1-x)=max fprintf(迭代法不收敛); %迭代次数大于max,终止 break end x=x1;end六、实验结果及讨论1列主元高斯消元法输出结果如表1所示:表1列主元高斯消元法输出结果x1x2x3-0.3982340.0137950.335144通过对主元的选取,使得消元因子的绝对值小于或等于1,避免了小主元,从而能保证舍入误差不扩散,保证取得的值是正确的。2矩阵直接三角分解法输出结果如表2所示:表2矩阵直接三角分解法输出结果x1x2x3x43.000000-2.0000001.0000005.000000若采用列主元高斯消元法来解这个方程组,所得到的结果也和矩阵直接三角分解法相同,与高斯消元法不同的是LU分解法避免了中间的消元过程,从而避免了高斯消元法中出现的问题。对于多次求解具有相同系数矩阵和不同右端向量的线性方程组,LU分解法更佳。3、雅克比迭代法输出结果如表3所示:表3 雅克比迭代法输出结果Nx1x2x3301.0000002.000000-1.000000图5是雅克比迭代法的迭代过程图4高斯-塞德尔迭代法输出结果如表4所示:表4高斯-塞德尔迭代法输出结果nx1x2x3151.0000002.000000-1.000000图6是高斯赛德尔迭代的过程图综合分析雅可比迭代法和高斯-塞德尔迭代法,由于它们是由迭代思想来解方程组的,所以要考虑迭代次数和容许误差,而容许误差又决定着迭代次数,当容许误差取1eps-10时,雅克比迭代法需迭代30次,当取1eps-8时,雅克比迭代法需迭代次25次,但输出结果不变,当取1eps-5时,输出迭代次数为17,输出结果变为x1=0.999999,x2=2.000001,x3=-1.000001,所以在用迭代法求解大型方程组或求解比较复杂的根时,要注

温馨提示

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

评论

0/150

提交评论