Processing math: 100%

数値解析 第15回 付録 古典的ヤコビ法の収束性

直交行列

 実対称行列の対角化に必要な直交行列に関する基礎知識をまとめておきます。
Def.1 (tP)P=E ( E は単位行列 ) を満たす実数成分の正方行列を 直交行列 と呼ぶ。
Th.2 次はいずれも P が直交行列であることと同値である:
  1. (tP)P=E.
  2. P(tP)=E.
  3. P1=tP.
  4. P の列ベクトルたちは正規直交基底をなす。
  5. P の行ベクトルたちも正規直交基底をなす。
正規直交基底とは、次元と同じ個数の、互いに直交する長さ 1 のベクトルたちのことです。
Prop.3 (1) 直交行列の積も直交行列である。
(2) 直交行列の逆行列も直交行列である。
(3) 直交行列の行列式は ±1 である。
Def.4 次の形の行列 R(p,q;θ) は、 n 次元座標 (x1,x2,,xn) のうち、xpxq に関する角 θ の回転を表す。 R(p,q;θ)=(cosθsinθsinθcosθ) ただし、cosθ(p,p)-成分と (q,q)-成分、 sinθ(p,q)-成分、 sinθ(q,p)-成分で、 これ以外の成分は単位行列に同じとする。
Prop.5 R(p,q;θ) は直交行列である。

古典的ヤコビ法

 絶対値最大の非対角要素をターゲットにする方法を古典的ヤコビ法と呼びます。
Alg.6 ( 古典的ヤコビ法 )
入力: n 次実対称行列 A
出力: A の固有値・固有ベクトル (λi,vi) ( i=1,2,,n )

  P=E
  while (継続条件)
    絶対値最大の非対角要素を apq ( p<q ) とする
    θ={12arctan(2apqappaqq) ifappaqqπ4 ifapp=aqq
    R=R(p,q;θ)
    (新 A)=tRAR
    (新 P)=PR
  λi=aii, vi=(P の第 i 列ベクトル) ( i=1,2,,n ) を出力

 古典的ヤコビ法が必ず収束することを証明しましょう。 はじめに補題を3つ用意します。
Lemma 7 任意の n 次行列 A=(aij), B=(bij) に対し、 tr(AB)=tr(BA) が成り立つ。
ただし tr は対角成分の和を表します。

証明  tr(AB)=i(AB)ii=ikaikbki=kibkiaik=k(BA)kk=tr(BA).
Lemma 8 任意の n 次行列 A=(aij) に対し、
tr(tAA)=i,ja2ij= ( A の成分の2乗和 )
が成り立つ。
証明  tr(tAA)=i(tAA)ii=ik(tA)ikaki=ikakiaki=i,ka2ki.
Lemma 9 任意の n 次行列 A=(aij)n 次の直交行列 R に対し、
B=R1AR=tRAR
とおくと
( B の成分の2乗和 ) = ( A の成分の2乗和 )
が成り立つ。
証明 L'a 8 より tr(tBB)=tr(tAA) を示せばよく、 tr(tBB)=tr(t((tP)AP)(tP)AP)=tr((tP)(tA)(t(tP))(tP)AP)=tr((tP)(tA)P(tP)AP)=tr((tA)P(tP)AP(tP))(  La 7 )=tr(tAEAE)=tr(tAA).

古典的ヤコビ法の収束性

 絶対値最大の非対角要素 apq, 角 θ, R=R(p,q;θ)Alg.6 のとおりとし、
B=R1AR=tRAR,,   A=(aij),  B=(bij)
とおきます。
主張1 a2pp+2a2pq+a2qq=b2pp+b2qq.
証明 A, B(p,p), (p,q), (q,p), (q,q)-成分だけを書き出すと、 2次元の回転の行列 R(θ) を用いて (bppbpqbqpbqq)=tR(θ)(appapqaqpaqq)R(θ) となっていて、L'a 9 の2次元の場合から
a2pp+a2pq+a2qp+a2qq=b2pp+b2pq+b2qp+b2qq
が成り立ちます。A は対称行列ゆえ apq=aqp. また θ の取り方から bpq=bqp=0 なので主張が成り立ちます。
主張2 ip,q ならば aii=bii.
証明 R, tRp, q に無関係な行・列には作用しないので。
主張3 ( B の対角成分の2乗和 ) = ( A の対角成分の2乗和 )+2a2pq.
証明 主張1,2 より。
主張4 ( B の非対角成分の2乗和 ) = ( A の非対角成分の2乗和 )2a2pq.
証明 主張3L'a 9 より。

 さて、古典的ヤコビ法では apq は絶対値が最大の非対角要素でした。 従って
( A の非対角成分の2乗和 ) (n2n)a2pq
  ( B の非対角成分の2乗和 ) ( A の非対角成分の2乗和 ) ×(12n2n)
となります。Alg.6 のループを m 繰り返せば
( 非対角成分の2乗和 ) ( 最初の非対角成分の2乗和 ) ×(12n2n)m 0  ( m )
となって、非対角成分は全て 0 に収束することがわかります。