第三节 求矩阵全部特征值的 qr 方法 一、求矩阵全部特征值的 qr 方法
DESCRIPTION
第三节 求矩阵全部特征值的 QR 方法 一、求矩阵全部特征值的 QR 方法. 60 年代出现的 QR 算法是目前计算中小型矩阵的全部特征值与特征向量的最有效方法。 理论依据: 任一非奇异实矩阵都可分解成一个正交矩阵 Q 和一个上三角矩阵 R 的乘积,而且当 R 的对角元符号取定时,分解是唯一的。. 可证,在一定条件下,基本 QR 方法产生的矩阵序列{ A k } “基本”收敛于一个上三角阵(或分块上三角阵)。即主对角线(或主对角线子块)及其以下元素均收敛,主对角线(或主对角线子块)以上元素可以不收敛。特别的,如果 A 是实对称阵,则{ A k } “基本”收敛于对角矩阵。. - PowerPoint PPT PresentationTRANSCRIPT
数值分析
数值分析
第三节 求矩阵全部特征值的 QR方法一、求矩阵全部特征值的 QR方法 60 年代出现的 QR算法是目前计算中小型矩阵的全部特征值与特征向量的最有效方法。 理论依据:任一非奇异实矩阵都可分解成一个正交矩阵 Q和一个上三角矩阵 R的乘积,而且当 R的对角元符号取定时,分解是唯一的。
1
1
QR QR
( 1, 2, ).
k k k
k k k
A Q Rk
A R Q
A A
A
方法的基本思想是利用矩阵的 分解通过迭代格式
将 化成相似的上三角阵(或分块上三角阵),从而求出矩阵 的全部特征值与特征向量。
数值分析
数值分析
11 1 1 1 1
12 1 1 1 2
,
,
( 2
, 3,
)
k
A A Q R Q A R
A R Q Q AQ A A
A A k
由 即 。
于是 即 与 相似。同理可得, 。
故它们有相同的特征值。
可证,在一定条件下,基本 QR 方法产生的矩阵序列{ Ak } “基本”收敛于一个上三角阵(或分块上三角阵)。即主对角线(或主对角线子块)及其以下元素均收敛,主对角线(或主对角线子块)以上元素可以不收敛。特别的,如果 A是实对称阵,则{ Ak } “基本”收敛于对角矩阵。
数值分析
数值分析
QR 方法的实际计算步骤
HouseholderA Hessenberg B 用 阵作正交相似变换
上第
阵一步
... ... ... ...
* :
:
:
:
*
1
k k k
Givenk k k
B Q RB
B R Q
用 变换产生迭代序列
第二步1
2
* *
*
n
数值分析
数值分析
HouseholderA B
用 阵作正交相似变换
(对称阵) 三对角阵
*
*
*
数值分析
数值分析
二、化一般矩阵为上 Hessenberg阵
11 12 1 1 1
21 22 2 1 2
32 33 3
1
1
( 2, 3, , ) ,
Househ
old
e
r
n n
n n
n
nn nn
ii
h h h h
h h h h
h h hH
h h
h i n
A
称形如
的矩阵为上海森堡(Hessenberg)阵。如果此对角线元 全不为零则称该矩阵为不可约的上Hessenberg矩阵。讨论用 变换将一般矩阵 相似变
换成Hessenberg阵
数值分析
数值分析
1 1
1 1
1 11
1
,
1 0 0
0
0
1
Householder H H
H AH
H HH
H n Householder
首先,选取 矩阵 使得经 相似变换后的矩阵 的第一列中有尽可能多的零元素。
为此,应取 为如下形式
其中 为 阶 矩阵。
111 21 1
1 1 1 22 1
1 21 31 1 2 12 13 1( , , , ) , ( , , , ) ,
T
T Tn n
a a HH AH
H a H A H
a a a a a a a a
于是有
其中
数值分析
数值分析
22 2
22
2
1 1 1 1
1 1
.
( ,
0)
0, , ,
2
n
n nn
T
a a
A
a a
H H a
H AH n
只要取 使得 就会使得变换后的矩阵 的第一列出现 个零元。
数值分析
数值分析
2 2 1 1 2
2
1 2
2 2 2 1 1 2 2
1 0 0 0 * * * *
0 1 0 0 * * * *
0 0 * * *
* *0 0
2 2 , , ,
, .n n n
Householder
H H H AH H
H
n n Householder H H
H H H H AH H H H
H Hessenberg
同理,可构造如下列形式 矩阵
使得
*
如此进行 次,可以构造 个 矩阵使得
其中 为上 矩阵 A
H
。特别地,当 为实对称矩阵,则经过上述正交变换后, 变为三对角阵。
数值分析
数值分析
12 2
1
5 2 2 2 3 2
1 0 5 2 2 2 2
0 2 1 0
0 2 4 1
2,
02
2,
( 2, 2) 2(1,0) ( 2 2, 2)
:
T T T
Householder A
A
Householder H H
u
用 变换将矩阵 化成上Hesse例
解
nberg阵。
求 矩阵 满: 足
,
数值分析
数值分析
2
2
2
2 2 2 2 21 0 4 4 2 220 1 2 2 2 2 2
4 4 2 2
1 0 0 0
0 1 0 0
2 20 0
2 2
2 20 0
2 2
T
T
uuH I
u u
H
数值分析
数值分析
2 1 1 2
1 0 0 05 2 2 2 3 20 1 0 0
1 0 5 2 2 2 22 20 0
2 2 0 2 1 0
2 2 0 2 4 10 02 2
1 0 0 0
5 2 5 10 1 0 0
1 0 3 22 2 0 0 0 2 2 32 20 0 1 22 2
0 02 2
H H H AH H
于是有
数值分析
数值分析
用 Household 方法对矩阵 A 作正交相似变换 , 使 A 相似与上 Hessenberg 阵,算法如下:
( 1) ( 1)1
11
2 21 1
1
1 1 1 1( 1)
1 1 2,
1,2, ..., 21
(1) ( )
( )( ( ) ) ,
( )(0, ...,0, , , ..., )
k k Tk
kn
k k k iki k
k k k k kk
k k k k k nk
k n
H I U U
sign a a
aU a a a
,
,
,
计算
1(2) kH A A计算
( 1)
11
( 1)
, 1, ,1
1 ( )
2 1, ,
nk
j l ljl kk
kij ij j i
j k k n
t u a
i k na a t u
()
( )
数值分析
数值分析
( 1)
11
( 1)
1, ...,1
(1)
(2) 1, ...,
nk
i il ll kk
kij ij i j
i n
t a u
j k na a t u
1(3) kAH A计算
数值分析
数值分析
三、上 Hessenberg阵的 QR分解
对上 Hessenberg 阵只需要将其次对角线上的元素约化为零,用 Given 变换比用 Householde
r 变换更节省计算量。为此先介绍 Given 变换。
数值分析
数值分析
,
1
1
cos sin
1
1
sin cos
1
1 ( )
i j
i
R
j
j i
n阶方阵
Givens称为平面旋转阵,或称为 变换阵。
定义
1、平面旋转阵 (Givens 变换阵 )
数值分析
数值分析
1, , , ,1 , ,T Ti j i j i j i jR R I R R
Ri , j平面旋转阵 的() 平面旋转阵是非对称
交
质:
阵
性的
正 。
,
,
2 Ti j
i j
R
R
() 也是平面旋转阵。(3)det( )=1
数值分析
数值分析
1 , , ...,
R
x x x xi , j
T
1 2 n
平面旋转阵 的作用:
()将向量 = 的第j个分量约化为零。
,
cos sinsin cos
1, ..., ; ,
i j
i i j
j i j
k k
y R x
y x xy x xy x k n k i j,
若令 ,有
1 11,2
2 2
1
2
1 2
1 2
cos sin
sin coscos sin
sin cos
y xR
y x
x
x
x xx x
jy调整 ,可将 约化为零。
0 tan jj
i
xy
x 令 ,得
, , , ...,i jR x x x x xT
1 2 n左乘向量 = 只改变 的第i个分量和第j个分量。
jx
ix
数值分析
数值分析
0 tan jj
i
xy
x 令 ,得
2 2
2 2
cos
sin
i i
i j
j j
i j
x xC
rx x
x xS
rx x
所以,取
2 2 , 0i i j i j jy Cx Sx r x x y 于是
, , ..., , , , ..., ,0, , ..., .i jR x x x r x x x xT
1 i -1 i+1 j -1 j+1 n=
jx
ix
数值分析
数值分析
2 , , ...,x x x xT
1 2 n()将向量 = 的第i+1个分量到第n个分量约化为零。
2 2, 1 1, ..., , ,0, , ..., ,i i i iR x x x r x x r x x T
1 i -1 i+2 n=
, 2 , 1
2 2 21 2
, ..., , ,0,0, , ..., ,i i i i
i i i
R R x x x r x x
r x x x
T
1 i -1 i+3 n=
, , 2 , 1
2 2
, ..., , ,0, ...,0 ,i n i i i i
i n
R R R x x x r
r x x
T
1 i -1=
,
,
,
, ,
(3)
i j
i j
i
i
j i j
j
R A A
R A A
R
R
AR A
A
T
T
左乘 只改变 的第i,j行。右乘 只改
用 对矩阵 作变换得
变 的第i,j列。只改变 的第i,j行和
到的结
第
论
i,j列。
数值分析
数值分析
2,1,4
,0,0 .
x x
r
T
T
已知向量 = ,试用Givens变换将 约
化为
例
(1) (1)2,1,4x x xT:记 = ,对 计解 算C和S。
1 2
2 2 2 21 2 1 2
2 1,
5 5
x xC S
x x x x
1,2
(1) (2)1,2
2 1 05 5
1 2 05 5
0 0 1
5,0,4T
R
R x x
数值分析
数值分析
(2) 4,
21x S
5对 计算C和S, C=
21
(1)1,3 1,3
40
210 1 0 , 21,0,0
40
21
T
R R x
521
521
(2) 5,0,4T
x
数值分析
数值分析
2、用 Givens 变换对上 Hessenberg阵作 QR分解
(1) (1) (1)11 12 1(1) (1) (1)21 22 2
(1) (1)1
1
n
n
nn nn
b b b
b b bB
b b
n Givens
B QR
对上Hessenberg阵 ,
通常用 个 变换阵可将它化成上三角矩阵,从而得到 的 分解式。
数值分析
数值分析
(1)21
1 1
1 1
(2) (2) (2)1 12 13 1
(2) (2) (2)22 23 2(2) (2) (2)
1 232 33 3
(2) (2)1
0(
cos sin 0 0
sin cos 0 0
(1, 2) 0 0 1
1
(1, 2)
n
n
n
nn nn
b
R
r b b b
b b b
R B Bb b b
b b
具体步骤为:
设 否则进行下一步),
取旋转矩阵
则
(1) (1)(1) (1)11 21
1 1 1 11 211 1
cos , sin , .b b
r b br r
其中
数值分析
数值分析
232
2 2
2 2
(3) (3) (3) (3)1 12 13 1 1 1
(3) (3) (3)2 23 2 1 2
(3) (3) (3)33 3 1 3
2 (3) (3)43 4 1
0(
1 0
cos sin
sin cos (3, 2)
1
1
(3
, 2)
n n
n n
n n
n
b
R
r b b b b
r b b b
b b bR B
b b
( )设 否则进行下一步),再取旋转矩阵
-
则 3(3)4
(3) (3)1
(2)(2)(2) 2 (2) 23222
2 2 2 22 322 2
cos , sin , ( ) ( ) .
n
nn nn
Bb
b b
bbr b b
r r
其中
数值分析
数值分析
1
( ) ( ) ( ) ( )1 1 1 1 1 1 1
( ) ( ) ( )1 1 1 1 1
( ) ( ) ( )1
( ) ( ) ( )1 1 1 1
( ) ( )1
( 1, )
k k
k k k kk k n n
k k kk k k k n k n
k k kkk kn knk k k
k k k n k n
k knn nn
B R k k B
r b b b b
r b b b
b h h
b b b
b b
1k 假设上述过程已进行了 步,有
数值分析
数值分析
( )1
( ) ( )1
( ) 2 ( ) 21
0,
1
1
( 1, ) cos sin
sin cos
1
cos , sin ,
( ) ( ) .
kk k
k k
k k
k kkk k k
k kk k
k kk kk k k
b
R k k
b b
r r
r b b
设 取
其中
数值分析
数值分析
( 1) ( 1) ( 1)1 1 1 1 1
( 1) ( 1)1
( 1) ( 1) ( 1)11 1 1 1 1
( 1) ( 1) ( 1)2 1 2 1 2
( 1) ( 1)1
( 1, )
1
k k kk k n
k kk kk kn
k k kk kk k k n k n
k k kk k k n k n
k knn nn
r b b b
r b b
R k k B Bb h b
b h h
b b
n
于是
因此,最多做 次旋转变换,即( )
( ) ( ) ( )1 12 13 1
( ) ( )2 23 2
( )3 3
( , 1) ( 2, 1) (1,2)n
n n nn
n nnnn
n
H R n n R n n R B
r b b b
r b b
Rr b
r
得
数值分析
数值分析
21 32 1
21 32 1
2
3
( , 1),( 2, 3, , )
4 ,
( )
T T T
nn
T T Tnn
R i i i n
H R R R R QR
Q R R R
n QR
O n
H RQ
QR
QR
因为 均为正交矩阵,故
其中 仍为正交矩阵。可算出完成这
一过程的运算量约为 比一般矩阵的 分解的运
算量 少一个数量级。
可证明 仍是上Hessenberg阵,于是可按上述步骤一直迭代下去,这样得到的 方法的运算量比基本QR
方法大为减少。需要说明的是,通常用方法计算特征值,然后用反幂法求其相应的特征
向量。
数值分析
数值分析
2 2
5 3 2
6 4 4
4 4 5
(6,4) 6 4 (1,0) (6 52,4)
1 0 2
0 1
0.916025 0.277350 0.832050 0.5547002
0.277350 0.0839747 0.554700 0.832050
T T T
T
T
QR A
A
u
uuI
u u
用 方法求矩阵 的全部特征值。
首先将 化成上Hessenbe
例:
rg: 阵,取解
1
1 0 0
0 0.832050 0.554700
0 0.554700 0.832050
H
于是
数值分析
数值分析
1 1
2 21 1
1 1 1
5 1.386750 3.328200
7.211102 1.230768 8.153840
0 0.153846 2.230767
, 5 ( 7.21102) 8.774964
cos 5 0.56980.
sin 0.821781
H H AH
H A H QR
B H r
r
即为与 相似的上Hessenberg阵。将 进行 分解,
记
取0.569803 0.821781 0
(2,1) 0.821781 0.569803 0
0 0 1
R
数值分析
数值分析
1
2 22
2 2
2 2
8.774964 1.801596 8.597089
(2,1) 0 0.438310 1.911030
0 0.153846 2.230767
(0.438310) ( 0.153846) 0.464526,
cos 0.438310 0.943564,
sin 0.153846 0.331189
R B
r
r
r
于是
再取
1
1
1 0 0
(3, 2) 0 0.943564 0.331189
0 0.331189 0.943564
(3,2) (2,1)
8.774964 1.801596 8.597089
0 0.464526 2.541982
0 0 1.471953
R
R R B
R
于是
数值分析
数值分析
1
2 1 1
0.569803 0.775403 0.272165
(2,1) (3,2) 0.821781 0.537643 0.188712
0 0.331189 0.943564
3.519482 4.925491 10.840117
0.381739 1.091627 2.310653
0 0.487495 1.388883
, 11
T TQ R R
B R Q
第一次迭代得
重复上述过程迭代 次
12
1 2 3
2.992032 1.0003853 12.013392
0.007496 2.004695 1.941971
0 0.000325 0.999895
2.992032, 2.004695, 0.999895 3,2,1.
0.007496
B
QR
得
精确值下三角非对角元的最大模为 。 方法“ 基本” 收敛较慢。
数值分析
数值分析
算法:用 Givens 方法对上 Hessenberg 阵 A 作 正交分解 ,A=QR 。
, 1,2 2, 1,
, 1
, , 1,
1, , 1,
, 1
, , , 1
, 1 , , 1
Hessenberg ,1,2, ..., 1
(1) , , ,
(2)1,2...,
(3)1,2...,
i i i ii i i i
i i
i k i k i k
i k i k i kTi i
k i k i k i
k i k i k i
A Q Ii n
a ar a a c s
r rR A A
k na ca saa sa ca
QR Qk n
q cq sqq sa cq
A
输入上 阵
计算
计算
输出 为 ,Q上三角阵 为正交阵。
数值分析
数值分析
算法:用 Givens 方法对上 Hessenberg 阵 A 作 正交分解 A=QR ,求 A 的全部特征值。
, 1,2 2, 1,
, 1
, , 1,
1, , 1,
, 1
, , , 1
, 1 , ,
Hessenberg ,1,2, ...1, 2, ..., 1
(1) , , ,
(2), ...,
(3)1,2...,
i i i ii i i i
i i
i k i k i k
i k i k i kTi i
k i k i k i
k i k i k i
Ami n
a ar a a c s
r rR A A
k i na ca saa sa ca
AR Ak n
a ca saa sa ca
输入上 阵
计算
计算
1
A输出 为上三角阵或拟上三角阵。
数值分析
数值分析
四、原点平移加速的 QR方法
( )
1 2
( )1
1
1 2 1
QR
, ( ),
,
kk nn
kn n k nn n
n n
n
nn
B b A
B
B b k
理论分析和实际计算均表明, 方法产生的矩
阵序列 的右下角对角元素 最先与 的特征值接
近。可以证明,若矩阵 的特征值满足
则 的右下角对角元
且收敛速度是线性的,速率为 。
于是考虑原点平移的技巧来加快收敛速度,即
取位移 使其满足
,且1
1 ( )n
H I QR
QR
-
。这样,对 用 方
法就可以加快收敛速度,这就是带原点平移的 方法。
数值分析
数值分析
( )
( )
( 1)
1
2 1,2, , ,
(3)
.
kk k
kk k k
kk k k
k
Householder A
B
k H I QR
H I Q R
H R Q I
QR
具体步骤为:()用 变换将矩阵 化成上Hessenberg
阵 。
( )对 取位移 将 进行 分解,
选择合适的位移量 ,对非对称实矩阵的 方法可以达到二阶收敛