迭代法求解线性方程组的研究

  • 格式:doc
  • 大小:210.50 KB
  • 文档页数:11

下载文档原格式

  / 3
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

迭代法求解线性方程组的研究

【摘要】:本文总结了解线性方程组的三个迭代法,Jacobi 迭代法,Gauss-seidel 迭代法,SOR

迭代法,并且介绍了现代数值计算软件MATLAB 在这方面的应用,即分别给出三个迭代法的数值实验。

【关键字】:Jacobi 迭代法 Gauss-seidel 迭代法 SOR 迭代法 数值实验

一. 引言

迭代法是用某种极限过程去逐步逼近线性方程组精确解的方法,它是解高阶稀疏方程组的重要方法。

迭代法的基本思想是用逐次逼近的方法求解线性方程组。

设有方程组

b Ax = …① 将其转化为等价的,便于迭代的形式

f Bx x += …② (这种转化总能实现,如令b f A I B =-=,),

并由此构造迭代公式

f Bx x k k +=+)()1( …③

式中B 称为迭代矩阵,f 称为迭代向量。对任意的初始向量)0(x

,由式③可求得向量序列∞0)(}{k x ,若*)(lim x x

k k =∞→,则*x 就是方程①或方程②的解。此时迭代公式②是收敛的,否则称为发散的。构造的迭代公式③是否收敛,取决于迭代矩阵B 的性质。

本文介绍三种解线性方程组的最主要的三种迭代法:Jacobi 迭代法,Gauss-Seidel 迭代法和SOR 迭代法。本文结构如下:第二部分介绍Jacobi 迭代法及其数值实验,第三部分介绍Gauss-Seidel 迭代法及其数值实验,第四部分介绍SOR 迭代法及其数值实验,第五部分总结。

二. 雅克比(Jacobi )迭代法

1. 雅克比迭代法的格式

设有方程组

),,3,2,1(1

n i b x a j j n

j ij ==∑= …①

矩阵形式为b Ax =,设系数矩阵A 为非奇异矩阵,且),,3,2,1(,0n i a ii =≠

从式①中第i 个方程中解出x ,得其等价形式 )(1

1

1j n j j ij ii i x a b a x ∑≠=-= …②

取初始向量),,,()

0()0(2)0(1)0(n x x x x =,对式②应用迭代法,可建立相应的迭代公式: )(1

1

1)

()1(∑≠=++-=n

j j i k j ij ii k i b x a a x …③

也可记为矩阵形式:

J x J k F B x k +==)

()1( …④

若将系数矩阵A 分解为A=D-L-U ,式中

⎪⎪

⎪⎪

⎝⎛=nn a a a D 2211,

⎪⎪⎪

⎝⎛=--0000121323121nn n n a a a a a a L ,

⎪⎪

⎪⎪

⎝⎛=--0000122311312n n n n a a a a a a D 。

则方程Ax=b 变为 b x U L D =--)(

得 b x U L Dx ++=)(

于是 b D x U L D x 11)(--++=

b

D x A D I b

D x A D D 1111)()(----+-=+-= 于是式中④中的 b D f A D I B J J 11,--=-=。

式③和式④分别称为雅克比迭代法的分量形式和矩阵形式,分量形式用于编程计算,矩阵型式用于讨论迭代法的收敛性。

2. 雅克比迭代法的程序

雅克比迭代法的MATLAB 函数文件 ag _jacobi.m 如下。

Function x= agui _jacobi(a,b)

%a 为系数矩阵,b 为右端向量,0x 为初始向量(默认为零向量)

%e 为精度(默认为1e-6),n 为最大迭代次数(默认为100)

x 为返回解向量。

n=length(b);

N=100;

e=1e-6;

x0=zeros(n,1);

x=x0;

x0=x+2*e;

k=0;

d=diag(diag,0);

1=-tril(a,-1);

u=-triu(a,1);

while norm(x0-x,inf)>e&k

k=k+1;

x0=x;

x=inv(d)*(l+u)*x+inv(d)*b;

k

disp('x )

end

if k=N warning(‘以达到最大迭代次数’);end

3. 数值例子

用雅克比迭代法求解如下线性方程组。

⎪⎩⎪⎨⎧=+--=-+-=--42

58321072

210321321321x x x x x

x x x x

解:在MATLAB 命令窗口求解例题