线性方程组的迭代解法_赖志柱

线性方程组的迭代解法_赖志柱
线性方程组的迭代解法_赖志柱

第三章 线性方程组的迭代解法

教学目标:

1.了解线性代数方程组迭代解法的基本思想,向量序列和矩阵序列收敛的基本思想及相关定理;

2.掌握迭代法的构造思想、收敛性和速度(率)以及相关定理;

3.在理解Jacobi 迭代法和Gauss-Seidel 迭代法的原理的基础上,掌握两种迭代法的计算步骤和相互关系,并掌握两种迭代法的收敛性相关定理。

4.初步了解超松弛(SOR )迭代法的基本思想。 教学重点:

1.迭代法的原理、基本思想和序列收敛的概念;

2.迭代法的构造、收敛和速率;

3. Jacobi 迭代法和Gauss-Seidel 迭代法的原理、实现步骤和收敛性; 教学难点:

1.迭代法的构造、收敛和速率;

2. Jacobi 迭代法和Gauss-Seidel 迭代法的原理、实现步骤和收敛性;

线性方程组的直接解法,用于阶数不太高的线性方程组效果较好。实际工作中有的线性方程组的阶数很高,用直接法求解效果不是很好。而迭代法与直接法不同,它是通过从某些初始向量出发,用设计好的步骤逐次计算出近似解向量

()k x ,从而得到向量序列(0)(1)(2){,,,}x x x 。一般(1)k x +的计算公式为

(1)()(1)()(,,

,),0,1,

k k k k m k x F x x x k +--==

式中(1)k x +与()(1)(),,,k k k m x x x --有关,称为多步迭代法。若(1)k x +只与()k x 有关,即

(1)()(),0,1,

k k k x F x k +==

则称为单步迭代法。现再设k F 是线性的,即

(1)(),0,1,

k k k k x B x f k +=+=

其中n n k B R ?∈,称为单步线性迭代法,k B 称为迭代矩阵。若k B 和k f 与k 无关,

(1)(),0,1,

k k x Bx f k +=+=

称为单步定常线性迭代法。

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

迭代法的关键有:

(1)如何构造迭代公式(1)()k k x Bx f +=+?

(2)迭代法产生的向量序列的收敛条件是什么?收敛速度如何?

§3.1 迭代法的基本概念

3.1.1 向量序列和矩阵序列的极限

为分析迭代法的收敛性,先讨论向量和矩阵序列极限的概念。n R 中向量序

列(0)(1)(2){,,,}x x x 记为()0{}k k x ∞=,在不引起混淆时就简记为()

{}k x 。同理,n n R ?中矩阵的序列记为()0

{}k k A ∞=或()

{}k A 。 定义 3.1 定义了范数?的向量空间n R 中,若存在n x R ∈满足

()lim 0k k x x →∞

-=,则称(){}k x 收敛于x ,记为()lim k k x x →∞

=。

不难看出,上述向量序列极限的定义形式上依赖于所选择的范数,注意到向量范数的等价性,若(){}k x 对一种范数而言收敛于x ,则可证明对其它范数而言也是收敛于x 的,这说明(){}k x 的收敛性与所选择的范数无关。

设()()()

()12

(,,,)k k k k T

n x x x x =,12(,,

,)T n x x x x =,若(){}k x 收敛于x ,且选用∞-

范数,则有

()1lim max 0k i i k i n

x x →∞≤≤-=

从而有

()lim 0,1,2,

,k i i k x x i n →∞

-==

即()lim k k x x →∞

=等价于()lim ,1,2,

,k i i k x x i n →∞

==。向量序列的收敛性等价于由向量分

量构成的n 个数列的收敛性,此时也称(){}k x 按分量收敛。

定义3.2 定义了范数?的空间n n R ?中,若存在n n A R ?∈使()lim 0k k A A →∞

-=,

则称(){}k A 收敛于A ,记为()lim k k A A →∞

=。

同理,(){}k A 的收敛性与所选择的范数无关,而且若记()

()()

k k ij n n

A a ?=,

()

ij n n

A a ?=,则有

()()

lim lim k k ij ij k k A A a a →∞

→∞

=?=,,1,2,,i j n =

定理3.1 ()()1lim 0lim 0k k n n n k k A A x ??→∞

→∞

=?=,n x R ?∈。

证明:必要性 只要注意到对任一种矩阵从属范数都有()()k k A x A x ≤?即

可。

充分性 若取x 为单位向量j e ,其第j 个分量为1,其它分量为零。则

()lim 0k j k A e →∞

=意味着()k A 第j 列各元素极限为零,依次取1,2,

,j n =即可。证毕

下面讨论有矩阵的幂所构成的矩阵序列,即序列{}k B ,其中n n B R ?∈。 定理3.2 设n n B R ?∈,则下面三个命题等价: (1)lim 0k k B →∞

=;

(2)()1B ρ<,其中1()max ||i i n

B ρλ≤≤=为B 的谱半径;

(3)至少存在一种从属的矩阵范数?,使1B <。

证明:(1)(2)? 用反证法,假设B 有一个特征值λ,满足||1λ≥,则存在特征向量0x ≠,使得Bx x λ=。由此可得||k k B x x λ=,当k →∞时向量序列{}k B x 不收敛于零向量,据定理3.1有{}k B 不收敛于零矩阵,与命题(1)矛盾。

(2)(3)? 若()1B ρ<,则0ε?>,存在一种从属的矩阵范数?,使

()B B ρε≤+,适当选择1()

2

B ρε-=

,便可使1B <。 (3)(1)? 若1B <

,则由k

k B B <可得lim 0k k B →∞

=,从而lim 0k k B →∞

=。

定理3.3设n n

B R

?∈,?为任一种范数,则1lim ()k k

k B

B ρ→∞

=。

证明:由定理知()B B ρ≤,从而()k k

B B ρ≤,而1()[()]k

k

B B ρρ=,所以有

1

1()[()]k

k k k

B B B

ρρ=≤,对k 一切成立

另一方面,0ε?>,记()B

B B ερε

=

+,显然有()1B ερ<。由定理3.2有lim 0k k B ε→∞=,

所以存在()N N Z ε=∈,使得当k N >时,有

1[()]k

k k

B B B ερε=

<+

即当k N >时1

()()k k

B B B ρρε≤≤+,而ε是任意的,即得定理结论。证毕

3.1.2 迭代公式的构造

设n n A R ?∈,n b R ∈,A 非奇异,n x R ∈满足方程组Ax b =。如果能找到矩阵n n B R ?∈,

向量n f R ∈,使I B -可逆,而且方程组x Bx f =+的唯一解就是Ax b =的解,则可以从x Bx f =+构造一个定常的线性迭代公式

(1)()k k x Bx f +=+ (3.1)

给出(0)n x R ∈,由(3.1)式可以产生(){}k x ,若它有极限*x ,显然*x 就是x Bx f =+和Ax b =的解。

定义3.3 若迭代公式(3.1)产生的序列(){}k x 满足

()*lim k k x x →∞

