- 6
- 0
- 约1.27万字
- 约 12页
- 2018-08-17 发布于江苏
- 举报
迭代解法的matab实现
MATLAB与计算方法
高等教育出版社 教育电子音像出版社 作者:任玉杰 第四章 解线性方程组的迭代法的MATLAB程序
高等教育出版社 教育电子音像出版社 作者:任玉杰
。180。
PAGE 59.
第四章 解线性方程组的迭代法
第四章 解线性方程组的迭代法
解线性方程组的迭代法是从初始解出发,根据设计好的步骤用逐次求出的近似解逼近精确解.在第三章中介绍的解线性方程组的直接方法一般适合于为低阶稠密矩阵(指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是严格对角占优的,此方程组有唯一解,且雅可比迭代收敛
原创力文档

文档评论(0)