
No.1ベストアンサー
- 回答日時:
逆反復法は固有ベクトルを計算するのによく用いられます.
問題の行列を A (既知),近似的固有値を Ea (既知) とします.
任意の初期ベクトル v_0 を出発点にとり,
(A-Ea)^(-1) を繰り返し掛けようというのが逆反復法のアルゴリズム
(というか,原理)です.
v_0 を A の固有ベクトル φ_j (未知)で展開します.
(1) v_0 = Σ_j a_(j0) φ_j
係数 a_(j0) は未知.
これに (A-Ea)^(-1) を k 回掛けます.
左辺は (A-Ea)^(-k) v_0 = v_k と書くことにします.
φ_j は A の固有ベクトル(固有値を E_j とします)なので,
(2) (A-Ea)^(-1) φ_j = (E_j - Ea)^(-1) φ_j
で,k 回繰り返して
(3) (A-Ea)^(-k) φ_j = (E_j - Ea)^(-k) φ_j
したがって
(4) v_k = Σ_j a_(j0) (E_j - Ea)^(-k) φ_j
です.
(E_j - Ea)^(-k) がミソで,Ea に近い E_j をもつ j 成分が他の成分に比べて
格段に大きくなります(繰り返し回数 k に対して指数関数的に増大).
(A-Ea)^(-1) を掛ける操作をそのままやろうとすると逆行列を求める必要があります.
しかし,
(5) v_k = (A-Ea)^(-1) v_(k-1)
ですから
(6) v_(k-1) = (A-Ea) v_k
というわけで,これなら単に連立方程式を解くだけですからできます.
不幸にして最初の v_0 の選び方が悪くて,求める固有ベクトルと直交していると,
うまく行きません.
極端な話,v_0 を A の真の固有ベクトルに選んでしまったら,
いつまで経ってもその固有ベクトルから抜け出せません.
こういうことが起きるのは,対称性の問題に起因することがほとんどです.
まあ,適当にごちゃごちゃした A で,v_0 を対称性の違うベクトルの線形結合に
とっておけばたいてい大丈夫です.
実際のプログラミングにはいろいろ注意が要ります.
固有値が縮退している可能性なども考えておかないといけません.
森正武「FORTRAN77 数値計算プログラミング」(岩波書店,1988)
など参考にされてはいかがでしょうか.
とても詳しく回答していただきありがとうございます。siegmundさんの回答をもとにもう一度専門書を読み直してみます。「FORTRAN77 数値計算プログラミング」は図書館に行って探してみましたが、どこも貸し出し中で当分読めないかもしれませんが、読んでみようと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 問題文はa+b≠2のとき A= a 1-a 1-b b 固有ベクトルを求める 固有値λ=1,a+b- 3 2023/04/18 23:41
- 数学 連立微分方程式の解き方について 7 2022/12/16 13:39
- 物理学 スピン 行列表示 固有状態 測定値 1 2022/08/16 18:39
- 数学 数学の線形代数についての質問です。 0 1 0 0 0 1 1 0 0 の3×3の行列をAとする時、 1 2023/07/09 01:28
- 数学 (3)がわかりません。 (1)は固有値λ=±1 固有ベクトルは λ=1のとき (-i,1) λ=-1 2 2023/06/11 14:46
- 数学 固有ベクトルの縦書き 3 2022/12/19 23:48
- 数学 2*2の行列に対して固有値の最大実部を与えるkの値を求めたい 3 2022/11/08 16:26
- 統計学 固有ベクトルを求める問題です。 至急教えてください。よろしくお願いします。 3 2022/10/22 20:06
- Java Java モンスターブリーダー 1 2023/02/05 09:44
- 数学 行列(I-βG)の逆行列が存在することの証明について 1 2023/06/23 01:33
おすすめ情報
おすすめ情報