高斯消去法

Download Report

Transcript 高斯消去法

上节课的主要内容
1、误差的种类:模型误差,观测误差,
截断误差,舍入误差
2、绝对误差和相对误差
e( x* )  x  x* 绝对误差限
绝对误差
e ( x * )  x  x*  
e( x* )
x  x*
e( x * )


er ( x ) 
x
x
x*
相对误差
相对误差限
*
*
er ( x )   r
3、有效数字
4、误差在算术运算中的传播,算法的稳定性
第二章
§1
§2
§3
§4
§5
解线性方程组的直接方法
高斯消去法
主元素法
直接三角分解法
平方根法与改进的平方根法
误差分析
§2.1
高斯消去法
中国东汉初年诞生的《九章算术》,记载了
求解线性代数组的消去法,比国外早1 500年
消去法的基本思想是,通过将一个方程乘或除以
某个常数,以及将两个方程相加减这两种手续,
逐步减少方程中的变元的数目,最终使每个方程
仅含一个变元,从而得出所求的解。
高斯消去法
思 首先将A化为上三角阵 ,再回代求解
路
=
消元
记 A  A  (a )
( 1)
( 1)
ij
nn
 (1)
, b
 b1( 1 ) 

 
.
 b   .. 
 (1) 
 bn 
(1)
(1)
(1)
Step 1:设 a11  0,计算因子 li1  ai1 / a11 (i  2, ..., n)
将增广矩阵第 i 行  mi1  第1行,得到
其中
(1)
(1)
(1)
(1)
(2)
(1)
a11
a12
... a1 n
( 2)
A
b1
 (2)
b
 aij  aij  li1a1(1)j
 (2)
(1)
(1)
b

b

l
b
i
i1 1
 i
(i, j  2, ..., n)
(k )
(k )
(k )
l

a
/
a
a

0
Step k:设 kk
,计算因子 ik ik kk (i  k  1, ..., n)
 aij( k 1)  aij( k )  lik akj( k )
且计算  ( k 1)
(k )
(k )
b

b

l
b
i
ik k
 i
(i, j  k  1, ..., n)
 1步
共进行 n ?
a11(1) a12(1) ... a1(1n)   x1   b1(1) 

 ( 2) 

( 2)
( 2)  
a22 ... a2 n   x 2   b2 

 .
.
.


... ..  ..   .. 


  (n) 
(n) 
ann   x n  bn 

回代
(n)
xn  bn( n ) / ann
bi( i ) 
xi 
n
(i )
a
 ij x j
j  i 1
(i )
ii
a
( i  n  1, ..., 1)
算法(高斯消去法)
1.输入A  (aij ), b  (b1 , b2 ...bn ) , 置k  1
T
2.若akk  0, 转3;否则输出失败信息,停.
aik
3.对i  k  1,...n, 置
 aik , bi  aik bk  bi
akk
对i  k  1,...n, 置aij  aik akj  aij
4.若k  n 1, 转5;否则k  1  k , 转2
bn
5.若ann  0, 输出失败信息,停机;否则,置
 bn
ann
6.对k  n  1,...1, 置(bk 
7.输出x  b.
n
a
l  k 1
b ) / akk  bk
kl l
例1:求过3点(1,1)(2,-1)(3,1)的抛物线。
(用高斯消去法求解)
y  2 x  8x  7
2
高斯消去法的乘除计算量
消元过程
n 1
n 1
k 1
k 1
 (n  k )(n  k  1)   (n  k ) 
n 2
n
(n  1)  (n  1)
3
2
n
回代过程
总运算量
n
(n  k  1)  (n  1)

2
k 1
n3 2 n
n3
N   n   O( )
3
3
3
注:Gauss消去法的计算量较克拉姆法则的计算量
少得多,但数值稳定性差.
(k )
当akk
很小时,会导致错误的结果.
§2.2 主元素法


列主元素法
全主元素法
例 求解方程组(保留四位小数)
0.0003x1  3.0000 x2  2.0001

1.0000 x1  1.0000 x2  1.0000
解:高斯消去法得
0.0003x1  3.0000 x2  2.0001

 9999.0000 x2  6666.0000