=,(0)n x R ?∈

则称迭代法(3.1)是收敛的。

从Ax b =出发可以由不同的途径得到各种不同的等价方程组x Bx f =+,从而得到不同的迭代法(3.1)。例如,设A 可以分解为A M N =-,其中M 非奇异,

则有

11Ax b Mx Nx b Mx Nx b x M Nx M b --=?-=?=+?=+

令111,B M N I M A f M b ---==-=,则有x Bx f =+,这里的B 和f 依赖不同的分解方法A M N =-。

3.1.3 迭代法的收敛性

设*x 是x Bx f =+的解,即有**x Bx f =+,用(1)()k k x Bx f +=+与其相减得

(1)*()*()k k x x B x x +-=-

若记误差向量为()()*k k e x x =-,则有

(1)(),0,1,

k k e Be k +==

由此可推得

()(0)k k e B e =

其中(0)(0)*e x x =-与k 无关,所以迭代法(3.1)收敛就意味着

()(0)(0)lim lim 0,k k n k k e B e e R →∞

→∞

==?∈

定理3.4 下面三个命题等价:

(1)迭代法(1)()k k x Bx f +=+收敛; (2)()1B ρ<;

(3)至少存在一种从属的矩阵范数?,使1B <。

证明:从以上分析,命题(1)中迭代法收敛等价于(0)(0)lim 0,k n k B e e R →∞

=?∈,

有定理3.1,上式成立的充要条件是lim 0k k B →∞

=,再由定理3.2即可。证毕

有时实际判别一个迭代法是否收敛,条件()1B ρ<是较难检验的。由于1B ,

B ∞,F B 等可以用B 的元素来表示,故我们可以考虑用11B <,1B ∞<或1F

B

<来作为收敛的判定,这就是下面的定理:

定理 3.5 设*x 是方程x Bx f =+的唯一解,ν?是一种向量范数,对应的从

属矩阵范数1B ν<,则由(3.1)产生的向量序列(){}k x 满足

()*

()(1)1k k k B x x x x B νν

ν

ν

--≤

?-- (3.2)

()*

(1)(0)1k

k B x x x x B ν

ν

ν

ν

-≤

?-- (3.3)

证明:因为

()*(1)*()()k k x x Bx f Bx f --=+-+

(1)*()k B x x -=-

(1)()()*()()k k k B x x B x x -=-+-

所以有()*(1)()()()()k k k I B x x B x x ---=-。因为1B ν<,由定理3.4知迭代法是收敛的,()*lim k k x x →∞

=。从1B ν<可得I B -是非奇异的,且

()

*

1(1)

()

(1)()()()1k k k k k B x

x

I B B x

x x x B νν

ν

ν

ν

----=--≤

?--

即得(3.2)式。由于

()(1)(1)(2)(1)(2)()()()k k k k k k x x Bx f Bx f B x x ------=+-+=-

再反复运用

()(1)

(1)(2)(1)(2)()k k k k k k x x B x x B x x νν

ν

ν

------=-≤?-

即可得(3.3)。证毕

利用定理3.5做误差估计,一般可取1,2,ν=∞。从(3.2)式可以看到,只要

B ν不是很接近1,若相邻两次迭代向量(1)k x -与()k x 已近很接近,则()k x 与*x 已经相当接近,所以可以用()(1)

k k x x ν

ε--<来控制迭代终止。例如0.8B ν=,

()(1)

710k k x x ν

---=,

则有()*7410k x x ν

--≤?。

但是若1B ν≈,即使()(1)k k x x ν

--很小,也不能判定()*k x x ν-很小。例如,若6110B ν-=-,()(1)

710k k x x ν

---=,

则只能估计到()*

171010k x x ν

---≤-。

3.1.4 迭代法的收敛速度

设迭代法(3.1)收敛,即()1B ρ<。由()(0)k k e B e =得()(0)k k e B e ≤?。现设(0)0e ≠,则有

()(0)

k k e B e ≤

这里的矩阵范数均从属于向量范数。根据范数的性质有

(0)(0)(0)()(0)

(0)

sup

sup

k k k e e B e e B e e ≠≠==

所以k B 给出了迭代k 次后误差向量范数与初始误差向量范数之比的上确界。这样经过迭代k 次后,平均每次迭代误差范数的压缩率就可以看成是1

k k

B

如果要求迭代k 次后有

()(0)k e e σ≤ (3.4)

其中因子σ是个较小的数,例如10s σ-=。因为()1B ρ<,所以0k B →,我们可以选择足够大的k 使k B σ≤,使得(3.4)成立。对于所有使1k B <的k ,

k B σ≤等价于

1ln ln 1

ln ln k k k

k B B k

σσ

≥-

=-

-- (3.5)

所以达到(3.4)式要求的最小迭代次数反比于1ln k k

B

-。

定义3.4 称1()ln k k

k R B B

=-为迭代法(3.1)的平均收敛率。

定义3.4中的()k R B 是平均压缩率的对数值再取负号,它依赖于所选择的范数和迭代次数,作理论分析时会带来一些不便。由定理3.3有1lim ()k k

k B

B ρ→∞

=,

从而我们可以引入下面的定义

定义 3.5 称()ln ()R B B ρ=-为迭代法(3.1)的渐进收敛率,或渐进收敛速度。

显然有()lim ()k k R B R B →∞

=,且()R B 与B 取何种范数及迭代次数无关,它反映

的是迭代次数趋于无穷时迭代法(3.1)的渐进性质。为了达到()(0)k e e σ≤的要求,可以用

ln ()

k R B σ

≈-

(3.6) 代替(3.5)作为所需迭代次数的估计。

从上面的讨论可以看到,对于不同的迭代法,其迭代矩阵的谱半径()B ρ较小者收敛要快些。

§3.2 Jacobi 迭代法和 Gauss-Seidel 迭代法

3.2.1 Jacobi 迭代法

设方程组为Ax b =,其中()n n ij A a R ?=∈,n b R ∈,且A 非奇异,将A 分解为

A D L U =--,其中

1122(,,

,)nn D diag a a a =

211,1000n n n a L a a -?? ? ?=- ? ? ???

,12

1,000n n n a a U a -?? ? ?=- ? ??? L -和U -分别为A 的严格下、上三角部分(不包括对角线)。现设D 非奇异,即0ii a ≠,1,2,

,i n =。对应于A M N =-,可令M D =,N L U =+,则有

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

由此构造迭代法

(1)(),0,1,

k k x Bx f k +=+

= (3.7)

其中

11()B D L U I D A --=+=- (3.8) 1f D b -= (3.9)

迭代法(3.7)称为简单迭代法,也称为雅可比(Jacobi )迭代法,简称J 法。

将方程组Ax b =写为

1

n

ij j

i j a x

b ==∑,1,2,

,i n =

并设0ii a ≠,1,2,,i n =,从第i 个方程解出i x ,得等价的方程组:

11

n

i i ij j

j ii ii

j i

b x a x

a a =≠=-

∑,1,2,,i n =

