第三节 用矩阵分解法求解线性方程组

31
数数数数 数数数数 数数数 数数数数数数数数数数数数数 A LU Ax b 数数数数数数 数数 一、 PA LU Ax b 数数数数数数数数数 数数 T PAQ LU Ax b 数数数数数数数数数 数数 T Cholesky A LL Ax b 数数 数数 数数 A QR Ax b 数数数数数数 数数 T A U V Ax b 数数数数数数数数数 数数 数数数数数数数数数

description

第三节 用矩阵分解法求解线性方程组. 七、 三对角方程组的解法. lupdsv.m % 功能:调用列主元三角分解函数 [LU,p]=lupd(A) % 求解线性方程组 Ax=b 。 % 解法: PA=LU, Ax=b←→PAx=Pb % LUx=Pb, y=Ux % Ly=f=Pb, f(i)=b(p(i)) % 输入:方阵 A ,右端项 b (行或列向量均可) % 输出:解 x (行向量). function x=lupdsv(A,b) n=length(b); [LU,p]=lupd(A); - PowerPoint PPT Presentation

Transcript of 第三节 用矩阵分解法求解线性方程组

Page 1: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

第三节 用矩阵分解法求解线性方程组

A LU Ax b 一、利用三角分解 求解

PA LU Ax b 二、用列主元的三角分解 求解

TPAQ LU Ax b 三、用全主元的三角分解 求解

TCholesky A LL Ax b 四、利用 分解 求解

A QR Ax b 五、利用正交分解 求解TA U V Ax b 六、利用矩阵奇异值分解 求解

七、 三对角方程组的解法

Page 2: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

A LU

A LU Ax b

LY

Ax b

bLUx b

Ux Y

设已有 代入一、利用三角分解

得求解原方程

1 2

1 1

1

1

,

( , , , )

:

( 2,3, , )

Tn

k

k k kj jj

LY b

Y y y y

y b

y b l y k n

第 求解下三角方程组 向前回步 代一 求出

nnnnnn b

b

b

y

y

y

lll

ll

l

2

1

2

1

1,21

3231

21

1

1

1

1

1

Page 3: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

nnnn

n

n

kk

n

kjjkjkk

nnnn

y

y

y

x

x

x

u

uu

uuunnk

uxuyx

uyxxYUx

2

1

2

1

222

11211