回代得
x2  0.6667, x1  0.0000
方法二:
若先将方程组变形为
1.0000 x1  1.0000 x2  1.0000

0.0003x1  3.0000 x2  2.0001
消元得
1.0000 x1  1.0000 x2  1.0000

2.9997 x2  1.9998

回代得
x2  0.6667, x1  0.3333
准确解为
1
2
x1  , x2 
3
3
启示:可以通过交换方程的次序使对角元
素尽可能大,从而避免“小”数分
母
提高计算精度。===〉主元素法
全主元素消去法
基本思想:第k次消元前,在系数aij( k ) (i, j  k ,...n)
中选最大元素,通过换行和换列将最大元素换到
主元位置akk , 然后消元。
(实质:每次消元之前交换方程的位置及变量
的次序, 使对角线上的元素尽可能的大)。
每一步选绝对值最大的元素为主元素,保证 | mik |  1。
Step k: ① 选取 | ai
k jk
|  max | aij |  0 ;
k i , jn
② If ik  k then 交换第 k 行与第 ik 行;
If jk  k then 交换第 k 列与第 jk 列;
③ 消去
如用全主元素法解例,应先将方程组化成:
3.0000 x2  0.0003x1  2.0001

1.0000 x2  1.0000 x1  1.0000
消去得
3.0000 x2  0.0003x1  2.0001

0.9999 x1  0.3333

 x1  0.3333

 x2  0.6667
列主元素消去法
基本思想:在每次消元前,在要消去未知数的
系数中找到绝对值最大的系数作为主元,通过
对换行将其换到对角线上,然后进行消元.
省去换列的步骤,每次仅选一列中最大的元.
| a ik , k |  max | a ik |  0
k in
例2:用列主元消去法求解方程组
x1  x2  x3  6


 12 x1  3x2  3x3  15
18 x  3x  x  15
1
2
3

x1  1.000,
x2  2.000,
x3  3.001
实际应用中直接调用Gauss
Elimination 解3阶线性方程
组的结果:
结合全主元消去后的
结果:
比较:直接Gauss消去,列主元素法,
全主元素法
计算时间最短,精度最差:直接Gauss消去
计算时间最长,精度最高:完全主元素法
实践表明:列主元素法具有良好的数值稳定,
且计算量与远低于完全主元素法,所以列主元
素法是求解小型稠密方程组的最好办法之一
§2.3 直接三角分解法
高斯消去法的矩阵形式
 矩阵的三角分解
 直接三角分解法


 2 x1  2 x2  2 x3  1

1

3 x1  2 x2  4 x3 
2

5

x1  3 x2  9 x3 


2


2 2 2 1 

2
2
2
1

3 2

2
2
1
r2  r1 (  )
r3  r2  2


2
1

   0 1 1 1
3 2 4   1 0  1 1  1


1 3 9 2  r3  r1(  2 ) 0 2 8 2 


0
0
10
0


5




2 
A
B
U
高斯消去法的矩阵形式
Step 1:
li1  ai1 / a11 (a11  0)
1
l21 1
.
记 L1 =
(1)
,则 L1[ A
.
 (1)
b ]
(1)
a11
... a1(1n) b1(1)
 (2)
A b
( 2)
.
ln1
1
1
a11(1) a12(1) ... a1(1n)
Step n  1:
 
a22( 2 ) ... a2( 2n)
Ln1 Ln 2 ... L1 A b 

... ...

ann( n )



b1(1) 

b2( 2 ) 
.. 
. 
bn( n ) 
1
其中
Lk =
lk 1,k
.
.
.
ln ,k
1
1
1
lk 1,k
L1
k 
L  L11 L21
.
.
.
ln , k
1
a11(1) a12(1) ... a1(1n)
记U=
(2)
a 22
... a 2( 2n)
... ...
(n)
a nn
1
l
 21 1
Ln11  l31 l32 1


ln1 ln 2 ln 3
1
lnn 1
 A  LU
其中L为单位下三角阵,
U为上三角矩阵.
消元过程  A  LU
Ax  b  LUx  b  Ly  b,Ux  y