从而Jacobi 迭代法又可以写作 1(1)()()111i n

k k k i i

ij j ij j j j i ii ii b x

a x a x a a -+==+??=-+ ???

∑∑ 1

()

()1

1

i n

k k i ij j

ij

j

j j i ii

b a x a x

a -==+--

=

∑∑,1,2,,i n = (3.10)

从(3.10)可以看出,用Jacobi 迭代法计算向量序列(){}k x ,要用两组单元分别存放向量()k x 和(1)k x +。

例3.1 用Jacobi 迭代法解方程组

1231231

231023210152510

x x x x x x x x x --=??

-+-=??--+=? 解:解出123,,x x x :

12321

33

120.20.10.30.20.1 1.50.20.42x x x x x x x x x =

++??

=++??=++? 按下式进行迭代:

(1)()()

123(1)()()

2

13(1)()()

3

120.20.10.30.20.1 1.50.20.42k k k k k k k k k x x x x x x x x x +++?=++?=++??=++?(1,2,k =)

任取一初始向量,例如(0)(0,0,0)T x =,得到迭代序列(){}k x ,列表如下

不难验证,原方程组的精确解为(1,2,3)T x =,从上面的计算可以看出,(){}k x 收敛于精确解的。

3.2.2 Gauss-Seidel 迭代法

在Jacobi 迭代法中,在计算(1)

2k x +时要使用()1k x ,而此时(1)1k x +已计算出来了,

看来可以提前使用(1)1k x +代替()1k x 。一般地,计算(1)(2)k i x i n +≤≤时,使用(1)k p x +代替()(1)k p x p i ≤<,这样可能收敛速度会快一点,而且整个迭代过程只要使用一组单元存放迭代向量,这就是所谓的Gauss-Seidel (高斯-赛德尔)迭代法,简称GS 法,其计算公式为

1

(1)()1

1

(1)i n

k k i ij j

ij

j

j j i k i ii

b a x

a x

x a -+==++--

=

∑∑,1,2,,i n = (3.11)

将(3.11)式写成矩阵形似,得

(1)(1)()k k k x Lx U x f ++=++

其中1L D L -=,1U D U -=,进一步整理成 (1)1()1()()k k x I L U x I L f +--=-+- 这样,Gauss-Seidel 迭代法的迭代矩阵就是 11()()G I L U D L U --=-=-

对比一般的分解形式A M N =-,可以看成()A D L U =--,从而有M D L =-,

N U =。

例3.2 用Gauss-Seidel 迭代法计算例3.1并做比较。

解:迭代公式为:

(1)()()

123(1)(1)()

21

3(1)(1)(1)

3

120.20.10.30.20.1 1.50.20.42k k k k k k k k k x x x x x x x x x ++++++?=++?=++??=++? 用它计算得到的序列(){}k x 列表如下:

3.2.3 Jacobi 和Gauss-Seidel 迭代法的收敛性 从定理3.4可得以下结论:

定理3.6 Jacobi 迭代法收敛的充分必要条件是()1B ρ<,其中1B I D A -=-;Gauss-Seidel 迭代法收敛的充分必要条件是()1G ρ<,其中1()G D L U -=-。

注意到()B B ρ≤,则可以得到上述两种迭代法的收敛的一个充分条件: 定理3.7 Jacobi 迭代法收敛的一个充分条件是1B <,其中1B I D A -=-;Gauss-Seidel 迭代法收敛的一个充分条件是1G <,其中1()G D L U -=-。

定义3.6 设矩阵()n n ij n n A a R ??=∈每一行对角元素的绝对值都大于同行其它元素绝对值之和,即1||||n

ii ij j j i a a =≠>∑,1,2,

,i n =,则称A 为严格(行)对角占优

矩阵。若A 的每一行对角元素的绝对值都大于等于同行其它元素绝对值之和,即

1

||||n

ii ij j j i a a =≠≥∑,1,2,

,i n =,且其中至少有一个严格不等式成立,则称A 为弱(行)

对角占优矩阵。

定义3.7 若n n A R ?∈,不能找到排列矩阵P ,使

111222T A A P AP O A ??

=

? ??

?

(3.12) 其中11A 与22A 均为方阵,称A 为不可约的。

MATLAB代码 解线性方程组的迭代法

解线性方程组的迭代法 1.rs里查森迭代法求线性方程组Ax=b的解 function[x,n]=rs(A,b,x0,eps,M) if(nargin==3) eps=1.0e-6;%eps表示迭代精度 M=10000;%M表示迭代步数的限制值elseif(nargin==4) M=10000; end I=eye(size(A)); n=0; x=x0; tol=1; %迭代过程 while(tol>eps) x=(I-A)*x0+b; n=n+1;%n为最终求出解时的迭代步数tol=norm(x-x0); x0=x; if(n>=M) disp('Warning:迭代次数太多,可能不收敛!'); return; end end 2.crs里查森参数迭代法求线性方程组Ax=b的解 function[x,n]=crs(A,b,x0,w,eps,M) if(nargin==4) eps=1.0e-6;%eps表示迭代精度 M=10000;%M表示迭代步数的限制值 elseif(nargin==5) M=10000; end I=eye(size(A)); n=0; x=x0; tol=1; %迭代过程 while(tol>eps) x=(I-w*A)*x0+w*b; n=n+1;%n为最终求出解时的迭代步数tol=norm(x-x0); x0=x;

if(n>=M) disp('Warning:迭代次数太多,可能不收敛!'); return; end end 3.grs里查森迭代法求线性方程组Ax=b的解 function[x,n]=grs(A,b,x0,W,eps,M) if(nargin==4) eps=1.0e-6;%eps表示迭代精度 M=10000;%M表示迭代步数的限制值 elseif(nargin==5) M=10000; end I=eye(size(A)); n=0; x=x0; tol=1;%前后两次迭代结果误差 %迭代过程 while(tol>eps) x=(I-W*A)*x0+W*b;%迭代公式 n=n+1;%n为最终求出解时的迭代步数tol=norm(x-x0); x0=x; if(n>=M) disp('Warning:迭代次数太多,可能不收敛!'); return; end end 4.jacobi雅可比迭代法求线性方程组Ax=b的解 function[x,n]=jacobi(A,b,x0,eps,varargin) if nargin==3 eps=1.0e-6; M=200; elseif nargin<3 error return elseif nargin==5 M=varargin{1}; end D=diag(diag(A));%求A的对角矩阵 L=-tril(A,-1);%求A的下三角阵

常微分方程的解线性方程组的迭代法

实验五 解线性方程组的迭代法 【实验内容】 对1、设线性方程组 ?? ? ? ?? ? ? ?? ? ? ?? ? ? ??-=???????????????? ?????????????????? ? ?--------------------------211938134632312513682438100412029137264 2212341791110161035243120 536217758683233761624491131512 013012312240010563568 0000121324 10987654321x x x x x x x x x x ()T x 2,1,1,3,0,2,1,0,1,1*--= 2、设对称正定系数阵线性方程组 ?? ? ????? ??? ? ? ??---=????????????? ??????????????? ??---------------------4515229 23206019243360021411035204111443343104221812334161 2065381141402312122 00240424 87654321x x x x x x x x ()T x 2,0,1,1,2,0,1,1*--= 3、三对角形线性方程组

