数値解析 第15回 付録B 古典的ヤコビ法の収束性
古典的ヤコビ法のアルゴリズム
絶対値最大の非対角要素をターゲットにする方法を古典的ヤコビ法と呼びます。
Alg. ( 古典的ヤコビ法 )
入力:
n 次実対称行列
A
出力:
A の固有値・固有ベクトル
(λi,vi) (
i=1,2,⋯,n )
P=E
while (継続条件)
絶対値最大の非対角要素を apq ( p<q ) とする
θ={12arctan(2apqapp−aqq) ifapp≠aqqπ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=∑i∑kaikbki=∑k∑ibkiaik=∑k(BA)kk=tr(BA).
Lemma B2 任意の n 次行列 A=(aij) に対し、
tr(tAA)=∑i,ja2ij= ( A の成分の2乗和 )
が成り立つ。
証明
tr(tAA)=∑i(tAA)ii=∑i∑k(tA)ikaki=∑i∑kakiaki=∑i,ka2ki.
Lemma B3 任意の n 次行列 A=(aij) と n 次の直交行列 R に対し、
B=R−1AR=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))( ∵ L′a B1 )=tr(tAEAE)=tr(tAA).
古典的ヤコビ法の収束性
絶対値最大の非対角要素
apq, 角
θ,
R=R(p,q;θ) を
Alg. のとおりとし、
B=R−1AR=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 i≠p,q ならば aii=bii.
証明 R,
tR は
p,
q に無関係な行・列には作用しないので。
主張3 ( B の対角成分の2乗和 ) = ( A の対角成分の2乗和 )+2a2pq.
証明 主張1,2 より。
主張4 ( B の非対角成分の2乗和 ) = ( A の非対角成分の2乗和 )−2a2pq.
証明 主張3 と
L'a B3 より。
さて、古典的ヤコビ法では
apq は絶対値が最大の非対角要素でした。
従って
( A の非対角成分の2乗和 ) ≦(n2−n)a2pq
∴ ( B の非対角成分の2乗和 ) ≦ ( A の非対角成分の2乗和 ) ×(1−2n2−n)
となります。
Alg. のループを
m 繰り返せば
( 非対角成分の2乗和 ) ≦ ( 最初の非対角成分の2乗和 ) ×(1−2n2−n)m →0 ( m→∞ )
となって、非対角成分は全て
0 に収束することがわかります。