• 沒有找到結果。

数值计算方法 线性方程组的解法

N/A
N/A
Protected

Academic year: 2021

Share "数值计算方法 线性方程组的解法"

Copied!
284
0
0

加載中.... (立即查看全文)

全文

(1)

数值计算方法

线性方程组的解法

张晓平

2019 年 9 月 30 日

武汉大学数学与统计学院

(2)

Table of contents

1. 高斯消去法

2. 三角形方程组和三角分解

3. 选主元三角分解

4. 平方根法及改进的平方根法

5. 追赶法

1

(3)

线性方程组的求解问题是一个古老的数学问题

•《九章算术》:详细记载了消元法

• 19 世纪初,西方有了Gauss 消去法

• 求解大型线性方程组则是在 20 世纪计算机问世后才成为可能

2

(4)

线性方程组数值解法的分类

• 直接法

• 迭代法

3

(5)

直接法

• 定义:在没有舍入误差的情况下经过有限次运算可求得精确解的

方法

• 举例:

• 高斯消去法

• 平方根法

• 追赶法

· · ·

• 适用范围:

• 低阶稠密矩阵方程组

• 某些大型稀疏方程组(如大型带状方程组)

· · ·

4

(6)

迭代法

• 定义:采取逐次逼近的方法,亦即从一个初始向量出发,按照一

定的计算格式,构造一个无穷序列,其极限才是方程组的精确解,

只经过有限次运算得不到精确解

• 举例:

• Jacobi 迭代

• Gauss-Seidel 迭代

• 超松弛迭代

· · ·

• 适用范围:

• 大型稀疏方程组

· · ·

5

(7)

高斯消去法

(8)

高斯消去法

顺序消去法

(9)

顺序消去法

定义 : 顺序消去法

在逐步消元的过程中,把系数矩阵约化成上三角矩阵,从而将原 方程组约化为容易求解的等价三角方程组,再通过回代过程逐一 求出各未知数。

6

(10)

顺序消去法

设 a(1)11 ̸= 0,











a(1)11x1+ a(1)12x2+ a(1)13x3 = b(1)1 (1) a(1)21x1+ a(1)22x2+ a(1)23x3 = b(1)2 (2) a(1)31x1+ a(1)32x2+ a(1)33x3 = b(1)3 (3)

(2)+(1)× (

a

(1) 21 a(1)

11

)

============

(3)+(1)× (

a

(1) 31 a(1)

11

)











a(1)11x1+ a(1)12x2+ a(1)13x3 = b(1)1 a(2)22x2+ a(2)23x3 = b(2)2 , a(2)32x2+ a(2)33x3 = b(2)3 .

7

(11)

顺序消去法

设 a(1)11 ̸= 0,











a(1)11x1+ a(1)12x2+ a(1)13x3 = b(1)1 (1) a(1)21x1+ a(1)22x2+ a(1)23x3 = b(1)2 (2) a(1)31x1+ a(1)32x2+ a(1)33x3 = b(1)3 (3)

(2)+(1)× (

a

(1) 21 a(1)

11

)

============

(3)+(1)× (

a

(1) 31 a(1)

11

)











a(1)11x1+ a(1)12x2+ a(1)13x3 = b(1)1 a(2)22x2+ a(2)23x3 = b(2)2 , a(2)32x2+ a(2)33x3 = b(2)3 .

7

(12)

顺序消去法

设 a(1)11 ̸= 0,











a(1)11x1+ a(1)12x2+ a(1)13x3 = b(1)1 (1) a(1)21x1+ a(1)22x2+ a(1)23x3 = b(1)2 (2) a(1)31x1+ a(1)32x2+ a(1)33x3 = b(1)3 (3)

(2)+(1)× (

a

(1) 21 a(1)

11

)

============

(3)+(1)× (

a

(1) 31 a(1)

11

)











a(1)11x1+ a(1)12x2+ a(1)13x3 = b(1)1 a(2)22x2+ a(2)23x3 = b(2)2 , a(2)32x2+ a(2)33x3 = b(2)3 .

7

(13)

顺序消去法













a(2)ij = a(1)ij + a(1)1j × (

a(1)i1 a(1)11

)