?? ? ?? ? ????? ??? ? ? ??----=???????????????? ?????????????????? ??------------------5541412621357410000000014100000000141000000001410000000014100000000141000000001410000000014100000000 14100000000 1410987654321x x x x x x x x x x ()T x 1,1,0,3,2,1,0,3,1,2*---= 试分别选用Jacobi 迭代法,Gauss-Seidol 迭代法和SOR 方法计算其解。 【实验方法或步骤】 1、体会迭代法求解线性方程组,并能与消去法加以比较; 2、分别对不同精度要求,如54310,10,10---=ε由迭代次数体会该迭代法的收敛快慢; 3、对方程组2,3使用SOR 方法时,选取松弛因子ω=0.8,0.9,1,1.1,1.2等,试看对算法收敛性的影响,并能找出你所选用的松弛因子的最佳者; 4、给出各种算法的设计程序和计算结果。 程序: 用雅可比方法求的程序: function [x,n]=jacobi(A,b,x0,eps,varargin) if nargin==3 eps=1.0e-6; M=200;

研究线性方程组迭代收敛速度

研究解线性方程组迭代收敛速度 一. 实验目的 科学研究与生产实践中许多问题都可归结为线性方程组的求解,高效求解线性方程组成为了许多科学与工程计算的核心.迭代法就是用某种极限过程去逼近线性方程组精确解的方法,该方法具有对计算机的存贮单元需求少,程序计算简单,原始系数矩阵在计算过程中不变等优点,是求解大型稀疏矩阵方程组的重要方法。常用的迭代法有Jacobi 迭代法、Gauss —seidel 迭代法、逐次超松驰法(SOR 法)等。 二. 实验摘要 由迭代法平均收敛速度与渐进收敛速度的关系引入近似估计法,即通过对迭代平均收敛速度取对数,然后利用Mathematica 软件对其进行拟合,给出拟合函数,最终得到了Jacobi 迭代法、Gauss —seidel 法的平均收敛速度收敛到渐进收敛速度的近似收敛阶,以及逐次超松驰法(SOR 法)的渐进收敛速度,且该法适用于其他迭代法收敛速度的估计。 三. 迭代法原理 1.Jacobi 迭代法(J 法) 设方程组b Ax =,其中, n n n n ij R a A ??∈=)(,。n R b x ∈, A 为可逆矩阵,可分裂为,U D L A ++=其中, ??????? ???? ???? ?=-00 00 1 ,21323121 n n n n a a a a a a L ΛO O M M ??????? ????? ??? ?=-00 0,1223 11312n n n n a a a a a a U M O O ΛΛ

??????? ? ???? ??? ?=nn a a a D O O 22 11 从而由b Ax =得到, b D x A D I b D x A D D b D x U L D x 111111)()()(------+-=+-=++-= 令 A D I B J 1--=, b D f J 1-=, 由此可构造出迭代公式:J k J k f x B x +=+)()1( 令初始向量)0,...,0,0()0(=x ,即可得到迭代序列,从而逼近方程组的解 这种方法称为Jacobi 迭代法,其中J B 称为Jacobi 迭代矩阵。 2. Gauss-Seidel 迭代法(GS 法) 与Jacobi 迭代法类似,将方程组b Ax =中的系数矩阵 A 分裂为 ,U D L A ++=,其中U L D ,,与前面相同。 与Jacobi 迭代法所不同的是,Gauss-Seidel 迭代法将Jacobi 迭代公式中的 b Ux Lx Dx k k k +--=+)()()1( 改为 b Ux Lx Dx k k k +--=++)()1()1( 从而b Ax =可写成矩阵形式 b Ux x D L k k +-=++)()1()(, 若设1 )(-+D L 存在,则 b D L Ux D L x k k 1)(1)1()()(--++++-=, 其中, U D L B G 1)(-+-=,b D L f 1)(-+=, 于是Gauss —Seidel 迭代公式的矩阵形式为f x B x k G k +=+)() 1(。

线性方程组迭代解法

实验六:线性方程组迭代解法 1)实验目的 ? 熟悉Matlab 编程; ? 学习线性方程组迭代解法的程序设计算法 2)实验题目 1.研究解线性方程组Ax=b 迭代法收敛速度。A 为20阶五对角距阵 ??????????????? ?????????????????------------------=321 412132141412132141412132141 412132 141213 O O O O O A 要求: (1)选取不同的初始向量x 0 及右端向量b ,给定迭代误差要求,用雅可比迭代和高斯-赛 德尔迭代法求解,观察得到的序列是否收敛?若收敛,记录迭代次数,分析计算结果并得出你的结论。 (2)用SOR 迭代法求解上述方程组,松弛系数ω取1< ω <2的不同值,在 时停止迭代.记录迭代次数,分析计算结果并得出你的结论。 2.给出线性方程组b x H n =,其中系数矩阵n H 为希尔伯特矩阵: ()n n ij n h H ??∈=,.,,2,1,,1n j i j i i h ij Λ=-+= 假设().,1,,1,1*x H b x n n T =?∈=Λ若取,10,8,6=n 分别用雅可比迭代法及SOR 迭代 (5.1,25.1,1=ω)求解,比较计算结果。 3)实验原理与理论基础 1.雅克比(Jacobi )迭代法算法设计: ①输入矩阵a 与右端向量b 及初值x(1,i); ②按公式计算得 ),,2,1(1)(1)1(n i x a b a x k j n i j j ij i ii k i Λ=????? ??-=∑≠=+ 2.高斯――赛得尔迭代法算法设计: 1. 输入矩阵a 与右端向量b 及初值x(1,i).

线性方程组的迭代法及程序实现

线性方程组的迭代法及程序实现 学校代码:11517 学号:200810111217 HENAN INSTITUTE OF ENGINEERING 毕业论文 题目线性方程组的迭代法及程序实现 学生姓名 专业班级 学号 系 (部)数理科学系 指导教师职称 完成时间 2012年5月20日河南工程学院 毕业设计(论文)任务书 题目:线性方程组的迭代法及程序实现专业:信息与计算科学学号 : 姓名一、主要内容: 通过本课题的研究,学会如何运用有限元方法来解决线性代数方程组问题,特别是Gaussie-Seidel迭代法和Jacobi迭代法来求解线性方程组。进一步学会迭代方法的数学思想,并对程序代码进行解析与改进,这对于我们以后学习和研究实际问题具有重要的意义。本课题运用所学的数学专业知识来研究,有助于我们进一步掌握大学数学方面的知识,特别是迭代方法。通过这个课题的研究,我进一步掌握了迭代方法的思想,以及程序的解析与改进,对于今后类似实际问题的解决具有重要的意义。

二、基本要求: 学会编写规范论文,独立自主完成。 运用所学知识发现问题并分析、解决。 3.通过对相关资料的收集、整理,最终形成一篇具有自己观点的学术论文,以期能对线性方程组迭代法的研究发展有一定的实践指导意义。 4.在毕业论文工作中强化英语、计算机应用能力。 完成期限: 2012年月指导教师签名:专业负责人签名: 年月日 目录 中文摘要....................................................................................Ⅰ英文摘要 (Ⅱ) 1 综述 1 2 经典迭代法概述 3 2.1 Jacobi迭代法 3 2.2 Gauss?Seidel迭代法 4 2.3 SOR(successive over relaxation)迭代法 4 2.4 SSOR迭代法 5 2.5 收敛性分析5 2. 6 数值试验 6 3 matlab实现的两个例题8 3.1 例1 迭代法的收敛速度8 3.2 例 2 SOR迭代法松弛因子的选取 12致谢16参考文献17附录19

第六章解线性方程组的迭代法

第五章 解线性方程组的迭代法 本章主要内容: 迭代法收敛定义,矩阵序列收敛定义,迭代法基本定理,雅可比迭代法,高斯-塞德尔迭代法,系数矩阵为严格对角占优阵的采用雅可比迭代、高斯-塞德尔迭代的收敛性。 教学目的及要求: 使学生了解迭代法收敛定义,迭代法基本定理,掌握雅可比迭代法、高斯-塞德尔迭代法。 教学重点: 雅可比迭代法,高斯-塞德尔迭代法。 教学难点: 迭代法基本定理的证明以及作用。 教学方法及手段: 应用严格的高等代数、数学分析知识,完整地证明迭代法基本定理,讲清雅可比迭代法与高斯-塞德尔迭代法的关系,介绍雅可比迭代法与高斯-塞德尔迭代法在编程中的具体实现方法。 在实验教学中,通过一个具体实例,让学生掌握雅可比迭代法与高斯-塞德尔迭代法的具体实现,并能通过数值计算实验,揭示高斯-塞德尔迭代法是对雅可比迭代法的一种改进这一事实。 教学时间: 本章的教学的讲授时间为6学时,实验学时4学时。 教学内容: 一 迭代法定义 对于给定的线性方程组x Bx f =+,设它有唯一解*x ,则 **x Bx f =+ (6.1) 又设(0)x 为任取的初始向量,按下述公式构造向量序列 (1)(),0,1,2, k k x Bx f k +=+= (6.2) 这种逐步代入求近似解的方法称为迭代法(这里B 与f 与k 无关)。如果() lim k k x →∞ 存在 (记为*x ),称此迭代法收敛,显然* x 就是方程组的解,否则称此迭代法发散。 迭代法求方程近似解的关键是是讨论由(6.1)式所构造出来的向量序列() {} k x 是否收敛。为此,我们引入误差向量 (1)(1)*k k x x ε++=- 将(6.2)式与(6.1)式相减,我们可得 (1)*()*()k k x x B x x +-=- (1)(),0,1,2, k k B k εε+== 递推下去,得 ()(1)2(2)(0)k k k k B B x B x εε--====

数值计算_第4章 解线性方程组的迭代法

第4章解线性方程组的迭代法 用迭代法求解线性方程组与第4章非线性方程求根的方法相似,对方程组进行等价变换,构造同解方程组(对可构造各种等价方程组, 如分解,可逆,则由得到),以此构造迭代关系式 (4.1) 任取初始向量,代入迭代式中,经计算得到迭代序列。 若迭代序列收敛,设的极限为,对迭代式两边取极限 即是方程组的解,此时称迭代法收敛,否则称迭代法发散。我们将看到,不同于非线性方程的迭代方法,解线性方程组的迭代收敛与否完全决定于迭代矩阵的性质,与迭代初始值的选取无关。迭代法的优点是占有存储空间少,程序实现简单,尤其适用于大型稀疏矩阵;不尽人意之处是要面对判断迭代是否收敛和收敛速度的问题。 可以证明迭代矩阵的与谱半径是迭代收敛的充分必要条件,其中是矩阵的特征根。事实上,若为方程组的解,则有 再由迭代式可得到

由线性代数定理,的充分必要条件。 因此对迭代法(4.1)的收敛性有以下两个定理成立。 定理4.1迭代法收敛的充要条件是。 定理4.2迭代法收敛的充要条件是迭代矩阵的谱半径 因此,称谱半径小于1的矩阵为收敛矩阵。计算矩阵的谱半径,需要求解矩阵的特征值才能得到,通常这是较为繁重的工作。但是可以通过计算矩阵的范数等方法简化判断收敛的 工作。前面已经提到过,若||A||p矩阵的范数,则总有。因此,若,则必为收敛矩阵。计算矩阵的1范数和范数的方法比较简单,其中 于是,只要迭代矩阵满足或,就可以判断迭代序列 是收敛的。 要注意的是,当或时,可以有,因此不能判断迭代序列发散。

在计算中当相邻两次的向量误差的某种范数小于给定精度时,则停止迭代计算,视为方程组的近似解(有关范数的详细定义请看3.3节。) 4.1雅可比(Jacobi)迭代法 4.1.1 雅可比迭代格式 雅可比迭代计算 元线性方程组 (4.2) 写成矩阵形式为。若将式(4.2)中每个方程的留在方程左边,其余各项移到方程右边;方程两边除以则得到下列同解方程组: 记,构造迭代形式

线性方程组的迭代解法(Matlab)

第六章线性方程组的迭代解法 2015年12月27日17:12 迭代法是目前求解大规模稀疏线性方程组的主要方法之一。包括定常迭代法和不定常迭代法,定常迭代法的迭代矩阵通常保持不变,包括有雅可比迭代法(Jacobi)、高斯-塞德尔迭代法(Gauss-Seidel)、超松弛迭代法(SOR) 1.雅可比迭代法(Jacobi) A表示线性方程组的系数矩阵,D表示A的主对角部分,L表示下三角部分,U表示上三角部分。 A=D+L+U 要解的方程变为Dx+Lx+Ux=b x=D^(-1)(b-(L+U)x) 所以Jocabi方法如下: Matlab程序 function [x,iter] =jacobi(A,b,tol) D=diag(diag(A)); L=D-tril(A); U=D-triu(A); x=zeros(size(b)); for iter=1:500 x=D\(b+L*x+U*x); error=norm(b-A*x)/norm(b); if(error

解线性方程组的几种迭代算法

解线性方程组的几种迭代算法 内容摘要: 本文首先总结了分裂法解线性方程组的一些迭代算法,在此基础上分别通过改变系数矩阵A的分裂形式和对SSOR算法的改进提出了两种新的算法,并证明了这两种算法的收敛性.与其它方法相比,通过改变系数矩阵A的分裂形式得到的新算法具有更好的收敛性,改进的SSOR算法有了更快的收敛速度.最后通过数值实例验证了这两种算法在有些情况下确实可以更有效的解决问题. 关键词: 线性方程组迭代法算法收敛速度 Several kinds of solving linear equations iterative algorithm Abstract: In this paper, we firstly summarize some Iterative algorithms of Anti-secession law solution of linear equations. Based on these, two new algorithms are put forward by changing the fission form of coefficient matrix A and improving the algorithm of SSOR, and the convergence of the two algorithms is demonstrated. Compared with other methods, the new algorithm acquired by changing the fission form of coefficient matrix A is possessed of a better convergence. And the improved SSOR algorithm has a faster convergence speed. Finally, some numerical examples verify that the two algorithms can solve problems more effectively in some cases. Key words: Linear equations Iteration method algorithm Convergence speed

高斯-赛德尔迭代法解线性方程组精选.

数值分析实验五 班级: 10信计二班 学号:59 姓名:王志桃 分数: 一.实验名称 高斯-赛德尔迭代法解线性方程组 二.实验目的 1. 学会利用高斯赛德尔方法解线性方程组 2. 明白迭代法的原理 3. 对于大型稀疏矩阵方程组适用于迭代法比较简单 三.实验内容 利用Gauss-Seidel 迭代法求解下列方程组 ?????=++=-+=+-36123633111420238321 321321x x x x x x x x x , 其中取→=0)0(x 。 四、算法描述 由Jacobi 迭代法中,每一次的迭代只用到前一次的迭代值,若每一次迭代充分利用当前最新的迭代值,即在计算第i 个分量)1(+k i x 时,用最新分量)1(1+k x ,???+)1(2k x )1(1-+k i x 代替旧分量)(1k x ,???)(2k x )(1-k i x ,就得到所谓解方程组的Gauss-Seidel 迭代法。 其迭代格式为 T n x x x x )()0()0(2)0(1)0(,,,???= (初始向量), )(11111)()1( ) 1(∑∑-=-+=++--=i j i i j k j ij k j ij i ii i i x a x a b a x )210i 210(n k ???=???=,,,;,,, 或者写为 ?? ???--=???=???==?+=∑∑-=-+=+++)(1)210i 210(1111)( )1()1()()1(i j i i j k j ij k j ij i ii i i i k i k i x a x a b a x n k k x x x ,,,;,,, 五、 编码 #include #include

Gauss-Seidel迭代法求解线性方程组

一. 问题描述 用Gauss-Seidel 迭代法求解线性方程组 由Jacobi 迭代法中,每一次的迭代只用到前一次的迭代值。使用了两倍的存储空间,浪 费了存储空间。若每一次迭代充分利用当前最新的迭代值,即在计算第i 个分量) 1(+k i x 时, 用最新分量) 1(1 +k x ,???+) 1(2 k x ) 1(1 -+k i x 代替旧分量)(1k x ,???) (2 k x ) (1-k i x ,可以起到节省存储 空间的作用。这样就得到所谓解方程组的Gauss-Seidel 迭代法。 二. 算法设计 将A 分解成U D L A --=,则b x =A 等价于b x =--U)D (L 则Gauss-Seidel 迭代过程 ) ()1()1(k k k Ux Lx b Dx ++=++ 故 )()1()(k k Ux b x L D +=-+ 若设1 )(--L D 存在,则 b L D Ux L D x k k 1)(1)1()()(--+-+-= 令 b L D f U L D G 11)()(---=-=, 则Gauss-Seidel 迭代公式的矩阵形式为 f Gx x k k +=+)()1( 其迭代格式为 T n x x x x )()0()0(2)0(1)0(,,,???= (初始向量), )(1111 1 )() 1()1(∑∑-=-+=++--=i j i i j k j ij k j ij i ii i i x a x a b a x )210i 210(n k ???=???=,,,;,,, 或者 ?? ???--=???=???==?+=∑∑-=-+=+++) (1)210i 210(111 1)() 1()1()()1(i j i i j k j ij k j ij i ii i i i k i k i x a x a b a x n k k x x x ,,,;,,, 三. 程序框图

迭代法解线性方程组(C语言描述)

用Gauss-Seidel迭代法解线性方程组的C语言源代码:#include #include #include struct Line{ int L; struct Row *head; struct Line *next; }; struct Row{ int R; float x; struct Row *link; }; //建立每次迭代结果的数据存储单元 struct Term{ float x; float m; }; struct Line *Create(int Line,int Row){ struct Line *Lhead=NULL,*p1=NULL,*p2=NULL; struct Row*Rhead=NULL,*ptr1,*ptr2=NULL; int i=1,j=1; float X; while(i<=Line){ while(j<=Row+1){ scanf("%f",&X); if(X!=0||j==Row+1){ ptr1=(struct Row*)malloc(sizeof(Row)); if(ptr1==NULL){ printf("内存分配错误!\n"); exit(1); } ptr1->x=X; ptr1->R=j; if(ptr2==NULL){ ptr2=ptr1; Rhead=ptr1; } else{

ptr2->link=ptr1; ptr2=ptr1; } } j++; } if(ptr2!=NULL){ ptr2->link=NULL; ptr2=NULL; } if(Rhead!=NULL){ p1=(struct Line*)malloc(sizeof(Line)); if(p1==NULL){ printf("内存分配错误!\n"); exit(1); } p1->L=i; p1->head=Rhead; if(p2==NULL){ Lhead=p1; p2=p1; } else{ p2->next=p1; p2=p1; } } i++; Rhead=NULL; j=1; } if(p2!=NULL) p2->next=NULL; return Lhead; } struct Line *Change(struct Line*Lhead,int n){ struct Line*p1,*p2,*p3,*p; struct Row*ptr; int i=1,k,j; float max,t; if(Lhead==NULL){ printf("链表为空!\n");

解线性方程组的直接法和迭代法

数值分析方法中方程求解的直接法和迭代法 第3章 解线性方程组的直接法 一、 消元法 1. 高斯消元法(加减消元):首先将A 化为上三角阵,再回代求解。 11121121222212n n n n nn n a a a b a a a b a a a b ?? ? ? ? ??? (1)(1)(1)(1)(1)11 121311(2)(2)(2)(2)222322 (3)(3)(3)3333()()000 00 n n n n n nn n a a a a b a a a b a a b a b ?? ? ? ? ? ? ?? ? 步骤如下: 第一步:1 11 1,2,,i a i i n a -? +=第行第行 11121121222212 n n n n nn n a a a b a a a b a a a b ?? ? ? ? ??? 111211(2)(2)(2)2222 (2)(2)(2)2 00n n n nn n a a a b a a b a a b ?? ? ? ? ??? 第二步:(2)2 (2)222,3, ,i a i i n a -?+=第行第行 111211(2)(2)(2)2222 (2)(2)(2)200n n n nn n a a a b a a b a a b ?? ? ? ? ?? ? 111213 11 (2)(2)(2)(2) 222322 (3)(3)(3) 33 33(3)(3)(3) 3 00000n n n n nn n a a a a b a a a b a a b a a b ?? ? ? ? ? ? ?? ? 类似的做下去,我们有: 第k 步:() ()k ,1, ,k ik k kk a i i k n a -?+=+第行第行。 n -1步以后,我们可以得到变换后的矩阵为:

线性方程组的直接法和迭代法

线性方程组的直接法 直接法就是经过有限步算术运算,无需迭代可直接求得方程组精确解的方法。 线性方程组迭代法 迭代法就是用某种极限过程去逐步逼近线性方程组精确解的方法.该方法具有对计算机的存贮单元需求少,程序设计简单、原始系数矩阵在计算过程中不变等优点,是求解大型稀疏矩阵方程组的重要方法.迭代法不是用有限步运算求精确解,而是通过迭代产生近似解逼近精确解.如Jacobi 迭代、Gauss — Seidel 迭代、SOR 迭代法等。 1. 线性方程组的直接法 直接法就是经过有限步算术运算,无需迭代可直接求得方程组精确解的方法。 1.1 Cramer 法则 Cramer 法则用于判断具有n 个未知数的n 个线性方程的方程组解的情况。当方程组的系数行列式不等于零时,方程组有解且解唯一。如果方程组无解或者有两个不同的解时,则系数行列式必为零。如果齐次线性方程组的系数行列式不等于零,则没有非零解。如果齐次线性方程组有非零解,则系数行列式必为零。 定理1如果方程组Ax b =中0D A =≠,则Ax b =有解,且解事唯一的,解为1212,,...,n n D D D x x x D D D ===i D 是D 中第i 列换成向量b 所得的行列式。 Cramer 法则解n 元方程组有两个前提条件: 1、未知数的个数等于方程的个数。 2、系数行列式不等于零 例1 a 取何值时,线性方程组

1231231 2311x x x a ax x x x x ax ++=??++=??++=?有唯一解。 解:2111111 11011(1)11001 A a a a a a a ==--=--- 所以当1a ≠时,方程组有唯一解。 定理2当齐次线性方程组0Ax =,0A ≠时该方程组有唯一的零解。 定理3齐次线性方程组0Ax =有非零解0A <=>=。 1.2 Gauss 消元法 Gauss 消元法是线性代数中的一个算法,可用来为线性方程组求解,求出矩阵的秩,以及求出可逆方阵的逆矩阵。当用于一个矩阵时,高斯消元法会产生出一个“行梯阵式”。 1.2.1 用Gauss 消元法为线性方程组求解 eg :Gauss 消元法可用来找出下列方程组的解或其解的限制: ()()()123283211223x y z L x y z L x y z L +-=??--+=-??-++=-? 这个算法的原理是:首先,要将1L 以下的等式中的x 消除,然后再将2L 以下的等式中的y 消除。这样可使整个方程组变成一个三角形似的格式。之后再将已得出的答案一个个地代入已被简化的等式中的未知数中,就可求出其余的答案了。 在刚才的例子中,我们将132 L 和2L 相加,就可以将2L 中的x 消除了。

线性方程组的迭代法

第六章 线性方程组的迭代法 一、教学目标及基本要求 通过对本节的学习,使学生掌握线性方程组的数值解法。 二、教学内容及学时分配 本节主要介绍线性方程组的数值解法,迭代公式的建立,迭代收敛性。 三、教学重点难点 1.教学重点:迭代公式的建立、迭代收敛性。 2. 教学难点:迭代收敛性。 四、教学中应注意的问题 多媒体课堂教学为主。适当提问,加深学生对概念的理解。 6.2 解线性方程组的迭代法 重要性:解线性代数方程组的有效方法在计算数学和科学计算中具有特殊的地位和作用。如弹性力学、电路分析、热传导和振动、以及社会科学及定量分析商业经济中的各种问题。在实际问题中产生的线性方程组的类型有很多,如按系数矩阵含零元素多少分类,有稠密和稀疏(零元素占80%以上)线性方程组之分;如按阶数的高低分类,有高阶(阶数在1000阶以上)中阶、(500~1000阶) 和低阶(500阶以下)线性方程组之分;如按系数矩阵的形状和性质分类,有对称正定、三对角、对角占优线性方程组之分。因为数值解法必须考虑方法的计算时间和空间效率以及算法的数值稳定性。因此,不同类型的线性方程组,其数值解法也不相同。但是,基本的方法可以归结为两大类,即直接法和迭代法。 分类:线性方程组的解法可分为直接法和迭代法两种方法。 (a) 直接法:对于给定的方程组,在没有舍入误差的假设下,能在预定的运算次数内求得精确解。最基本的直接法是Gauss 消去法,重要的直接法全都受到Gauss 消去法的启发。计算代价高。但实际计算中由于舍入误差的存在和影响,这种方法也只能求得线性方程组的近似解,如何避免舍入误差的增长是设计直接法时必须考虑的问题。 (b) 迭代法:基于一定的递推格式,产生逼近方程组精确解的近似序列。收敛性是其为迭代法的前提,此外,存在收敛速度与误差估计问题。迭代法要求方程组系数矩阵具有某种特殊形式(如对角占优阵),是解高阶稀疏矩阵方程组的重要方法。 §6.1 迭代公式的建立 迭代法的基本思想是用逐次逼近的方法求线性方程组的解。 设有方程组b Ax = (1) 将其转化为等价的便于迭代的形式f Bx x += (2) (这种转化总能实现,如令b f A I B =-=,)并由此构造迭代公式

解线性方程组的迭代法

解线性方程组的迭代法 Haha 送给需要的学弟学妹 摘要:因为理论的分析表明,求解病态的线性方程组是困难的,但是实际情况是否如此,需要我们来具体检验。系数矩阵H 为Hilbert 矩阵,是著名的病态问题。因而决定求解Hx b =此线性方程组来验证上述问题。 详细过程是通过用Gauss 消去法、J 迭代法、GS 迭代法和SOR 迭代法四种方法求解Hx b =线性方程组。 关键词:病态方程组、Gauss 消去法、J 迭代法、GS 迭代法、SOR 迭代法 目录: 一、问题背景介绍 二、建立正确额数学模型 三、求解模型的数学原理 1、Gauss 消去法求解原理 2、Jacobi 迭代法求解原理 3、G-S 迭代法求解原理 4、SOR 迭代法求解原理 5、Jacobi 和G-S 两种迭代法收敛的充要条件 四、计算过程 (一)Hilbert 矩阵维数n=6时 1、Gauss 消去法求解 2、Jacobi 迭代法求解 3、G-S 迭代法求解 4、SOR 迭代法求解 (二)Hilbert 矩阵维数n=20、50和100时 1、G-S 迭代法求解图形 2、SOR 迭代法求解图形 五、编写计算程序 六、解释计算结果 1、Gauss 消去法误差分析 2、G-S 迭代法误差分析 3、SOR 迭代法误差分析 G-S 迭代法与SOR 迭代法的误差比较 七、心得体会 正文: 一、问题背景介绍。 理论的分析表明,求解病态的线性方程组是困难的。实际情况是否如此,会出现怎样的现象呢? 二、建立正确的数学模型。 考虑方程组Hx b =的求解,其中系数矩阵H 为Hilbert 矩阵, ,,1 (), , ,1,2, ,1 i j n n i j H h h i j n i j ?== =+- 这是一个著名的病态问题。通过首先给定解(为方便计算,笔者取x 的各个分量等于1),再计算出右端,b Hx =这样Hx b =的解就明确了,再用Gauss 消去法、J 迭代法、GS 迭代法和SOR 迭代法四种方法分别求解,Hx b =将求解结果与给定解比较,而后求出上述四种方法的误差,得出哪种方法比较好。 三、求解模型的数学原理。 1、Gauss 消去法求解原理 对于Ax b =(A 非奇异)求解时,可以先将A 分解成一个下三角矩阵L 和一个上三角矩阵U 的乘积,即A LU =,就可以通过

实验八、解线性方程组的迭代法

实验八、解线性方程组的迭代法 解线性方程组的迭代法是用某种极限过程去逐步逼近线性方程组精确解的方法,即是从一个初始向量)0(x 出发,按照一定的迭代格式产生一个向量序列}{)(k x ,使其收敛到方程组b Ax =的解。迭代法的优点是所需计算机存储单元少,程序设计简单,原始系数矩阵在计算过程中始终不变等。但迭代法存在收敛性及收敛速度问题。迭代法是解大型稀疏矩阵方程组的重要方法。 一、实验目的 1、熟悉迭代法的有关理论和方法; 2、会编制雅可比迭代法、高斯-塞德尔迭代法的程序; 3、注意所用方法的收敛性及其收敛速度问题。 二、实验任务 1、用雅可比迭代法解方程组 ?????=++=++=-+5222722321 321321x x x x x x x x x . 注意:若用高斯-塞德尔迭代法则发散。 解:输入主程序: function X=jacdd(A,b,X0,P,wucha,max1) [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 for k=1:max1 k for 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);

解线性方程组的直接方法和迭代法

解线性方程组的直接方法和迭代法 用LU 分解及列主元高斯消去法解线性方程组 ????? ? ??????=????????????????????? ???----1 5900001.5820 1 2 151526099999 .23 107104321x x x x . 输出b Ax =中系数LU A =分解法的矩阵L 及U ,解向量x 及A det ;列主元法的行交换次序,解向量x 及A det ;比较两种方法所得的结果. 2.线性方程组b Ax =的A 及b 为 ,109 5 7 910685 657 78710? ??? ????? ???=A ,31332332?? ??? ? ??????=b 则解T x )1,1,1,1(=.用Matlab 内部函数求A det 及A 的所有特征值和.)(2A cond 若令 ????? ? ??? ???=+98.99 5 99 .6989.998.585 604.508 .72.71.8710 A A δ, 求解b x x A A =++))((δδ,输出向量x δ和2x δ,从理论结果和实际计算两方面分析线性方程组b Ax =解的相对误差2 2 x x δ及A 的相对误差2 2 A A δ的关系。 3.给出线性方程组b x H n =,其中系数矩阵n H 为希尔伯特矩阵: ()n n ij n R h H ?∈=,.,,2,1,,1 1n j i j i h ij =-+= 假设()**,1,,1,1x H b R x n n T =∈= ,若取8,6=n ,分别用雅可比迭代法及SOR 迭代法)5.1,25.1,1(=ω求解,比较计算结果。 结果 1. >>A=[10 -7 0 1;-3 2.099999 6 2;5 -1 5 -1;2 1 0 2]

线性方程组的直接法和迭代法

线性方程组的直接法 直接法就就是经过有限步算术运算,无需迭代可直接求得方程组精确解的方法。 线性方程组迭代法 迭代法就就是用某种极限过程去逐步逼近线性方程组精确解的方法.该方法具有对计算机的存贮单元需求少,程序设计简单、原始系数矩阵在计算过程中不变等优点,就是求解大型稀疏矩阵方程组的重要方法.迭代法不就是用有限步运算求精确解,而就是通过迭代产生近似解逼近精确解.如Jacobi 迭代、Gauss — Seidel 迭代、SOR 迭代法等。 1. 线性方程组的直接法 直接法就就是经过有限步算术运算,无需迭代可直接求得方程组精确解的方法。 1.1 Cramer 法则 Cramer 法则用于判断具有n 个未知数的n 个线性方程的方程组解的情况。当方程组的系数行列式不等于零时,方程组有解且解唯一。如果方程组无解或者有两个不同的解时,则系数行列式必为零。如果齐次线性方程组的系数行列式不等于零,则没有非零解。如果齐次线性方程组有非零解,则系数行列式必为零。 定理1如果方程组Ax b =中0D A =≠,则Ax b =有解,且解事唯一的,解为1212,,...,n n D D D x x x D D D ===i D 就是D 中第i 列换成向量b 所得的行列式。 Cramer 法则解n 元方程组有两个前提条件: 1、未知数的个数等于方程的个数。 2、系数行列式不等于零 例1 a 取何值时,线性方程组 1231231 2311x x x a ax x x x x ax ++=??++=??++=?有唯一解。 解:2111111 11011(1)11001 A a a a a a a ==--=--- 所以当1a ≠时,方程组有唯一解。 定理2当齐次线性方程组0Ax =,0A ≠时该方程组有唯一的零解。

迭代法及其在数值求解线性方程组中的应用

郑州师范学院 毕业论文 题目迭代法及其在数值求解 线性方程组中的应用姓名陈丹丹 学号 1 院系数学与统计学院 专业数学与应用数学 年级班级B12数应2班 指导教师王明建 2016年 5 月20 日

毕业论文作者声明 本人郑重声明:所呈交的毕业论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。 本人完全了解有关保障、使用毕业论文的规定,同意学校保留并向有关毕业论文管理机构送交论文的复印件和电子版。同意省级优秀毕业论文评选机构将本毕业论文通过影印、缩印、扫描等方式进行保存、摘编或汇编;同意本论文被编入有关数据库进行检索和查阅。 本毕业论文内容不涉及国家机密。 论文题目:迭代法及其在数值求解线性方程组中的应用 作者单位:郑州师范学院 作者签名:

目录 摘要 (3) 引言 (3) 1.预备知识 (3) 1.1迭代法的基本形式 (3) 1.2 Jocabi迭代法 (3) 1.2.1分量形式的Jacobi迭代法 (3) 1.2.2矩阵形式的Jacobi迭代法 (3) 1.2.3 Jacobi迭代法的算法实现步骤 (3) 1.3 Gauss-Seidel迭代法 (3) 1.3.1分量形式的Gauss-seidel迭代法 (3) 1.3.2矩阵形式的Gauss-seidel迭代法 (3) 1.3.3 Gauss-Seidel迭代法的算法实现步骤 (3) 1.4超松弛迭代法(SOR迭代法) (3) 1.4.1分量形式的SOR方法 (3) 1.4.2矩阵形式的SOR方法 (3) 1.4.3 SOR迭代法的算法实现步骤 (3) 1.5迭代法的收敛性 (3) 2. 数值求解线性方程组 (3) 2.1用Jacobi迭代法求解 (3)

相关文档
最新文档