1
矩阵的三角分解
定理:设A为n阶方阵,若A的顺序主子式Ai (i  1...n)
均不为零,则矩阵A存在唯一的Dolittle分解,
即:A  LU ( L为单位下三角阵,U 为上三角阵)
直接计算 A 的 LU 分解(例)
u11
u12
u13
u14
l 21 u11 l 21 u12 + u 22
l 21 u13 + u 23
l 21 u14 + u 24
l 31 u11 l 31 u12 + l 32 u 22 l 31 u13 + l 32 u 23 + u33
l 31 u14 + l 32 u 24 + u34
l 41 u11 l 41 u12 + l 42 u 22 l 41 u13 + l 42 u 23 + l 43 u33 l 41 u14 + l 42 u 24 + l 43 u34 + u 44
u11
u12
u13
u14
l 21 u11 l 21 u12 + u22
l 21 u13 + u23
l 21 u14 + u24
l 31 u11 l 31 u12 + l 32 u22 l 31 u13 + l 32 u23 + u33
l 31 u14 + l 32 u24 + u34
l 41 u11 l 41 u12 + l 42 u22 l 41 u13 + l 42 u23 + l 43 u33 l 41 u14 + l 42 u24 + l 43 u34 + u44
u1 行 u11  a11 , u12  a12 , u13  a13 , u14  a14 ; u1j  a1 j , j  1, , n
l 1 列 l 21  a 21 u11 , l 31  a31 u11 , l 41  a 41 u11 ; l i1  ai1 u11 , i  2,, n
u2 行 u 22  a 22 - l 21u12 , u 23  a 23 - l 21 u13 , u 24  a 24 - l 21u14 ;
j  2,  , n
u 2j  a2 j - l 21u1 j ,
l 2 列 l 32  ( a32 - l 31 u12 ) u 22 , l 42  ( a 42 - l 41 u12 ) u 22 ;
i  3, , n.
l i2  ( ai 2 - l i2 u12 ) u 22
LU分解的计算公式

u  a
( j  1,2,, n)
1j
1j

i 1

u ij  aij   lik u kj (i  2,, n, j  i,, n)
k 1

j 1

lij  (aij   lik u kj ) / u jj ( j  1,, n  1, i  j  1, n)
k 1

计算顺序
u1 j  l i1  u 2 j  l i 2  
 2

例 求矩阵A的三角分解 A   4
 2
解:
1

L2 1 


  1 2 1
2 2 3
U 
3 1


6

A  LU
2
7
4
3

7

5
上节课主要内容
1、Gauss消去法——消元过程和回代过程
(k )
(k )
(k )
k步消元设 akk  0,计算因子 lik  aik / akk (i  k  1, ..., n)
 aij( k 1)  aij( k )  lik akj( k )
且计算  ( k 1)
(k )
(k )
b

b

l
b
i
ik k
 i
(i, j  k  1, ..., n)
a11(1) a12(1) ... a1(1n)   x1   b1(1) 

  ( 2) 
( 2)
( 2)  
x
a
...
a
b2 
22
2n   2 


 .
.
.


 .. 


..
... ..


  (n) 
(n) 
ann   x n  bn 

(n)
xn  bn( n ) / ann
回代
2、全主元素Gauss消去法
3、列主元素Gauss消去法
b 
(i )
i
xi 
n

j i 1
aij(i ) x j
aii(i )
(i  n  1, ..., 1)
4.矩阵的LU分解
Ax  b
1) A  LU
2) Ly  b
3) Ux  y

u  a
( j  1,2,, n)
1j
1j

i 1

u ij  aij   lik u kj (i  2, , n, j  i, , n)
k 1

j 1

lij  (aij   lik u kj ) / u jj ( j  1, , n  1, i  j  1,  n)
k 1

计算顺序
u1 j  l i1  u 2 j  l i 2  
紧凑格式
(a11 )u11
(a12 )u12
(a13 )u13

(a1n )u1n
(a21 )l21
(a22 )u22
(a23 )u23

(a2 n )u2 n


(an1 )ln1
(an 2 )ln 2

