Loading [MathJax]/jax/output/CommonHTML/jax.js

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

古典的ヤコビ法のアルゴリズム

 絶対値最大の非対角要素をターゲットにする方法を古典的ヤコビ法と呼びます。
Alg. ( 古典的ヤコビ法 )
入力: 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 B1 任意の n 次行列 A=(aij), B=(bij) に対し、 tr(AB)=tr(BA) が成り立つ。
ただし tr は対角成分の和を表します。

証明  tr(AB)=i(AB)ii=ikaikbki=kibkiaik=k(BA)kk=tr(BA).
Lemma B2 任意の n 次行列 A=(aij) に対し、
tr(tAA)=i,ja2ij= ( A の成分の2乗和 )
が成り立つ。
証明  tr(tAA)=i(tAA)ii=ik(tA)ikaki=ikakiaki=i,ka2ki.
Lemma B3 任意の n 次行列 A=(aij)n 次の直交行列 R に対し、
B=R1AR=tRAR
とおくと
( B の成分の2乗和 ) = ( A の成分の2乗和 )
が成り立つ。
証明 L'a B2 より 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 B1 )=tr(tAEAE)=tr(tAA).

古典的ヤコビ法の収束性

 絶対値最大の非対角要素 apq, 角 θ, R=R(p,q;θ)Alg. のとおりとし、
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 B3 の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 B3 より。

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