欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOC文档下载  

    实验报告材料四线性方程组地求解-迭代.doc

    • 资源ID:16341       资源大小:238.01KB        全文页数:21页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    实验报告材料四线性方程组地求解-迭代.doc

    实验项目名称 线性方程组的求解迭代法一. 实验目的和要求1 掌握Jacobi迭代方法,Gauss-Seidel迭代方法,SOR迭代方法的编程思想,能够分别用分量形式和矩阵形式编写相关程序。2 观察SOR迭代法中松弛因子变化情况对收敛的影响。3 了解Hilbert矩阵的病态性和作为线性方程组系数矩阵的收敛性。二. 实验内容和原理编程题2-1要求写出Matlab源程序(m文件),并有适当的注释语句;分析应用题2-2,2-3,2-4要求将问题的分析过程、Matlab源程序和运行结果和结果的解释、算法的分析写在实验报告上。2-1 编程注释设 对下述求解线性方程组的Matlab程序添上注释语句,其中和分别为线性方程组的系数矩阵和右端向量;为迭代初始向量;为容许迭代最大次数,为迭代终止条件的精度(容许误差),终止条件为前后两次迭代解的差的向量2-X数。1) Jacobi迭代:2) Gauss-Seidel迭代:GaussSeidelmethod(A,b,x0,Nmax,eps)3) 松弛迭代:SORmethod(A,b,x0,Nmax,eps,w)2-2 分析应用题利用2-1中的程序来分析用如下迭代法解线性方程组:的收敛性,并求出使的近似解与相应的迭代次数,其中取迭代初始向量为零向量。1Jacobi迭代法;2Gauss-Seidel迭代法;3松弛迭代法松弛因子依次取1.334,1.95,0.95。2-3 分析应用题考虑方程组,其中系数矩阵为Hilbert矩阵,选择问题的维数分别为2、3、5、10,并通过首先给定解再定出右端的方法确定问题,解的给定可以使用函数定义,并取迭代初始向量为零向量,迭代误差为,编写程序:其中n为Hilbert矩阵的维数,分别构造求解该问题的Jacobi迭代和Gauss-Seidel迭代,看它们是否收敛。2-4 分析应用题解线性方程组的解向量,取,其中为任一非零的六元向量;编写程序输出结果:认真观察之,能发现什么有趣的现象?【MATLAB相关函数】n 提取(产生)对角阵v=diag(x)假如输入向量x,如此输出v是以x为对角元素的对角阵;假如输入矩阵x,如此输出v是x的对角元素构成的向量v=diag(diag(x)输入矩阵x,输出v是x的对角元素构成的对角阵,可用于迭代法中从A中提取D。n 提取(产生)上(下)三角阵v=triu(x)输入矩阵x,输出v是x的上三角阵;v=tril(x)输入矩阵x,输出v是x的下三角阵;v=triu(x,1)输入矩阵x,输出v是x的上三角阵,但对角元素为0,可用于迭代法中从A中提取U。v=tril(x,-1)输入矩阵x,输出v是x的下三角阵,但对角元素为0,可用于迭代法中从A中提取L。n 矩阵特征值b=eig(A)输入矩阵A,输出b是A的所有特征值。n X数n=norm(x)输入x为向量或矩阵,输出为x的2X数;n=norm(x,p)输入x为向量或矩阵,当p=1, inf时分别输出为x的1,无穷X数;n Hilbert矩阵h=hilb(n)输出h为n阶Hilbert矩阵三. 操作方法与实验步骤包括实验数据记录和处理2-1 编程注释设 对下述求解线性方程组的Matlab程序添上注释语句,其中和分别为线性方程组的系数矩阵和右端向量;为迭代初始向量;为容许迭代最大次数,为迭代终止条件的精度(容许误差),终止条件为前后两次迭代解的差的向量2-X数。1Jacobi迭代:function X = Jacobimethod( A,b,X0,P,Nmax,eps)%A和b分别为线性方程组的系数矩阵和右端向量;x0为迭代初始向量X0;Nmax为容许迭代最大%次数,eps为迭代终止条件的精度(容许误差),终止条件为前后两次迭代解的差的向量2-X数%P=1,2,inf或fro.%输出的量:系数矩阵的的值和有关雅可比迭代收敛性的相关信息与AX=b的准确解jX和近似解X n m=size(A);for j=1:m a(j)=sum(abs(A(:,j)-2*(abs(A(j,j);endfor i=1:nif a(i)>=0 disp('请注意:系数矩阵A不是严格对角占优的,此雅可比迭代不一定收敛')returnendendif a(i)<0 disp('请注意:系数矩阵A是严格对角占优的,此方程组由唯一解,且雅可比迭代收敛')endfor k=1:Nmax kfor j=1:m X(j)=(b(j)-A(j,1:j-1,j+1:m)*X0(1:j-1,j+1:m)/A(j,j);end X,djwcX=norm(X'-X0,P); xdwcX=djwcX/(norm(X',P)+eps); X0=X' X1=Ab;if (djwcX<eps)&&(xdwcX<eps) disp('请注意:雅可比迭代收敛,此方程的准确解jX和近似解X如下:')returnendendif (djwcX>eps)&&(xdwcX>eps) disp('请注意:雅可比迭代次数已经超过最大迭代次数Nmax')enda,X=X;jX=X1',end2Gauss-Seidel迭代:GaussSeidelmethod(A,b,x0,Nmax,eps)function x = GaussSeidelmethod( A,b,x0,P,Nmax,wucha )%输入的量:线性方程组AX=b的系数矩阵A和b,初始向量x0,X数的名称P=1,2,inf或'fro.',% 近似解x的误差精度wucha和迭代的最大次数Nmax。%输出的量:以系数矩阵的对角元构成对角矩阵D、A的上三角形矩阵U,但对角% 元为0、A的下三角矩阵L,但对角元为0和有关高斯-赛德尔迭代收敛性的相关信息与其AX=b% 的准确解jx和近似解x。D=diag(diag(A);U=-triu(A,1);L=-tril(A,-1);dD=det(D);if dD=0 disp('请注意:因为对角矩阵D奇异,所以此方程组无解.')else disp('请注意:因为对角矩阵D非奇异,所以此方程组有解.') iD=inv(D-L);B2=iD*U;f2=iD*b;jx=Ab; x=x0;n m=size(A);for k=1:Nmax x1=B2*x+f2;djwcx=norm(x1-x,P); xdwcx=djwcx/(norm(x,P)+eps);if (djwcx<wucha)|(xdwcx<wucha)returnelse k;x1'k=k+1;x=x1;endendif (djwcx<wucha)|(xdwcx<wucha) disp('请注意:高斯-赛德尔迭代收敛,此A的分解矩阵D,U,L和方程组的准确解jx和近似解如下:')else disp('请注意:高斯-赛德尔迭代的结果没有达到给定的精度,并且迭代次数已经超过最大迭代次数Nmax,方程组的准确解jx和迭代向量x如下:') x=x'jx=jx'endendx=x'D,U,L,jx=jx'3松弛迭代:SORmethod(A,b,x0,Nmax,eps,w)function x = SORmethod( A,b,x,Nmax,wucha,w )%输入的量:线性方程组AX=b的系数矩阵A和b,初始向量x,X数名称P=1,2,inf,或'fro.',% 松弛因子w,近似解x的误差精度wucha和迭代的最大次数Nmax。% 输出的量:谱半径mH,以系数矩阵A的对角元构成的对角矩阵D、A的上三角矩阵U,但对角% 元为0、A的下三角矩阵L,但对角元为0,迭代次数i,有关超松弛迭代收敛性的相关信息% 与其AX=b的准确解jx和近似解x。D=diag(diag(A);U=-triu(A,1);L=-tril(A,-1);jx=Ab;n m=size(A);iD=inv(D-w*L);B2=iD*(w*U+(1-w)*D);H=eig(B2);mH=norm(H,inf);for k=1:Nmax iD=inv(D-w*L);B2=iD*(w*U+(1-w)*D); f2=w*iD*b;x1=B2*x+f2; x=x1;djwcx=norm(x1-jx,inf);xdwcx=djwcx/(norm(x,inf)+eps);if (djwcx<wucha)|(xdwcx<wucha) disp('谱半径mH,A的分解矩阵D,U,L和方程组的准确解jx,迭代次数i如下:') mH,D,U,L,jx=jx',i=k-1,returnif i>Nmax disp('迭代次数已经超过最大迭代次数Nmax,谱半径mH,方程组的准确解jx,迭代次数i如下:') mH,D,U,L,jx=jx',i=k-1,endendendif mH>=1 disp('请注意:因为谱半径不小于1,所以超松弛迭代序列发散.') disp('谱半径mH,A的分解矩阵D,U,L和方程组的准确解jx,迭代次数i和迭代序列x如下:') i=k-1,mH,D,U,L,jx,else disp('因为谱半径小于1,所以超松弛迭代序列收敛,近似解x如下:')end2-2分析应用题利用2-1中的程序来分析用如下迭代法解线性方程组:的收敛性,并求出使的近似解与相应的迭代次数,其中取迭代初始向量为零向量。1Jacobi迭代法;2Gauss-Seidel迭代法;3松弛迭代法松弛因子依次取1.334,1.95,0.95。解:1>> A=4 -1 0 -1 0 0;-1 4 -1 0 -1 0;0 -1 4 -1 0 -1;-1 0 -1 4 -1 0;0 -1 0 -1 4 -1;0 0 -1 0 -1 4;b=0;5;-2;5;-2;6;X0=0 0 0 0 0 0'X=Jacobimethod( A,b,X0,inf,0.0001,100)请注意:系数矩阵A是严格对角占优的,此方程组有唯一解,且雅可比迭代收敛k = 1X =k = 2X =k = 3X =k = 4X =k = 5X =k = 6X =k = 7X =k = 8X =k = 9X =k = 10X =k = 11X =k = 12X =k = 13X =k = 14X =k = 15X =k = 16X =k = 17X =k = 18X =k = 19X =k = 20X =k = 21X =k = 22X =k = 23X =k = 24X =k = 25X =k = 26X =k = 27X =请注意:雅可比迭代收敛,此方程组的准确解jx和近似解x如下:X =2)>> A=4 -1 0 -1 0 0;-1 4 -1 0 -1 0;0 -1 4 -1 0 -1;-1 0 -1 4 -1 0;0 -1 0 -1 4 -1;0 0 -1 0 -1 4;b=0;5;-2;5;-2;6;x0=0 0 0 0 0 0'x=GaussSeidelmethod( A,b,x0,inf,100,0.0001 )请注意:因为对角矩阵D非奇异,所以此方程组有解.k = 1ans =k = 2ans =k = 3ans =k = 4ans =k = 5ans =k = 6ans =k = 7ans =k = 8ans =k = 9ans =k = 10ans =k = 11ans =k = 12ans =k = 13ans =x =3)当w=1.334:A=4 -1 0 -1 0 0;-1 4 -1 0 -1 0;0 -1 4 -1 0 -1;-1 0 -1 4 -1 0;0 -1 0 -1 4 -1;0 0 -1 0 -1 4;b=0;5;-2;5;-2;6;x0=0 0 0 0 0 0'x=SORmethod( A,b,x,100,0.0001,1.334 )谱半径mH,A的分解矩阵D,U,L和方程组的准确解jx,迭代次数i如下:mH =D = 4 0 0 0 0 0 0 4 0 0 0 0 0 0 4 0 0 0 0 0 0 4 0 0 0 0 0 0 4 0 0 0 0 0 0 4U = 0 1 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0L = 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 1 0jx =i = 0x =当w=1.95:>> A=4 -1 0 -1 0 0;-1 4 -1 0 -1 0;0 -1 4 -1 0 -1;-1 0 -1 4 -1 0;0 -1 0 -1 4 -1;0 0 -1 0 -1 4;b=0;5;-2;5;-2;6;x0=0 0 0 0 0 0'x=SORmethod( A,b,x,100,0.0001,1.95 )谱半径mH,A的分解矩阵D,U,L和方程组的准确解jx,迭代次数i如下:mH =D = 4 0 0 0 0 0 0 4 0 0 0 0 0 0 4 0 0 0 0 0 0 4 0 0 0 0 0 0 4 0 0 0 0 0 0 4U = 0 1 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0L = 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 1 0jx =i = 0x =当w=0.95:>> A=4 -1 0 -1 0 0;-1 4 -1 0 -1 0;0 -1 4 -1 0 -1;-1 0 -1 4 -1 0;0 -1 0 -1 4 -1;0 0 -1 0 -1 4;b=0;5;-2;5;-2;6;x0=0 0 0 0 0 0'x=SORmethod( A,b,x,100,0.0001,0.95 )谱半径mH,A的分解矩阵D,U,L和方程组的准确解jx,迭代次数i如下:mH =D = 4 0 0 0 0 0 0 4 0 0 0 0 0 0 4 0 0 0 0 0 0 4 0 0 0 0 0 0 4 0 0 0 0 0 0 4U = 0 1 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0L = 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0 1 0jx =i = 0x =2-3分析应用题考虑方程组,其中系数矩阵为Hilbert矩阵,选择问题的维数分别为2、3、5、10,并通过首先给定解再定出右端的方法确定问题,解的给定可以使用函数定义,并取迭代初始向量为零向量,迭代误差为,编写程序:其中n为Hilbert矩阵的维数,分别构造求解该问题的Jacobi迭代和Gauss-Seidel迭代,看它们是否收敛。2-4分析应用题解线性方程组的解向量,取,其中为任一非零的六元向量;编写程序输出结果:认真观察之,能发现什么有趣的现象?四. 实验结果与分析

    注意事项

    本文(实验报告材料四线性方程组地求解-迭代.doc)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开