(ann )unn
(1.)计算顺序:按框从外到内,先算行(左  右)
后算列(上  下)
(2.)计算方法:
按行计算uij时,应将对应的元aij
逐项 减去uij所在行左面各框的元lil 乘以uij
所在列上面各框相应的元uij , 按列计算lik时,
按上述运算后再除以lil 所在框的对角元.
例:上述矩阵按紧凑格式
( 2)2
( 4)
( 2)2
4
2
2
( 2 )
2
 1
2
(3)3
( 7 )7  4  3
( 4)
1

L2 1 


  1 2 1
42
2
3
( 7 )7  6  1
(5)5  3  2  6
2 2 3
U 
3 1


6

A  LU
直接三角分解法
A  LU
Ax  b  Ly  b
 y1  b1

k 1

y

b

l
y

k
k
kj
j

j 1

 x n  y n u nn

n

 x k  ( y k   u kj x j ) u kk
j  k 1

Ux  y
k  2,3,, n
k  n  1, n  2,,1
例 求解方程组
2 x1  2 x 2  3 x3  3

4 x1  7 x 2  7 x3  1
  2 x  4 x  5 x  7
1
2
3

解:按表计算得
( 2) 2
( 2)2
(3)3
(3)3
4
( 4)  2
2
( 7 )7  4  3
( 7 )7  6  1
(1) - 5
2
(  2 )  1
2
42
( 4)
2
3
(5)5  3  2  6 (-7)6
1

L2 1 


  1 2 1
2 2 3
U 
3 1


6

A  LU
y1  3,
y 2  5,
y3  6
2 2 3  x1   3 


Ux 
3 1  x 2     5

    
6  x   6 

 3  
2


 x  2
 
 1 
例3:用LU分解法求AX=b
18
9  27
 9
1
 18

2
45
0

45
, b   
A
 9
16
0 126
9 


 
 27  45 9 135 
8
直接三角分解法的评价


和Gauss 消去法具有相同的计算量
适用于求解多个相同系数矩阵而
不同右端项的线性方程组的解
解三对角方程组的追赶法
Ax  d ,
 b1
a
 2
0
A




其中
c1
0
b2
c2
0
a3 b3
c3
0
d  ( d 1 , d 2 ,, d n ) T
0
an 1 bn 1
0
an






cn 1 

bn 
A 为三对角阵. 称为三对角方程组
定理2.2 设三对角矩阵A满足
 b1  c1  0

a
c

0
(
i

2
,
3
,

,
n

1
)
i
i
 bi  ai  ci  0

 bn  a n  0
则
1
l
2
A  LU  



 u1 c1



1
u 2 c2


l3 1
u 3 c3




  
  cn 1 
ln 1 
un 
且分解是唯一的.
 u1
l u
2 1
 0
A  LU  




c1
0
l 2 c1  u2
c2
l 3u 2
l 3 c2  u3


c3


l n un 1






cn 1 

l n cn 1  un 
由此得计算公式
u1  b1

l i  ai u i 1
u  b  l c
i
i i 1
 i
i  2,3,, n
追赶法--三对角方程组Ax=d的求解公式
u1  b1

li  ai ui 1
u  b  c l
i
i 1 i
 i
i  2,3,, n
u1  l1  u2  l2 
 y1  d1
追 : Ly  d  
 yk  d k  lk yk 1
k  2,3,, n
 xn  yn / un
赶 : Ux  y  
k  n  1, n  2,1
 xk  ( yk  ck xk 1 ) / uk
追赶法的运算量为5n  4.
2 x1  x2

x  2x
2
例:用追赶法求解  1
 x2  2 x3  x4

 x3  2 x4
1
1
x4 
x3  
3
3
x2  1 x1  1
 1
 1
 0
 1
§2.4 平方根法与改进的平方根法



对称正定矩阵
平方根法
改进的平方根法
对称正定阵
定义 一个矩阵 A = ( aij )nn 称为对称阵,如果 aij = aji 。
T 
x
定义 一个矩阵 A 称为正定阵,如果 Ax  0 对任意非
零向量 x 都成立。
回顾:对称正定阵的几个重要性质
 A1 亦对称正定,且 aii > 0
 A 的顺序主子阵 Ak 亦对称正定
 A 的特征值 i > 0
 A 的全部顺序主子式 det ( Ak ) > 0
