矩阵分析与计算-QR算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
k →∞
例4.6
⎛ 8 2⎞ A=⎜ ⎟ 有特征值λ1= 9, λ2= 4,可验 ⎝ 2 5⎠
证满足定理4.3条件,且A对称,所以QR算法产生 的序列应收敛到一个对角阵.用Givens变换的方 法作A1 =A的QR分解,得到 1 ⎛ 8 − 2⎞ 1 ⎛ 68 26 ⎞ Q1 = ⎟ ⎜ ⎟ , R1 = ⎜ 68 ⎝ 2 8 ⎠ 68 ⎝ 0 36 ⎠
在定理4.3的条件(4.7)′下,对H的QR迭代中,收敛 λ i +1 快慢决定于 max , 这和幂法是类似的.所以同样 1≤ i ≤ n −1 λ i 可以引入原点位移方法.设H1= H,这种方法就是 ⎧ H k − μ I = Qk Rk , ( H k − μ I 的QR分解 ) (4.12) ⎨ H = R Q + μ I , k = 1,2," ⎩ k +1 k k 因为Hk +1=RkQk + μ I =QkT(QkRk + μ I )Qk = QkTHkQk , 所以每个Hk都与H相似,从而与原矩阵A正交相似. 这里假设先把A变换为上Hessenberg矩阵H,再作算 法(4.12). 把A的特征值{λi }按下面次序排列
4.4.2 Hessenberg矩阵的QR方法
一般实际使用QR方法之前,先将A通过正交相似 变换化为上Hessenberg矩阵H,然后对H作QR迭代, 这样可以大大节省运算工作量. 因为上Hessenberg矩阵H的次对角线以下元素均为 零,所以用Givens变换作QR分解较为方便.例如用 Givens矩阵G (i, i+1, θi )左乘H ,有
G ( i , i + 1, θ i ) H =
⎛1 ⎜ ⎜ % ⎜ ci ⎜ − si ⎜ ⎜ ⎜ ⎜ ⎝
si ci
⎛ h11 ⎜ ⎞ ⎜ h21 ⎟ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎜ % ⎟⎜ ⎟ ⎜ ⎟ 1⎠ ⎜ ⎝
h12 h22 %
" " % hi ,i −1
h1i h2 i #源自文库hii
" " " %
一般情形QR算法的收敛性较为复杂.在有等模特 征值(包括实的重特征值,单的或重的共轭复特征值 及其他情形)时,如果X −1仍有LU分解,则{Ak}基本 收敛到块上三角阵.若同一模的特征值有p个,则在 对角线上出现一个p阶子阵,其元素不一定收敛,但 p阶子阵的特征值收敛于A的等模特征值.对于一种 重要的情况,即等模特征值中只有实的重特征值和 多重复共轭特征值的情况,可以证明{Ak}基本收敛 到分块上三角阵,对角块是1阶或2阶的,其中2阶子 阵给出一对复共轭特征值.
上述Hessenberg矩阵QR算法是上Hessenberg形式 矩阵的QR一步计算.对于矩阵A,完整的QR算法就 是: A的QR方法 (1)找正交矩阵Q0,使H1= Q0TAQ0为上Hessenberg形 式. (2)对k =1, 2 , …
⎧ H k = Qk Rk (QR分解 ) 利用上述算法计算 ⎨ ⎩ H k +1 = Rk Qk
h1,n−1 h2 ,n−1 # hi ,n−1 # hn ,n−1
hi +1,i " hi +1,n−1
h1n ⎞ ⎟ h2 ,n ⎟ # ⎟ ⎟ hi ,n ⎟ hi +1,n ⎟ ⎟ # ⎟ hnn ⎟ ⎠
选择θi ,使G(i, i+1, θi )H的第i+1行第i列元素为0,而 矩阵H的第i与i+1行零元素位置上左乘G (i, i+1, θi )后 仍为0,其他行则不变.这样i =1, …, n−1,共n−1次 左乘正交矩阵后得到上三角阵R1,即
1 ⎛ 596 72 ⎞ ⎛ 8.7647 1.0588 ⎞ A2 = R1Q1 = ⎜ ⎟ ⎟≈ ⎜ 68 ⎝ 72 288 ⎠ ⎝ 1.0588 4.2353 ⎠
⎛ 8.7647 − 1.0588 ⎞ 1 Q2 = ⎜ ⎟ 77.9410 ⎝ 1.0588 8.7647 ⎠ 1 ⎛ 77.9410 13.7644 ⎞ R2 = ⎟ ⎜ 77.9410 ⎝ 0 36.0001 ⎠ ⎛ 8.9517 0.4890 ⎞ A3 = R2Q2 ≈ ⎜ ⎟ ⎝ 0.4890 4.0483 ⎠ 可看到A3仍为对称阵,而且其非对角元绝对值比A1 对应数值要小,对角元则比A1对应数值更接近特征 值,即A3比A1更接近对角形.继续算下去,作10次 QR迭代可以求出有7位数字的特征值.
验证H2= R1Q1是一个上Hessenberg矩阵.事实上,
H 2 = R1Q1 = R1G (1,2, θ1 )"G ( n − 1, n, θ n−1 )
T T
因R1GT(1,2, θ1 )只有前两列与R1不同,且R1G T(1,2, θ1 ) 的前两列由R1的前两列的线性组合构成,R1又是上三 角矩阵,故R1G T(1,2, θ1 )必有如下形状(以n =5为例):
4.4 QR算法
QR方法是求矩阵全部特征值的一种有效方法.一 般都先把A变换为Hessenberg形式,然后用基于QR 分解的QR迭代运算.在某些条件下,迭代产生的矩 阵序列趋于一种实Schur分解的形式.
4.4.1 QR算法的基本思想
从QR分解定理可知实矩阵A有 A = QR,其中Q为 正交阵,R为上三角阵.若规定R的主对角元为正数, 则分解有唯一性.如果令B = RQ,则有B =QTAQ, 说明B与A有相同的特征值.对B继续作QR分解,可 得到如下的算法 ⎧ 令 A1 = A ⎪ ⎨ Ak = Qk Rk ( Ak 的QR分解 ) (4.7 ) ⎪ ⎩ Ak +1 = Rk Qk k = 1,2," 由(4.7)得到{Ak}的方法称为QR算法,或基本QR算 法.
(k ) = 0 , 从而Hk +1的 这样在Hk不可约的情况下就有 rnn 最后一行为(0,…, 0, μ ) .这就可求出Hk +1的一个特 征值为μ.
⎛ 9 − 1 − 2⎞ ⎜ ⎟ 例4.8 H = ⎜ 2 6 − 2 ⎟ 有特征值6. ⎜0 1 ⎟ 5 ⎝ ⎠ 设H −6I的QR分解为H −6I =QR,则 ⎛ 8.5384 − 3.7313 − 1.0090 ⎞ ⎜ ⎟ H = RQ + 6 I ≈ ⎜ 0.6343 5.4615 1.3867 ⎟ ⎜ 0.0000 0.0000 ⎟ 6 . 0000 ⎝ ⎠
1 2⎞ ⎛3 ⎜ ⎟ 2 3⎟ 例4.7 H = ⎜ 4 ⎜ 0 0.01 1 ⎟ ⎠ ⎝ 用上述算法对H作一步QR迭代,得到 ⎛ 0.6 0.8 0 ⎞ ⎜ ⎟ G (1,2, θ1 ) = ⎜ − 0.8 0.6 0 ⎟ ⎜ 0 ⎟ 0 1 ⎠ ⎝ 0 0 ⎞ ⎛1 ⎜ ⎟ G ( 2,3, θ 2 ) = ⎜ 0 0.9996 0.0249 ⎟ ⎜ 0 − 0.0249 0.9996 ⎟ ⎠ ⎝ 最后得到
Hessenberg矩阵QR算法的一步可以描述如下,它 对上Hessenberg矩阵H∈R n×n作QR分解:H=Q1R1,再 作乘法 H 2 = R1Q1 , H 2仍放在 H 的位置 :
1D 对 i = 1," , n − 1, (1) 确定 ci = cos θ i 及 si = sin θ i , 使 ⎛ ci si ⎞⎛ hii ⎞ ⎛ ∗ ⎞ ⎟ ⎟⎜ ⎜ =⎜ ⎟ ⎜ ⎟ ⎝ − si ci ⎠⎝ hi +1,i ⎠ ⎝ 0 ⎠ ( 2) 对 j = i ," , n, ⎛ ci si ⎞⎛ hij ⎞ ⎛ hij ⎞ ⎟ ⎟ ⎟⎜ ⎜ ⇒⎜ ⎜ ⎟ ⎜ ⎟ h h − s c ⎝ i i ⎠⎝ i + 1 , j ⎠ ⎝ i + 1, j ⎠ 2D 对 i = 1," , n − 1, (1) 对 k = 1," , i + 1, ⎛ c i − si ⎞ (hki hk ,i +1 )⎜ ⎟ ⇒ (hki hk ,i +1 ) ⎝ si c i ⎠
⎛ × × × × ×⎞ ⎜ ⎟ ⎜ ⊗ × × × ×⎟ R1G T (1,2, θ1 ) = ⎜ × × ×⎟ ⎜ ⎟ × ×⎟ ⎜ ⎜ ⎟ × ⎝ ⎠
同样,R1GT(1,2, θ1 )GT(2,3, θ2 )只有第2列和第3列与 R1GT(1,2, θ1 )不同,它们是R1GT(1,2, θ1 )的第2列和第 3列的线性组合,故R1GT(1,2, θ1 )GT(2,3, θ2 )有如下形 状(以n =5为例): ⎛× × × × ×⎞ ⎜ ⎟ ⎜× × × × ×⎟ R1G T (1,2, θ1 )G T ( 2,3, θ 2 ) = ⎜ ⊗ × × ×⎟ ⎜ ⎟ × ×⎟ ⎜ ⎜ ⎟ ×⎠ ⎝ 如此进行下去,最后我们得到的H2= R1Q1仍是一个 上Hessenberg矩阵.
⎛ 4.7600 − 2.5442 5.4653 ⎞ ⎜ ⎟ H 2 = ⎜ 0.3200 0.1856 − 2.1796 ⎟ ⎜ 0.0000 0.0263 ⎟ 1 . 0540 ⎠ ⎝
4.4.3 带有原点位移的QR方法
以下针对上Hessenberg矩阵讨论QR方法的进一步 发展.一般假设每次QR迭代中产生的Hk都是不可约 的(即次对角元均不为零).否则,在某一步中有 ⎛ H 11 H 12 ⎞ p ⎟ Hk = ⎜ H 22 ⎠ n − p ⎝ 0 p n− p 这样就可以将问题分解为较小型的问题.如果这种 情况出现在p =n−1或n−2情形,原特征值问题就可以 进行收缩.在实际计算中要对次对角元进行判断, 某个次对角元适当小时就进行分解或收缩.
T T Q1 H = R1 , Q1 = G ( n − 1, n, θ n−1 )"G (1,2, θ1 )
其中Q1T是一个正交矩阵,并可验证它是一个下 Hessenberg矩阵,即Q1是一个上Hessenberg矩阵.这 样得到H的QR分解H= Q1R1.在作QR迭代时,下一步 计算H2=R1Q1,易证R1Q1是一个上Hessenberg矩阵.以 上说明了QR算法保持了H的上Hessenberg结构形式.
(4.12)′ k λ j +1 − μ . 则Hk的第j个次对角元收敛速度决定于 λj −μ 如果μ十分接近λn,收敛将会很快. λ1 − μ ≥ λ 2 − μ ≥ " ≥ λ n − μ
在极端的情况下,设μ为A的一个特征值,即(4.12)′ 最右端为0,则QkT(Hk − μ I ) =Rk必为奇异阵,所以 Rk的对角线必有零元素.还可以证明 k) rii( k ) ≥ hi(+ 1,i , i = 1,2, " , n − 1
基本收敛的概念并未指出{Ak}严格上三角部分 元素是否收敛.但对求A的特征值而言,基本收 敛已足够了. 定理4.3 设矩阵 A∈Rn×n ,其特征值满足 |λ1| > |λ2| > … > |λn| >0 (4.7)′ λi对应特征向量xi ,i =1, 2,…,n.以xi为列的方阵 记为X = (x1, x2 , … , xn ).设X −1可分解为X −1=LU, 其中L为单位下三角阵,U为上三角阵.则QR算法 产生的序列{Ak}基本收敛到上三角阵.其对角元 极限为 (k ) lim aii = λ i i = 1,2," , n
T A = Q 以及 k +1 k AQk 可得到
Qk Rk = Qk −1QkT−1 AQk −1 Rk −1 = AQk −1 Rk −1
由此递推,以及 Q1 R1 = Q1 R1 = A1 = A , 即证 ( 3).
关于QR算法的收敛性有各种情况,这里给出一 种简单情况的收敛定理.
定义4.1 矩阵序列{Ak}当k→∞时,若其主对角 元均收敛,且严格下三角部分元素收敛到零,则 称{Ak}基本收敛到上三角阵.
命题4.1 QR算法产生的序列{Ak}满足: T (1) Ak +1 = Qk Ak Qk ( 2) Ak +1 = QkT AQk , 其中 Qk = Q1Q2 "Qk
( 3) A = Qk Rk , 其中 Rk = Rk " R2 R1
k
证明 易证(1).从它递推得 T Ak +1 = Qk Ak Qk = (Q1Q2 "Qk )T A(Q1Q2 "Qk ) 即得(2),并知Ak+1与A相似,再由 Qk Rk = Q1 "Qk Rk " R2 R1 = Qk −1 Ak Rk −1
相关文档
最新文档