, i, j = 2, 3,

b(2)i = b(1)i + b(1)1 × (

a(1)i1 a(1)11

)

, i = 2, 3.

8

(14)

顺序消去法

设 a(2)22 ̸= 0,











a(1)11x1+ a(1)12x2+ a(1)13x3 = b(1)1 , a(2)22x2+ a(2)23x3 = b(2)2 , a(2)32x2+ a(2)33x3 = b(2)3 .

(3) + (2)× (

a(2)32 a(2)22

)

================











a(1)11x1+ a(1)12x2+ a(1)13x3 = b(1)1 a(2)22x2+ a(2)23x3 = b(2)2 a(3)33x3 = b(3)3

9

(15)

顺序消去法

设 a(2)22 ̸= 0,











a(1)11x1+ a(1)12x2+ a(1)13x3 = b(1)1 , a(2)22x2+ a(2)23x3 = b(2)2 , a(2)32x2+ a(2)33x3 = b(2)3 .

(3) + (2)× (

a(2)32 a(2)22

)

================











a(1)11x1+ a(1)12x2+ a(1)13x3 = b(1)1 a(2)22x2+ a(2)23x3 = b(2)2 a(3)33x3 = b(3)3

9

(16)

顺序消去法













a(3)33 = a(2)33 + a(2)23 × (

a(2)32 a(2)22

) ,

b(3)3 = b(2)3 + b(2)2 × (

a(2)32 a(2)22

) .

10

(17)

顺序消去法

一般情形:考察 n 元线性方程组

A(1)x = b(1), 其中

A(1)=









a(1)11 a(1)12 · · · a(1)1n

a(1)21 a(1)22 · · · a(1)2n

... ... ...

a(1)n1 a(1)n2 · · · a(1)nn







 , X =







 x1

x2

... xn









, b(1)=







 b(1)1

b(1)2 ...

b(1)n









11

(18)

顺序消去法

若约化的主元 a(k)kk ̸= 0 (k = 1, 2, · · · , n),则经过 顺序消元法

for k = 1, 2, · · ·, n-1 for i = k+1, · · ·, n

lik= a(k)ik / a(k)kk,

for j = k+1, · · ·, n+1 a(k+1)ij = a(k)ij − lik · a(k)kj end

end end

12

(19)

顺序消去法

可得 







a(1)11 a(1)12 · · · a(1)1n

0 a(2)22 · · · a(2)2n

... ... ... 0 0 · · · a(n)nn











 x1

x2

... xn







=







b(1)1 b(2)2 ... b(n)n







13

(20)

顺序消去法

回代公式

xn = b(n)n / a(n)nn

for i = n-1, n-2, · · ·, 1 xi =

b(i)i

n j=i+1

a(i)ij xj

 / aiii

end

14

(21)

顺序消去法

• 若遇到 a(k)kk = 0,则消去过程无法进行;

• 若 a(k)kk 不为零但很小,尽管消去过程可以进行下去,但用其 做除数,会引起计算结果的严重失真。