将对称 正定阵 A 做 LU 分解
uij
U=
1
u11
u22
=
unn
~T
LU
A 对称
u11
记
D1/2
=
u22
1 u /u
ij
ii
记为
~
DU
1
即 A  LDLT
~
L
则  LD1 / 2 仍是下三角阵
unn
~ ~T
A  LL
定理 设矩阵A对称正定,则存在非奇异下三角阵 L  Rnn
T
使得 A  L L 。若限定 L 对角元为正,则分解唯一。
2
注: 对于对称正定阵 A ,从 aii   k 1 l ik 可知对任意k  i
有 | l ik |  aii。即 L 的元素不会增大,误差可控,不
i
需选主元。
Cholesky分解法
设
 l11
l
L   21


 l n1
0
l 22

ln2






 l nn 
1

2
2
l

(
a

l
)

kk
kj
 kk
j 1


k 1
l  (a  l l ) l

ik
ik
ij kj
kk

j 1
k 1
由比较法得计算公式
k  1,2, , n
i  k  1, , n
计算顺序:li1  li 2  li 3   按列自上而下计算
平方根法
Ax  b 
Ly  b,
 y1  b1 / l11

k 1

y

(
b

l
y
)
l

k
k
kj
j
kk

j 1

 xn  yn / lnn

n

x

(
y

l
x
)
l

k
k
jk
j
kk

j k 1

L xy
T
k  2,3,, n
k  n  1, n  2,,1
改进的平方根法
A  LDL ,
Ax  b  Ly  b,
设
1

l

1
 21

L  l 31 l 32 1









l n1 l n 2 l n 3  1
T
1
L xD y
T
D  diag (d1 ,, d n )
di  0
计算公式 
k 1
2
d

a

l

kk
kj d j
 k
j 1


k 1
l  (a  l d l ) d

ik
ij j kj
k
 ik
j 1
记 uik  l ik d k
k  1,2,, n,
k 1

d k  a kk   u kj l kl
j 1

k 1


u ik  a ik   u ij l kj
j 1

l  u d
ik
k
 ik


k  1,2,  , n
i  k  1,  , n
i  k  1,, n
k  1,2,  , n
i  k  1,  , n
方程组求解公式
k 1

 y k  bk   lkj y j
j 1


n
 x  yk 
l jk x j

k

d k j k 1

注意:
0

j 1
0 ,
n

k  1,2,  , n
k  n, n  1,  ,1
0
j n 1
思考:1.为什么引入平方根法与改进的平方根法?
2.能否用紧凑格式将对称正定矩阵进行
Cholesky分解和 LDLT分解?怎样分解?
例 设有方程组
2 1 0   x 1 
1 2 a   x 

  2
0 a 2  x 3 
=
 3
4
 
 3
(1)求出系数矩阵A能进行Cholesky分解的a的
取值范围;
(2)取a  1 , 用平方根法求解上述方程组,计算
过程保留2位小数。
解:
A  LL  A为对称正定,即
T
2 1
D1  2  0, D 2  
30

1 2
2 1 a 
D3  1 2 a   8  2a 2  2  6  2a 2  0
0 a 2
当a  3,即 a  3时
2
A能进行Cholesky分解
( 2) 2
(1) 1
(1) 1
( 2) 3
( 0) 0
2
(1) 2
( 0) 0
2
3
(1) 1
( 2) 4
3
0
0
 1
~ 
L  0.50
1
0


0.67 1
 0
~
L  LD
1
2
0 
1.41 0
D   0 1.22 0 


0 1.15
 0
1
2
0
1.41
 0.71 1.22

0.82
 0
0 
0 

1.15
1.41 y1  3


0
.
71
y

1
.
22
y

4

1
2
0.82 y  1.15 y  3
2
3

1.41x1  0.71x 2  2.13

1.22 x 2  0.82 x3  2.04 
1.15 x  1.15
3

 y1  2.13

 y 2  2.04
 y  1.15
 3
 x1  1.01

 x 2  1.00
 x  1.00
 3