1

)1,,2,1(

)(

,: 向后回代求出求解上三角方程组第二步

Page 4: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

0 1 1 2 0

1 0 0 1 2

2 1 0 1 1

1 3 0 1 6

A b

Ax=b用列主元三角分解求解

其中

例:

PA LU

LY PbAx b PAx Pb LUx

x

U

b

bx

A

PY

二、用列主元的三角分解 求解

1 1

1 1

3, 1

0 0 1 0 2 1 0 1

0 1 0 0 1 0 0 1

1 0 0 0 0 1 1 2

0 0 0 1 1 3 0 1

i i

P P A

解:

Page 5: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

1 1 1

2 1 0 11

31 11 02 2 20 1 1 1 2

1 7 11 02 2 2

L L P A

2 2

2 2 1 1

2 2 2 1 1

4, 2

2 1 0 11 0 0 0

7 100 0 0 1 2 21 1 20 0 1 0

30 1 0 0 1 02 2

2 1 0 117 101 2 2

2 1 130 17 71 1 110 07 7

i i

P P L P A

L L P L P A U

Page 6: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

1 12 1 2 2

1

1 1220 17

1 1 0 12 7

L P L P L

1 1 1 1 1 12 2 1 1 1 1 2 2 1 1 2 2

2 1

1 1 1 1 1 12 1 1 1 2 2 2 1 2 2 2 1 2 2

,L P L P A U A P L P L U P L P L U

P P P

PA P P P L P L U P L P L U L P L P L

PA LU

Page 7: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

1

2

(1 2 3 4) , (3 2 1 4) ,

(3 4 1 2) , (3 4 1 2)

,

( ) (

, ,

(1) ( (1)) (3), (2) ( (2)) (4)

(3) ( (3)) (1), (4) ( (4)

( )

) 2

)

( )

T T

T T

P

P P

P P

Ax b PA LU PAx Pb

LUx Pb f

f b P b f b P b

f b P b

f i b P

f b P b

i

为排列阵,在计算机中用向量表示

Page 8: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

1 1

2 2

3 3

4 4

111

131 12 26,2 130 1 07 7

21 1 110 12 7 7

y y

y yLY Pb f

y y

y y

解 得

1 1

2 2

3 3

4 4

2 1 0 1

7 102 2130 1 07110 0 7

x x

x xUx

x x

x x

-11

132 2

解 = ,得 =137

1117

Page 9: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

lupdsv.m

% 功能:调用列主元三角分解函数 [LU,p]=lupd(A)

% 求解线性方程组 Ax=b 。

% 解法: PA=LU, Ax=b←→PAx=Pb

% LUx=Pb, y=Ux

% Ly=f=Pb, f(i)=b(p(i))

% 输入:方阵 A ,右端项 b (行或列向量均可)

% 输出:解 x (行向量)

Page 10: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

function x=lupdsv(A,b)

n=length(b);

[LU,p]=lupd(A);

y(1)=b(p(1));

for i=2:n

y(i)=b(p(i))-LU(i,1:i-1)*y(1:i-1)';

end

x(n)=y(n)/LU(n,n);

for i=(n-1):-1:1

x(i)=(y(i)-LU(i,i+1:n)*x(i+1:n)')/LU(i,i);

end

Page 11: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

( ) ( )

T

TAx b PA

PAQ LU Ax

Q Qx Pb

b

LU Qx Pb

三、用全主元的三角分解 求解

lupqdsv.m

% 功能:调用全主元三角分解函数 [LU,p,q]=lupqd(A)

% 求解线性方程组 Ax=b 。

% 解法: PAQ-1=LU, Ax=b←→(PAQ-1)(Qx)=Pb

% LU(Qx)=Pb, z=Qx, y=Uz

% Ly=f=Pb, f(i)=b(p(i))

% Uz=y, z=Qx , x(q(i))=z(i).

% 输入:方阵 A ,右端项 b (行或列向量均可)

% 输出:解 x (行向量)

Page 12: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

function x=lupqdsv(A,b)

n=length(b);

[LU,p,q]=lupqd(A);

y(1)=b(p(1));

for i=2:n

y(i)=b(p(i))-LU(i,1:i-1)*y(1:i-1)';

end

z(n)=y(n)/LU(n,n);x(q(n))=z(n);

for i=(n-1):-1:1

z(i)=(y(i)-LU(i,i+1:n)*z(i+1:n)')/LU(i,i);

x(q(i))=z(i);

end

Page 13: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

,

T

n n

T T

Cholesky A LL Ax b

A R Cholesky

A LL LL x b

是对称正定的矩

四、利用 分解 求解

阵,有 分解式

代入原方程 可分成两步

1

( ) / , ( , 1, ,1)

T

n

i i ki k iik i

L x Y

x y l x l i n n

(2)求解上三角方程组

1

1

( ) / , ( 1, 2, , )i

i i ik k iik

LY b

y b l y l i n

(1)求解下三角方程组

Page 14: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

1

2

3

T

T

Ax b QRx b Rx Q b

A QR

b Q b

Rx b

A QR Ax b

,于是可分成三

五、利用正交分

步()正交分解

( )矩阵乘法

( )回代求解上三角方程组

解 求解

3

3

1

32

3

n

n

这种方法没有选主元问题,计算稳定,但计算量略

大,消元法的计算量大约为 ,正交分解法的计算量

大约为 。

Page 15: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

11 12 1 11 12 1

21 22 2 22

1 2

1

1

(1)

,

(2)

, 1,2, ,

(3)

, ( 1, , 2,1)( )

n n

n

n n nn nn

T

n

k ik ii

nn nn

n

nk kj j kkj k

A QRq q q r r r

q q q rQ R

q q q r

b Q b

b q b k n

Rx b

x b r

k nx b r x r

计算

回代求解

Page 16: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

1

, 0, 1,2, ...,

T

n n

T

i

n

A R

A U

A U V Ax b

V

U V i n

对于 非奇异情况,此时有奇异值分解

其中 、 为正交

六、利用矩阵奇异

值分解 求

1 1

1 2

1 1 1( , , ..., )T T

n

A V U V diag U

显然

1

1 2

1 1 1( , , ..., ) T

n

Ax b x A b

x V diag U b

于是,求解

可化为

Page 17: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

定义 1 若 n 阶矩阵 A=(aij) 的元素满足 : 对于 1<p,q<n 的正整数 p 、q, 有 j≥i+p 及 i≥j+q 时, aij=0 , 则 A 称 为 带 状 矩 阵 . 带 宽 为w=p+q-1 。

nnnn

nnnnnn

aa

aaa

aaa

aa

A

,1,

,11,12,1

232221

1211

00

00

00

A 称为三对角矩阵。

较常见带状矩阵为带宽为 3 ( p=q=2,w=3) 的矩阵。

系数矩阵为三对角矩阵的线性方程组称为三对角方程组。

七、 三对角方程组的解法

Page 18: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

三对角线性方程组

应用追赶法求解三对角线性方程组。追赶法仍然保持 LU 分解特性 , 它是一种特殊的 LU 分解。充分利用了系数矩阵的特点,而且使之分解更简单 , 得到对三对角线性方程组的快速解法。

dAx 用矩阵表示

1 1 1 1

2 2 2 2 2

1n

n n n n

b c x d

a b c x d

c

a b x d

Page 19: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

定理 如果带宽为 w=p+q-1 的 n 阶带状矩阵 A 有 LU分解 :A=LU ,则 L 是带宽为 p 的下三角矩阵, U 是带宽为 q 的上三角矩阵。

11 1

22

1 1,

, 1

11 1

22

1 1,

, 1

0

0

01 0

1

0 1 0

q

p n q n

n n p nn

q

p n q n

n n p nn

a a

a

a a

a a

u u

ul u

l u

例:

Page 20: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

1 1 1, 21 2

2

1

2 2 1 2 2 1 2, 2

,

,

b c a u

b l

u r l

ur u l c c r

1 1

1 1 1 1

2 2 2 2 2 2

3

1 1

, , ( 1, 2, , 1),

1

1

1

i i i

n n

n n

n n n n

A b c b c a i n

b c A LU

b c u r

a b c l u r

l

c r

a b l u

当 为三对角阵 且 ,

时, 有 分解展开式

1

1 1

, 2, 3, ,

, 2, 3, ,

, 2, 3, , 1

k k

k k k k k k

k

k

kk

a u k n

b l r u l c

l

ku

nr

n

c k

Page 21: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

1 1 1, 21 2

2

1

2 2 1 2 2 1 2, 2

,

,

b c a u

b l

u r l

ur u l c c r

(1) (2) (3)A LU LY d Ux Y 追赶法的计算过程分为三步

1

1 1

, 2, 3, ,

, 2, 3, ,

, 2, 3, , 1

k k

k k k k k k

k

k

kk

a u k n

b l r u l c

l

ku

nr

n

c k

1 1

1 1

, ( 1, 2, , 1)2,3, ,

,

k k

k k k k k k k

u b r c k nk n

l a u u b l c

Page 22: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

1 1

1 1

1 1

1

1

,

, ( 1,2, , 1)2,3, ,

,

( 2, 3, , )

( ) ( 1, , 2,1)

,

k k

k k k k k k k

k k k k

n n n

k n k k k

LY d

u b r c k nk n

l a u u b l c

y dy d l y k n

x y ux y c x u k

Ux

n

Y

求解三对角方程组的追赶法①计算分解因子阵

②求解

③求解

Page 23: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

1 2

1 2

2 3 4

3 4

2 1

2 1

2 0

2 1

x x

x x

x x x

x x

例 求解方程组::

1 1

2 2 2

3 3 3

4 4

12 1

11 2

11 2 1

11 2

1 2 11 1 3 02 2

2 1 2 1331 1 22

u r

l u rA LU

l u r

l u

解:

Page 24: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

求解 Ux=y , x4=0.3333, x3=-0.3333, x

2=-1, x1=-1

求解 Ly=b, y1=1, y2=1.5, y3=1, y4=0.5

Page 25: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

周期三对角方程组的一般形式

基本思想:利用谢尔曼 - 莫里森公式( Sherman-Morrison) 将方程化为三对角方程求解。

Ax d矩阵表示

1 1 1 1

2 2 2 2 2

1 1 1 1 1n n n n n

n n n n

b c x d

a b c x d

a b c x d

a b x d

Page 26: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

。非奇异且、非奇异其中

UAVUVAUAVRVURA

TT

Tnnn

1

1

,,01,,

1 11

1

TA UV A dx A d

1 11 1( )

1

TT A UV A

A UV A

谢尔曼 - 莫里森公式( Sherman-Morrison)

此方程组的解为莫里森公式,利用谢尔曼为三对角矩阵其中

化为使原方程组、选择向量

,)(

AdxUVA

dxAVUT

Page 27: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

1 11

1

TA UV A dx A d

计算

1

1 1 ( )

T T

T T

V A U V Z

A UV A d V W Z

1

1

,

,

W A d AW d W

Z A U AZ U Z

令 由 可解出令 由 可解出

1

TV Wx W Z

Page 28: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

,

,

( )

1 (

1.

)

2.T

T

AW d W

AZ U Z

V WX W Z

V Z

求出求

先解两个辅助方程组

利用谢尔曼 莫里森公式可求得原方程组的解出

Page 29: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

TA A UV

如何选取 U,V

1 1

2 2 2

1 1 1

1 1 1

2 2 2

11 1 1

0

1 0 0

0

T

n n n

n n

n n n

n n

b c

a b c

A A UV

a b c

a b

b c b

a b c

ba b c

a b

Page 30: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

1

1

1 1 1 1

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

,

T T

n

n n

U b a Vb

b b

b b b b b b

选取

及 分别修改为

Page 31: 第三节   用矩阵分解法求解线性方程组

数值分析

数值分析

二版习题 P115----15 , 16

三版习题 P138----10 , 11

11 12 131

21 22 23

31 32 2,

1, 1 1,

, 2 , 1 ,

0

,

0

n n

n n n nn

n n n n n n

Ax b

a a ab

a a a

a a aA b

a ab

a a a

用矩阵分解法求解五对角方程组

其中

试推导求解公式。