网站大量收购独家精品文档,联系QQ:2885784924

迭代解法的matlab实现迭代解法的matlab实现.doc

迭代解法的matlab实现迭代解法的matlab实现.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
迭代解法的matlab实现迭代解法的matlab实现

解线性方程组的迭代法是从初始解出发,根据设计好的步骤用逐次求出的近似解逼近精确解.在第三章中介绍的解线性方程组的直接方法一般适合于为低阶稠密矩阵(指n不大且元多为非零)的情况,而在工程技术和科学计算中常会遇到大型稀疏矩阵(指n很大且零元较多)的方程组,迭代法在计算和存贮两方面都适合后一种情况.由于迭代法是通过逐次迭代来逼近方程组的解,所以收敛性和收敛速度是构造迭代法时应该注意的问题.另外,因为不同的系数矩阵具有不同的性态,所以大多数迭代方法都具有一定的适用范围.有时,某种方法对于一类方程组迭代收敛,而对另一类方程组迭代时就发散.因此,我们应该学会针对具有不同性质的线性方程组构造不同的迭代. 4.1 迭代法和敛散性及其MATLAB程序 4.1.2 迭代法敛散性的判别及其MATLAB程序 根据定理4.1和谱半径定义,现提供一个名为pddpb.m的M文件,用于判别迭代公式(4.7)产生的迭代序列的敛散性. 用谱半径判别迭代法产生的迭代序列的敛散性的MATLAB主程序 输入的量:线性方程组的迭代公式(4.7)中的; 输出的量:矩阵的所有特征值和谱半径mH 及其有关迭代法产生的迭代序列的敛散性的相关信息. function H=ddpbj(B) H=eig(B);mH=norm(H,inf); if mH=1 disp(请注意:因为谱半径不小于1,所以迭代序列发散,谱半径mH和B的所有的特征值H如下:) else disp(请注意:因为谱半径小于1,所以迭代序列收敛,谱半径mH和B的所有的特征值H如下:) end mH 4.1.3 与迭代法有关的MATLAB命令 (一) 提取(产生)对角矩阵和特征值 可以用表4–1的MATLAB命令提取对角矩阵和特征值. 表4–1 提取(产生)对角矩阵和特征值 MATLAB命令 功 能 DX=diag(X) 若输入向量X,则输出DX是以X为对角元的对角矩阵; 若输入矩阵X,则输出DX是以X的对角元构成的向量; DX=diag(diag(X)) 输入矩阵X,输出DX是以X的对角元构成的对角矩阵,可用于迭代法中从A中提取D. lm=eig(A) 输入矩阵A,输出lm是A的所有特征值. (二) 提取(产生)上(下)三角形矩阵 可以用表4–2的MATLAB命令提取矩阵的上三角形矩阵和下三角形矩阵. 表4–2 提取矩阵的上三角形矩阵和下三角形矩阵 MATLAB命令 功 能 U=triu(A) 输入矩阵,输出是的上三角形矩阵. L=tril(A) 输入矩阵,输出是的下三角形矩阵. U=triu(A,1) 输入矩阵,输出是的上三角形矩阵,但对角元为0,可用于迭代法中从中提取. L=tril(A,-1) 输入矩阵,输出是的下三角形矩阵,但对角元为0,可用于迭代法中从中提取. (三)稀疏矩阵的处理 对稀疏矩阵在存贮和运算上的特殊处理,是MATLAB进行大规模科学计算时的特点和优势之一.可以用表4–3的MATLAB命令,输入稀疏矩阵的非零元(零元不必输入),即可进行运算. 表4–3 稀疏矩阵的MATLAB命令 MATLAB命令 功 能 ZA=sparse(r,c,v,m,n) 表示在第r行、第c列输入数值v,矩阵共m 行n列,输出ZA,给出 (r, c) 及v为一稀疏矩阵. MA=full(ZA) 输入稀疏矩阵ZA,输出为满矩阵MA(包含零元) 4.2 雅可比(Jacobi)迭代及其MATLAB程序 4.2.2 雅可比迭代的收敛性及其MATLAB程序 根据定理4.3和公式(4.14),现提供一个名为jspb.m的M文件如下: 判别雅可比迭代收敛性的MATLAB主程序 输入的量:线性方程组的系数矩阵; 输出的量:系数矩阵的 的值和有关雅可比迭代收敛性的相关信息. function a=jspb(A) [n m]=size(A); for j=1:m a(j)=sum(abs(A(:,j)))-2*(abs(A(j,j))); end for i=1:n if a(i)=0 disp(请注意:系数矩阵A不是严格对角占优的,此雅可比迭代不一定收敛) return end end if a(i)0 disp(请注意:系数矩阵A是严格对角占优的,此方程组有唯一解,且雅可比迭代收敛 ) end 例4.2.2 用判别雅可比迭代收敛性的MATLAB主程序,判别由下列方程组的雅可比迭代产生的序列是否收敛? (1) (2) 解 (1)首先保存名为jspb.m的M文件,然后在MATLAB工作窗口输入程序 A=[10 -1 -2;-1 10 -2;-1 -1 5];a=jspb(A) 运行后输出结果 请注意:系数矩阵A是严格对角占优的,此方程组

您可能关注的文档

文档评论(0)

tazhiq2 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档