§2.5 误差分析




向量范数
矩阵范数
方程组的状态与条件数
误差分析
向量范数
定义2.1 : 设对任意x  R n,按一定规则有
一实数与之对应,记作 x , 若 x 满足:
1、x  0且 x  0  x  0
(正定性)
2、对任意a  R有 ax  a x (齐次性)
3、对任意x, y  R , 都有 x  y  x  y
n
(三角不等式)
则称 x 为向量x的范数
x  ( x1 , x 2 ,, x n ) T
常用向量范数
1-范数
x
2-范数
x
  范数
x
2

1
n
x
i 1


i
x12  x x2    x n2
 max xi
1i  n
定义 若范数 || · ||A 比|| · ||B 强,同时|| · ||B 也比|| · ||A 强,即



存在常数 C1、C2 > 0 使得
C1 || x || B  || x || A  C2 || x || B
|| · ||A 和|| · ||B 等价。
定理
Rn 上一切范数都等价。
,则称
矩阵范数
定义 Rmn空间的矩阵范数 || · || 对任意 A, B  R mn 满足:
(1) || A ||  0 ; || A ||  0  A  0 (正定性)
( 2) ||  A ||  |  |  || A || 对任意   C (齐次性)
( 3) || A  B ||  || A ||  || B || (三角不等式)
(4)* || AB ||  || A || · || B || (相容,当 m = n 时)
常用矩阵范数
Frobenius 范数
对方阵 A  R
nn
|| A || F 
n
n
2
|
a
|
 ij — 向量|| · ||2的直接推广
i 1 j  1



n
以及 x  R 有 || Ax ||2  || A ||F  || x ||2
常用矩阵范数
算子范数
由向量范数 || · ||p 导出关于矩阵 A  Rnn 的 p 范数:

|| Ax || p

|| A || p  max
 max
|| Ax || p


 
x0
| |x | |p 1
|| x || p
则 || AB || p  || A || p || B || p ,
|| Ax || p  || A || p || x || p
n
特别有
|| A ||  max  | aij | (∞-范数)
1 i  n
j 1
n
|| A ||1  max  | a ij | (1-范数)
1 j  n
i 1
|| A ||2  max ( A A) (2-范数)
T
方程组的状态与条件数
例
 x1  2
 x1  x2  2
 

 x2  0
 x1  1.00001x2  2
 x1  x2  2

 x1  1.00001x2  2.00001

 x1  1

 x2  1
当方程组的系数矩阵或右端项出现微小
变化(扰动),而引起解的巨大变化时
称方程组是病态的


 
求解 A x  b 时,A 和 b 的误差对解 x 有何影响?




 设 A 精确,b 有误差  b ,得到的解为 x   x ,即




A( x   x )  b   b


1
  xA b
绝对误差放大因子


1
 ||  x ||  || A ||  ||  b ||



||
b
||

||
A
x
||

||
A
||

||
x
||
又
相对误差放大因子

1
|| A ||



|| x || || b ||


||  x ||
||  b ||
1
 || A ||  || A ||  

|| x ||
|| b ||



1
||
A
||

||
A
||
b
是关键
 设 精确,A有误差  A ,得到的解为
x   x ,即
的误差放大因子,称为

 (A) ,
A的条件数,记为cond
( A  A)( x  x )  b
越大 则 A 越病态,


 


 难得准确解。

( A  A) x  ( A  A)x  b
A( x  x )  A( x  x )  b





 ( A  A)x  Ax
 x   A1A( x  x )


1

 A( I  A A)x  Ax
|| x ||
1
    || A ||  || A ||


|| x  x ||
 x  ( I  A1A)1 A1Ax
|| A ||
1
 || A ||  || A || 
(只要 A充分小,使得
|| A ||
|| A1A ||  || A1 ||  || A ||  1 )
|| A ||
1
||
A
||

||
A
||


|| x ||
|| A1 ||  || A ||
|| A ||
  

|| x || 1 || A1 ||  || A || 1 || A ||  || A1 ||  || A ||
|| A ||
注:
 cond (A) 的具体大小与 || · || 的取法有关,但相