{ 0.00001x1+ 2x2 = 2, x1+ x2 = 3.

15

(22)

顺序消去法

• 若遇到 a(k)kk = 0,则消去过程无法进行;

• 若 a(k)kk 不为零但很小,尽管消去过程可以进行下去,但用其 做除数,会引起计算结果的严重失真。

{ 0.00001x1+ 2x2 = 2,

x1+ x2 = 3.

15

(23)

高斯消去法

列主元消去法

(24)

列主元消去法

定义 : 列主元消去法

在消元过程中,每次选主元时,仅依次按列选取绝对值最大的元 素作为主元,它只进行行交换,而不产生未知数次序的调换。

列主元消去法能有效地避免顺序消元过程中的两个问题,它是直接法 中最常用的一种方式。

16

(25)

列主元消去法

定义 : 列主元消去法

在消元过程中,每次选主元时,仅依次按列选取绝对值最大的元 素作为主元,它只进行行交换,而不产生未知数次序的调换。

列主元消去法能有效地避免顺序消元过程中的两个问题,它是直接法 中最常用的一种方式。

16

(26)

列主元消去法

用列主元消去法求解







2 x1 + x2 + 2 x3 = 5, 5 x1x2 + x3 = 8, x1 − 3 x2 − 4 x3 = −4.

17

(27)

列主元消去法

2 1 2 5 5 −1 1 8 1 −3 −4 −4





r1↔r2

====

5 −1 1 8 2 1 2 5 1 −3 −4 −4





5 −1 1 8

1.4 1.6 1.8

−2.8 −4.2 −5.6





r225r1

=====

r315r1

r2↔r3

====

5 −1 1 8

−2.8 −4.2 −5.6 1.4 1.6 1.8





5 −1 1 8

−2.8 −4.2 −5.6

−0.5 −1





r3+12r2

=====

18

(28)

列主元消去法

2 1 2 5 5 −1 1 8 1 −3 −4 −4





====r1↔r2

5 −1 1 8 2 1 2 5 1 −3 −4 −4





5 −1 1 8

1.4 1.6 1.8

−2.8 −4.2 −5.6





r225r1

=====

r315r1

r2↔r3

====

5 −1 1 8

−2.8 −4.2 −5.6 1.4 1.6 1.8





5 −1 1 8

−2.8 −4.2 −5.6

−0.5 −1





r3+12r2

=====

18

(29)

列主元消去法

2 1 2 5 5 −1 1 8 1 −3 −4 −4





====r1↔r2

5 −1 1 8 2 1 2 5 1 −3 −4 −4





5 −1 1 8

1.4 1.6 1.8

−2.8 −4.2 −5.6





r225r1

=====

r315r1

r2↔r3

====

5 −1 1 8

−2.8 −4.2 −5.6 1.4 1.6 1.8





5 −1 1 8

−2.8 −4.2 −5.6

−0.5 −1





r3+12r2

=====

18

(30)

列主元消去法

2 1 2 5 5 −1 1 8 1 −3 −4 −4





====r1↔r2

5 −1 1 8 2 1 2 5 1 −3 −4 −4





5 −1 1 8

1.4 1.6 1.8

−2.8 −4.2 −5.6





r225r1

=====

r315r1

r2↔r3

====

5 −1 1 8

−2.8 −4.2 −5.6 1.4 1.6 1.8





5 −1 1 8

−2.8 −4.2 −5.6

−0.5 −1





r3+12r2

=====

18

(31)

列主元消去法

2 1 2 5 5 −1 1 8 1 −3 −4 −4





====r1↔r2

5 −1 1 8 2 1 2 5 1 −3 −4 −4





5 −1 1 8

1.4 1.6 1.8

−2.8 −4.2 −5.6





r225r1

=====

r315r1

r2↔r3

====

5 −1 1 8

−2.8 −4.2 −5.6 1.4 1.6 1.8





5 −1 1 8

−2.8 −4.2 −5.6

−0.5 −1





r3+12r2

=====

18

(32)

列主元消去法

列主元消去法 for k = 1, 2, · · ·, n-1

find ik∈ k, · · · , n s.t. |a(k)ik,k| = maxk⩽i⩽n|a(k)ik |;

interchange the k, ik-th rows in [A(k), b(k)] ; for i = k+1, · · ·, n

lik= a(k)ik / a(k)kk;

for j = k+1, · · ·, n+1 a(k+1)ij = a(k)ij − lik · a(k)kj ; end

end end

19

(33)

高斯消去法

全主元消去法

(34)

全主元消去法

定义 : 全主元消去法

全主元消去法选主元的范围更大,对于 (

A(1) | b(1))

来说,在整 个系数矩阵中选主元,即将绝对值最大的元素经过行列变换使其 置于 a(1)11 的位置,然后进行消元过程得到 (

A(2) | b(2))

接下来在该矩阵中划掉第一行第一列后剩余的 n − 1 阶子系数矩 阵中选主元,并通过行、列交换置其于 a(2)22 的位置,然后进行消 元;

· · · ·

20

(35)

全主元消去法

用全主元消去法求解







2 x1 + x2 + 2 x3 = 5, 5 x1x2 + x3 = 8, x1 − 3 x2 − 4 x3 = −4.

21

(36)

全主元消去法

2 1 2 5 5 −1 1 8 1 −3 −4 −4





x1 x2 x3

r1↔r2

====

5 −1 1 8 2 1 2 5 1 −3 −4 −4





x1 x2 x3

5 −1 1 8

1.4 1.6 1.8

−2.8 −4.2 −5.6





x1 x2 x3

r225r1

=====

r315r1

r2↔r3

====

c2↔c3

5 1 −1 8

−4.2 −2.8 −5.6 1.6 1.4 1.8





x1 x3 x2

5 −1 1 8

−2.8 −4.2 −5.6 1/3 −1/3





x1 x3 x2

r3+218r2

=====

22

(37)

全主元消去法

2 1 2 5 5 −1 1 8 1 −3 −4 −4





x1 x2 x3

r1↔r2

====

5 −1 1 8 2 1 2 5 1 −3 −4 −4





x1 x2 x3

5 −1 1 8

1.4 1.6 1.8

−2.8 −4.2 −5.6





x1 x2 x3

r225r1

=====

r315r1

r2↔r3

====

c2↔c3

5 1 −1 8

−4.2 −2.8 −5.6 1.6 1.4 1.8





x1 x3 x2

5 −1 1 8

−2.8 −4.2 −5.6 1/3 −1/3





x1 x3 x2

r3+218r2

=====

22

(38)

全主元消去法

2 1 2 5 5 −1 1 8 1 −3 −4 −4





x1 x2 x3

r1↔r2

====

5 −1 1 8 2 1 2 5 1 −3 −4 −4





x1 x2 x3

5 −1 1 8

1.4 1.6 1.8

−2.8 −4.2 −5.6





x1 x2 x3

r225r1

=====

r315r1

r2↔r3

====

c2↔c3

5 1 −1 8

−4.2 −2.8 −5.6 1.6 1.4 1.8





x1 x3 x2

5 −1 1 8

−2.8 −4.2 −5.6 1/3 −1/3





x1 x3 x2

r3+218r2

=====

22

(39)

全主元消去法

2 1 2 5 5 −1 1 8 1 −3 −4 −4





x1 x2 x3

r1↔r2

====

5 −1 1 8 2 1 2 5 1 −3 −4 −4





x1 x2 x3

5 −1 1 8

1.4 1.6 1.8

−2.8 −4.2 −5.6





x1 x2 x3

r225r1

=====

r315r1

r2↔r3

====

c2↔c3

5 1 −1 8

−4.2 −2.8 −5.6 1.6 1.4 1.8





x1 x3 x2

5 −1 1 8

−2.8 −4.2 −5.6 1/3 −1/3





x1 x3 x2

r3+218r2

=====

22

(40)

全主元消去法

2 1 2 5 5 −1 1 8 1 −3 −4 −4





x1 x2 x3

r1↔r2

====

5 −1 1 8 2 1 2 5 1 −3 −4 −4





x1 x2 x3

5 −1 1 8

1.4 1.6 1.8

−2.8 −4.2 −5.6





x1 x2 x3

r225r1

=====

r315r1

r2↔r3

====

c2↔c3

5 1 −1 8

−4.2 −2.8 −5.6 1.6 1.4 1.8





x1 x3 x2

5 −1 1 8

−2.8 −4.2 −5.6 1/3 −1/3





x1 x3 x2

r3+218r2

=====

22

(41)

高斯消去法

选主元消去法的应用

(42)

选主元消去法的应用:求逆矩阵

应用一: 矩阵的求逆 A E

( )

Gauss−Jordan Elimination

================== E A−1

( )

23

(43)

选主元消去法的应用:求逆矩阵

求矩阵

A =



11 −3 −2

−23 11 1 1 −2 2



的逆矩阵.

24

(44)

选主元消去法的应用:求逆矩阵

11 −3 −2 1 0 0

−23 11 1 0 1 0 1 −2 2 0 0 1





r1↔r2

====

−23 11 1 0 1 0 11 −3 −2 1 0 0 1 −2 2 0 0 1





1 −0.478 −0.044 0 −0.044 0 0 2.261 −1.522 1 0.478 0 0 −1.522 2.044 0 0.044 1





r2+1123r1, r3+231r1

=============

r1÷(−23)

1 0 −0.365 0.211 0.057 0 0 1 −0.673 0.442 0.211 0 0 0 1.019 0.673 0.365 1





r1+2261478r2, r3+15222261r2

===============

r2÷(2.261)

1 0 0 0.452 0.188 0.358 0 1 0 0.886 0.452 0.660 0 0 1 0.660 0.358 0.981





A−1

r1+1019365r3, r2+1019673r3

===============

r3÷(1.019)

25

(45)

选主元消去法的应用:求逆矩阵

11 −3 −2 1 0 0

−23 11 1 0 1 0 1 −2 2 0 0 1





====r1↔r2

−23 11 1 0 1 0 11 −3 −2 1 0 0 1 −2 2 0 0 1





1 −0.478 −0.044 0 −0.044 0 0 2.261 −1.522 1 0.478 0 0 −1.522 2.044 0 0.044 1





r2+1123r1, r3+231r1

=============

r1÷(−23)

1 0 −0.365 0.211 0.057 0 0 1 −0.673 0.442 0.211 0 0 0 1.019 0.673 0.365 1





r1+2261478r2, r3+15222261r2

===============

r2÷(2.261)

1 0 0 0.452 0.188 0.358 0 1 0 0.886 0.452 0.660 0 0 1 0.660 0.358 0.981





A−1

r1+1019365r3, r2+1019673r3

===============

r3÷(1.019)

25

(46)

选主元消去法的应用:求逆矩阵

11 −3 −2 1 0 0

−23 11 1 0 1 0 1 −2 2 0 0 1





====r1↔r2

−23 11 1 0 1 0 11 −3 −2 1 0 0 1 −2 2 0 0 1





1 −0.478 −0.044 0 −0.044 0 0 2.261 −1.522 1 0.478 0 0 −1.522 2.044 0 0.044 1





r2+1123r1, r3+231r1

=============

r1÷(−23)

1 0 −0.365 0.211 0.057 0 0 1 −0.673 0.442 0.211 0 0 0 1.019 0.673 0.365 1





r1+2261478r2, r3+15222261r2

===============

r2÷(2.261)

1 0 0 0.452 0.188 0.358 0 1 0 0.886 0.452 0.660 0 0 1 0.660 0.358 0.981





A−1

r1+1019365r3, r2+1019673r3

===============

r3÷(1.019)

25

(47)

选主元消去法的应用:求逆矩阵

11 −3 −2 1 0 0

−23 11 1 0 1 0 1 −2 2 0 0 1





====r1↔r2

−23 11 1 0 1 0 11 −3 −2 1 0 0 1 −2 2 0 0 1





1 −0.478 −0.044 0 −0.044 0 0 2.261 −1.522 1 0.478 0 0 −1.522 2.044 0 0.044 1





r2+1123r1, r3+231r1

=============

r1÷(−23)

1 0 −0.365 0.211 0.057 0 0 1 −0.673 0.442 0.211 0 0 0 1.019 0.673 0.365 1





r1+2261478r2, r3+15222261r2

===============

r2÷(2.261)

1 0 0 0.452 0.188 0.358 0 1 0 0.886 0.452 0.660 0 0 1 0.660 0.358 0.981





A−1

r1+1019365r3, r2+1019673r3

===============

r3÷(1.019)

25

(48)

选主元消去法的应用:求逆矩阵

11 −3 −2 1 0 0

−23 11 1 0 1 0 1 −2 2 0 0 1





====r1↔r2

−23 11 1 0 1 0 11 −3 −2 1 0 0 1 −2 2 0 0 1





1 −0.478 −0.044 0 −0.044 0 0 2.261 −1.522 1 0.478 0 0 −1.522 2.044 0 0.044 1





r2+1123r1, r3+231r1

=============

r1÷(−23)

1 0 −0.365 0.211 0.057 0 0 1 −0.673 0.442 0.211 0 0 0 1.019 0.673 0.365 1





r1+2261478r2, r3+15222261r2

===============

r2÷(2.261)

1 0 0 0.452 0.188 0.358 0 1 0 0.886 0.452 0.660 0 0 1 0.660 0.358 0.981





A−1

r1+1019365r3, r2+1019673r3

===============

r3÷(1.019)

25

(49)

选主元消去法的应用:求逆矩阵

11 −3 −2 1 0 0

−23 11 1 0 1 0 1 −2 2 0 0 1





====r1↔r2

−23 11 1 0 1 0 11 −3 −2 1 0 0 1 −2 2 0 0 1





1 −0.478 −0.044 0 −0.044 0 0 2.261 −1.522 1 0.478 0 0 −1.522 2.044 0 0.044 1





r2+1123r1, r3+231r1

=============

r1÷(−23)

1 0 −0.365 0.211 0.057 0 0 1 −0.673 0.442 0.211 0 0 0 1.019 0.673 0.365 1





r1+2261478r2, r3+15222261r2

===============

r2÷(2.261)

1 0 0 0.452 0.188 0.358 0 1 0 0.886 0.452 0.660 0 0 1 0.660 0.358 0.981





A−1

r1+1019365r3, r2+1019673r3

===============

r3÷(1.019)

25

(50)

选主元消去法的应用:求行列式

应用二: 求行列式 设有矩阵

A =









a11 a12 · · · a1n

a21 a22 · · · a2n

... ... ... an1 an2 · · · ann









用主元消去法将其化为上三角矩阵,并设对角元素为 b11, b22, · · · , bnn故 A 的行列式为

det(A) = (−1)mb11b22· · · bnn, 其中 m 为所做行、列交换的次数。

26

(51)

三角形方程组和三角分解

(52)

三角形方程组和三角分解

三角方程组的解法

(53)

三角方程组的解法

定义 : 下三角形方程组 考察

Ly = b (1)

其中 b = (b1,· · · , bn)T∈ Rn已知,y = (y1,· · · , yn)T∈ Rn 未知,

L =







l11

l21 l22

l31 l32 l33

... ... ... . ..

ln1 ln2 ln3 · · · lnn







 ,

且 lii̸= 0, i = 1, 2, · · · , n.

27

(54)

三角方程组的解法

1 由方程组 (1) 的第一个方程

l11y1= b1

可得

y1= b1

l11

. 2 由方程组 (1) 的第二个方程

l21y1+ l22y2= b2

可得

y2= b2− l21y1

l22

.

28

(55)

三角方程组的解法

3 一般地,若已求得 y1,· · · , yi−1,则由方程组 (1) 的第 i 个方程 li1y1+ li2y2+· · · + li,i−1yi−1+ liiyi= bi

可得

yi= bi−∑i−1

j=1lijyj

lii

.

29

(56)

三角方程组的解法

前代法

function b = fs(L, b, n) for j = 1:n -1

b(j) = b(j) / L(j,j);

b(j+1:n) = b(j+1:n) - b(j) * L(j+1:n, j);

end

b(n) = b(n) / L(n,n);

end

算法复杂度

所需加、减、乘、除的次数为

n i=1

(2i − 1) = n2, 即该算法的运算 量为 n2.

30

(57)

三角方程组的解法

前代法

function b = fs(L, b, n) for j = 1:n -1

b(j) = b(j) / L(j,j);

b(j+1:n) = b(j+1:n) - b(j) * L(j+1:n, j);

end

b(n) = b(n) / L(n,n);

end

算法复杂度

所需加、减、乘、除的次数为

n i=1

(2i − 1) = n2, 即该算法的运算 量为 n2.

30

(58)

三角方程组的解法

定义 : 上三角方程组 考察

Ux = y (2)

其中 y = (y1,· · · , yn)T∈ Rn 已知,x = (x1,· · · , xn)T∈ Rn 未知,

U =







u11 u12 u13 · · · u1n

u22 u23 · · · u1n

u33 · · · u3n

. .. ... unn







 ,

且 uii̸= 0, i = 1, 2, · · · , n.

31

(59)

三角方程组的解法

1 由方程组 (2) 的第 n 个方程

unnxn= yn

xn= yn

unn

. 2 由方程组 (2) 的第 n − 1 个方程

un−1,n−1xn−1+ un−1,nxn= yn

xn−1= yn− un−1,nxn

unn

.

32

(60)

三角方程组的解法

3 一般地,若已求得 xn,· · · , xi+1,则由方程组 (2) 的第 i 个方程 uiixi+ ui,i+1xi+1+· · · + ui,nxn= yi

xi= yi−∑n

j=i+1uijxj

uii

.

33

(61)

三角方程组的解法

回代法

function y = bs(U, y, n) for j = n: -1:2

y(j) = y(j) / U(j,j);

y(1:j -1) = y(1:j -1) - y(j) * U(1:j-1, j);

end

y(1) = y(1) / U(1 ,1);

end

算法复杂度

同前代法一样,回代法的运算量也为 O(n2).

34

(62)

三角方程组的解法

回代法

function y = bs(U, y, n) for j = n: -1:2

y(j) = y(j) / U(j,j);

y(1:j -1) = y(1:j -1) - y(j) * U(1:j-1, j);

end

y(1) = y(1) / U(1 ,1);

end

算法复杂度

同前代法一样,回代法的运算量也为 O(n2).

34

(63)

三角方程组的解法

定义 : 一般线性方程组

Ax = b (3)

其中 A∈ Rn×n 和 x, b∈ Rn

若 A 能分解成一个下三角阵 L 和一个上三角阵 U 的乘积,即 A = LU,

则 (3) 的解 x 可通过以下两步算得: 1 利用前代法求解 Ly = b,得 y; 2 利用回代法求解 Ux = y,得 x。

35

(64)

三角方程组的解法

定义 : 一般线性方程组

Ax = b (3)

其中 A∈ Rn×n 和 x, b∈ Rn

若 A 能分解成一个下三角阵 L 和一个上三角阵 U 的乘积,即 A = LU,

则 (3) 的解 x 可通过以下两步算得:

1 利用前代法求解 Ly = b,得 y;

2 利用回代法求解 Ux = y,得 x。

35

(65)

三角形方程组和三角分解

Gauss 变换

(66)

Gauss 变换

定义 : 矩阵三角分解

将矩阵 A 分解为一个下三角阵 L 和一个上三角阵 U 的乘积,最 自然的做法是通过一系列初等变换,逐步将 A 约化为上三角阵,

并且保证这些初等变换的乘积是一个下三角阵。

36

(67)

Gauss 变换

定义 : Gauss 变换 (矩阵)

Lk=









 1

. ..

1

−lk+1,k 1 ... . ..

−ln,k 1











I − lkeTk

lk= (0, · · · , 0, lk+1,k, · · · , lnk)T

Gauss 向量

37

(68)

Gauss 变换

定义 : Gauss 变换 (矩阵)

Lk=









 1

. ..

1

−lk+1,k 1 ... . ..

−ln,k 1











I − lkeTk

lk= (0, · · · , 0, lk+1,k, · · · , lnk)T Gauss 向量

37

(69)

Gauss 变换

对于 x = (x1, · · · , xn)T∈ Rn

Lkx = (x1, · · · , xk, xk+1− lk+1,kxk, · · · , xn− lnkxk)T. 取

lik= xi

xk

, i = k + 1, · · · , n, xk̸= 0 便有

Lkx = (x1, · · · , xk, 0, · · · , 0)T.

38

(70)

Gauss 变换

性质 : Lk 的逆

L−1k = I + lkeTk

证明

∵ eTklk= 0,

∴ (I + lkeTk)(I − lkeTk) = I − lk eTklk eTk = I.

39

參考文獻

相關文件

线性表 1)线性表的定义及其基本操作 2)线性表的顺序存储结构 3)线性表的链式存储结构 4)线性表的应用 3.栈和队列

消元

本章主要考察 Python 的序列 (Sequence) 类,即内置的列表 (list),元 组 (tuple) 和字符串 (str)

1990 年 2 月 25 日,海湾战争期间,在沙特阿拉伯宰赫兰的爱国 者导弹防御系统因浮点数舍入错误而失效,该系统的计算机精度 仅有 24 位,存在

其使用比较灵活,当增加插值节点时,只要在原来的基础上增加部分

为提高数值积分的精度,将 [a, b] 等分为 n 个子区间,在每个区

从结果不难看出,该方程是一个欠定方程组,其秩=3<未知

[r]