Contenu connexe
Similaire à はじめてのKrylov部分空間法 (7)
はじめてのKrylov部分空間法
- 2. 線型計算の主なタスク
• 線型方程式(linear solver)
Ax = b
• 固有値問題(eigenvalue problem)
Ax = λx
Krylov部分空間法:現代線型計算の基本手法
• 行列・ベクトル積が効率的に計算可能な場合に強い
(eg., Aが疎行列,関数として与えられる,etc)
• 綺麗な理論評価 ⇒ 収束改善法などが明確
1/ 9
- 3. Krylov部分空間Kd [Krylov 1931]
Kd(A, b) := span{b, Ab, A2
b, . . . , Ad−1
b}
Krylov部分空間法とは:
1. 問題を小さい次元のKrylov部分空間に射影して
2. そちらで解いた解を元の空間に引き戻す手法の総称
主な特徴:
• 次元を増やすと誤差減(反復法的側面)
• 十分大きな次元で厳密解(直接法的側面)
• 実用的には誤差の累積が問題(cf., CG法冬の時代)
– 前処理・リスタートなどと組み合わせる
2/ 9
- 4. 行列多項式による誤差・残差評価
Kd(A, b) := span{b, Ab, A2
b, . . . , Ad−1
b}
= {p(A)b : pはd − 1次多項式}
誤差・残差は行列多項式p(A)の解析で見積もる
適用例(逆行列): d反復目まででの誤差が小さい
⇐⇒ A−1
がd次多項式p(A)で近似しやすい
⇐⇒ (λi, 1/λi)がd次多項式で近似しやすい
slow fast
3/ 9
- 6. Arnoldi反復
{b, Ab, A2
b, . . .}のGram-Schmidt直交化(QR分解)
⇒ AQd = QdHd + rde⊤
d (Arnoldi関係式)
(∥rd∥が十分小さくなったら打ち切る)
• Qd:直交(Kd(A, b)の正規直交基底を並べたもの)
• Hd:Hessenberg形(上三角+下副対角)
※A対称のとき自動的にH 三重対角(Lanczos反復)
○ Hessenberg形なので各種計算が簡単
× Gram-Schmidtなので数値誤差が累積する
5/ 9
- 8. 線型方程式:GMRES (Generalized Minimum RESidual)
Step 0. 初期解x0 設定.r0 ← Ax0 − b
Step 1. AをKd(A, r0)に射影:A ≃ V ⊤
HV
Step 2. 残差最小解を計算:min ∥H ˜x − ˜b∥
Step 3. 引き戻す:x = V ⊤
˜x
収束定理:Aが対角化可能(S−1
AS = Λ)のとき
∥rd∥
∥r0∥
≤ κ(S) min
p
max
λi
|p(λi)|
※Step 2 はQR分解で可能(Hessenberg形なので軽い)
7/ 9
- 9. 固有値問題:Arnoldi法
Step 0. 適当なx0 設定
Step 1. AをKd(A, x0)に射影:A ≃ V ⊤
HV
Step 2. H の固有対(˜λi, ˜ui)を計算(QR法等)
Step 3. 引き戻す:(˜λi, V ⊤
˜ui)
収束定理:Aが適当な条件を満たすとき
∥˜u − u∥ = O(κ(A) min
p
max
λi
|p(λi)|)
(雑な評価,H ˜u = λuとして見積もる)
※外側の固有値から順番に収束していく
8/ 9
- 10. おまけ:線型方程式の解法選択
• CG, CGS, CGR, PCG, BiCG, BiCGStab, QMR, TFQMR,
MINRES, GMRES, LGMRES, CAGMRES, LSQR,
SYMMLQ, Orthomin, . . .
• 扱う問題に応じて手法の振る舞いが違う
• 問題を固定するとマイナー改良で既存手法に勝てる
⇒ 毎月数個以上新しいKrylov系手法が登場
(行列計算の専門家でもフォローするのは不可能)
• 非専門家が使う側の心得
– 複数の手法で検証(CG系 + GMRES系)
– 複数の前処理(小規模問題で固有値分布を観察する)
9/ 9