对大小一致。
 cond (A) 取决于A,与解题方法无关。



 || A || || b || 
|| x ||
cond ( A)

  
 
|| x ||
1  cond ( A) || A || || A ||  || A ||
|| b || 
常用条件数有:
cond (A)1
cond (A)
cond (A)2
特别地,若 A 对称,则 cond ( A)2 
 max ( AT A) / min ( AT A)
max |  |
min |  |
条件数的性质
 A可逆,则 cond (A)p  1;
 A可逆,  R 则 cond ( A) = cond (A) ;
 A正交,则 cond (A)2=1;
例
1 
1
A
5 
1 1  10 
5

1

10
A 1  
5

10

cond ( A)   A  A
 10 5 
5 
10 
1

5
 (2  10 )(1  2 10 )  4 10
5
1
cond ( A) 2  A 2 A
 4 10
5
2
5
1
1
例:Hilbert 阵 H n   2

1
n
cond (H2) = 27
cond (H6) =
1
2
1
3




1 
2 n 1 
1
n
1
n 1
cond (H3)  748
2.9  106
cond (Hn)  as n  
注:一般判断矩阵是否病态,并不计算A1,而由经验
得出。
 行列式很大或很小(如某些行、列近似相关);
 元素间相差大数量级,且无规则;
 主元消去过程中出现小主元;
 特征值相差大数量级。
误差分析
设x 是方程组Ax  b的近似解,
*
称r  b  Ax 为残量。
*
通常用残量的大小来衡量近似解x 的准确程度
*
定理2.5:设x和x 分别是方程组Ax  b的
*
准确解和近似解,r为其残量,则:
xx
x
*
 cond ( A)
r
b
结论:当A非病态时,残量的大小可刻划近
似解的准确程度。
当A病态严重时则不然。
1
证明:由r  b  Ax ,得x  x  A r
*
则:x  x  A
*
x-x
x
*
1
*
 A
1
A
r ,又 x 
r
b
b
A
 cond ( A)
r
b
§2.6
超定线性方程组的最小二乘解
a11 x1  a12 x 2   a1n x n  b1
a x  a x   a x  b
 21 1
22 2
2n n
2




a m1 x1  a m 2 x 2   a mn x n  bm
Ax  b
mn
A  (aij )mn , x  R , b  R
称为超定方程组.
n
m
n
问题:求x使得每个方程的偏差bi   aij x j
j 1
的平方和最小,即求解问题:
m
n
min F ( x)   (bi   aij x j )  b  Ax
2
i 1
j 1
2
2
此问题称为线性最小二乘问题,其解称为
超定线性方程组Ax  b的最小二乘解。
由多元函数求极值的必要条件知,
最小二乘解应满足:
 n T
T
a
a
x

a
1 b
 1 j j
 j 1
 n T
T
a
a
x

a
 2 j j
2b
 j 1



 n T
T
a
a
x

a
nb
 n j j
 j 1
k  1,, n
A Ax  A b称为超定方程组的正则方程组
T
T
结论:若rank ( A A)  n, 则A Ax  A b
T
T
T
有唯一解,其解即为超定方程组Ax  b
的最小二乘解。
求最小二乘解的计算步骤(正规化方
法):
.
1、计算:A A  M , A b  f
T
T
2、用平方根法或LDL 法求解方程组Mx  f
T
例 求方程组
 x1  x 2  5

 x1  2 x 2  4
2 x  3x  10
2
 1
的最小二乘解.
解
 1 - 1
 1 1 2  
 6  9
T

A A 
-1 2  




 1 2  3  2 - 3  9 14 


5
 1  1 2     29 
T
A b

4






 1 2  3  10   43
 
 6  9  x1   29 
 
正则方程组 



 9 14   x 2   43
所以方程组的最小二乘解为

19
x1 
3
x2  1
19
T
x  ( , 1)
3
本章小结
1、Gauss消去法
2、直接三角分解法
3、三对角方程的追赶法
4、对称正定方程的平方根法与改进的平方根法
5、误差分析
作业
P46 1题,2题,
3题,6题,8题1), 12题,