非対称行列の固有値問題(続き)
AT の固有値・固有ベクトル
A とAT とは同じ固有値を持つ
i が A の固有値のとき,次の式を満たすベクトル yi が存在する
これを,A の固有値 i に属する左固有ベクトルと呼ぶ
Schur 標準形
任意の行列 A は,直交(またはユニタリ)行列 U による相似変換で
上三角行列 T に変換できる。これを A の Schur 標準形と呼ぶ
T の対角要素は A の固有値となる
AT yi = i yi
yi
TA = i yi
T
UT AU = T
9.
相似変換と固有値
相似変換
正則行列 Z を用いて,C= Z–1AZ と相似変換を行ったとする
このとき,C の固有値は A の固有値と同じ
固有値 i に属する A の固有ベクトル yi と,C の固有ベクトル wi との
間には次の関係がある
固有値計算での利用
この性質を利用し,A をまず固有値計算に適した中間形に相似変換
してから,固有値・固有ベクトルを求めることが行われる
中間形としては,3重対角行列,ヘッセンベルグ行列が使われる
xi = Zwi
10.
一般固有値問題 Ax =Bx の解法
A が対称,B が対称・正定値・良条件の場合
B = LLT と分解し,標準固有値問題 L–1AL–Ty = y に帰着させる
元の問題の固有値は ,固有ベクトルは x = L–Ty
B が良条件の場合
標準固有値問題 B–1Ax = x に帰着させる
それ以外の場合
B のコレスキー分解や B–1A を陽的に求めず,それと等価な操作を
陰的に行う解法を用いる
QZ法など
11.
固有値の特徴付け: 実対称行列の場合
最大固有値
実対称行列 Aの固有値を 1 2 n とすると,最大固有値
1 は次のように特徴付けられる
証明
A の固有ベクトルを用いて x を x = i=1
ncivi ( i=1
n ci
2 = 1)と展開すると,
xTAx = ( i=1
ncivi)T( i=1
nci ivi ) = i=1
nci
2
i。 これは,c1 = 1, c2 = ・・・ =
cn = 0 のときに最大となり,最大値は 1。
最小固有値
最小固有値 n は次のように特徴付けられる
固有値の摂動
問題
行列が A A+A と変化したときの固有値の変化 を評価する
非対称行列の場合
の右・左固有ベクトルをそれぞれ x, y とすると,次式が成り立つ
したがって,x と y が直交に近い固有値は,悪条件である
実対称行列の場合
次式が成り立つ
したがって,固有値は常に良条件である
14.
固有値計算の枠組み: 実対称行列
解法の分類
A の固有値・固有ベクトルを直接求める方法:べき乗法,Jacobi法
3重対角行列 T を経由して固有値・固有ベクトルを求める方法
正確な3重対角化: Householder法
近似的な3重対角化: Lanczos法
3重対角行列の固有値計算: 2分法・逆反復法,分割統治法,QR法
T の固有値 i
固有ベクトル ui
A の固有値 i
固有ベクトル vi
実対称密行列 A
実対称大規模疎行列 A
3重対角行列
T = QTAQ
べき乗法・Jacobi法
べき乗法
Lanczos法
Householder法 2分法・逆反復法
分割統治法
QR法 逆変換
15.
固有値計算の枠組み: 非対称行列
解法の分類
A の固有値・固有ベクトルを直接求める方法:べき乗法
Hessenberg行列 H を経由して固有値・固有ベクトルを求める方法
正確なHessenberg化: Householder法
近似的なHessenberg化: Arnoldi法
Hessenberg行列の固有値計算: QR法
U の固有値 i
固有ベクトル ui
A の固有値 i
固有ベクトル vi
非対称密行列 A
非対称大規模疎行列 A
Hessenberg行列
H = QTAQ
べき乗法
べき乗法
Arnoldi法
Householder法
QR法
逆変換
上三角行列
U = PTHP
Arnoldi 法(続き)
近似固有値・固有ベクトルの決定
x Kk(A;x(0)) より,x = Qy (y Rk)とおく
Ritz-Galerkin 条件より,
したがって,k k 行列に対する固有値問題
これは,ヘッセンベルグ行列に対する固有値問題となる
近似固有値は ,近似固有ベクトルは x = Qky で与えられる
Qk
T(Ax – x) = Qk
TAQky – Qk
TQky
= Hky – y
= 0.
Hky = y を解けばよい
25.
Arnoldi 法(続き)
アルゴリズムのまとめ
Arnoldi 過程によりQk, Hk を生成
k k 行列の固有値問題 Hky = y を解く
小規模固有値問題なので,LAPACK(QR法)などで解く
近似固有値として ,近似固有ベクトルとして x = Qky を採用
演算量
Arnoldi 過程: O(k2n)
k k 行列の固有値問題: O(k3)
近似固有ベクトルの計算: O(kn) (必要な固有ベクトル本数)
Arnoldi 法は通常 k n として使うため,Arnoldi 過程の部分が演算
量のほとんどを占める
Implicitly Restarted Arnoldi法 (2)
q1
+, q2
+, … , ql
+ の計算方法
入力: k-step Arnoldi 分解 AQk = QkHk + hk+1,k qk+1ek
T
シフト 1, 2, …, k–l を用い,Hk に対して k–l ステップのQR法を実行
すると,次の新しい関係式を得る
ただし Qk
+ = QkU, Hk
+ = UT HkU,
U = U1U2 … Uk–l (QR法の直交変換の行列)
両辺の第 l 列目までを取ると,次の新しい l-step Arnoldi 分解が得
られる
この状態から再度 Arnoldi 法を始めることにより,l 本のベクトルを
保存してリスタートすることが可能
AQk
+ = Qk
+ Hk
+ + hk+1, k qk+1ek
TU
AQl
+ = Ql
+ Hl
+ + hl+1, l ql+1
+el
T
29.
Implicitly Restarted Arnoldi法 (3)
×
×
×
=
=
=
×
×
×
+
+
+
× ×
l k–l
k–l+1
A
A
A
Qk
+
Qk
+
Ql
+
Qk
+
Qk
+
Ql
+
Hk
+
Hk
+
Hl
+
ek
T
hk+1,k qk+1
U
hk+1,k qk+1ek
T U
hl+1,l
+ql+1
+el
T
QR法実行後の関係式
新しい l-step Arnoldi 分解
k l
アルゴリズム
Arnoldi 分解 AQk= QkHk + hk+1,k qk+1ek
T を入力。
DO l = 1, 2, 3, …
シフト 1, 2, …, k–l を用い,Hk に対して k – l ステップのQR法を実行
U = U1U2 … Uk–l
Qk
+ = QkU, Hk
+ = UT HkU
l = (Hk
+ )l+1,l, l = Ukl
ql+1
+ = ql+1 l + hk+1,k qk+1 l
hl+1,l = ql+1
+
2
ql+1
+ := ql+1
+ / hl+1,l
Qk
+ の最初の第 l 列からなる行列を Ql
+ とする。
Hk
+ の左上部分からなる l l 行列を Hl
+ とする。
Arnoldi 分解 AQl
+ = Ql
+ Hl
+ + hl+1,l ql+1
+ el
T から始めて,Arnoldi法を
k – l ステップ行う。
END DO
参考文献
L. N. Trefethenand D. Bau III: “Numerical Linear Algebra”, SIAM,
Philadelphia, 1997.
Z. Bai, J. Demmel, J. Dongarra, A.Ruhe and H. Van der Vorst (eds.):
“Templates for the Solution of Algebraic Eigenvalue Problems: A
Practical Guide”, SIAM, Philadelphia, 2000.
G. W. Stewart: “Matrix Algorithms, Vol. II: Eigensystems”, SIAM,
Philadelphia, 2001.
Y. Saad: “Iterative Methods for Sparse Linear Systems”, SIAM,
Philadelphia, 2011.
杉原正顯, 室田一雄: “線形計算の数理”, 岩波書店, 2009.