数値解析において、逆反復法(逆べき乗法とも呼ばれる)は反復固有値アルゴリズムである。これは、対応する固有値の近似値が既に分かっている場合に、近似固有ベクトルを求めることができる 。この方法は概念的にはべき乗法に似ている。元々は構造力学の分野で共振周波数を計算するために開発されたものと思われる。[ 1 ]
逆べき乗反復アルゴリズムは近似値から始まる目的の固有ベクトルに対応する固有値とベクトルランダムに選択されたベクトル、または固有ベクトルの近似値のいずれか。この方法は反復によって記述される。
どこ定数は通常次のように選ばれます固有ベクトルは定数倍を除いて定義されるため、理論的には任意である可能性がある。選択の実際的な側面以下で説明します。
各反復において、ベクトル行列を乗算しますそして正規化されます。行列を置き換える点を除けば、べき乗法とまったく同じ式です。による 近似が近いほど固有値の選択が適切であればあるほど、アルゴリズムの収束は速くなりますが、 収束が遅くなったり、目的の固有ベクトルとは異なる固有ベクトルに収束してしまう可能性がある。実際には、固有値の適切な近似値が分かっている場合にこの方法が用いられ、そのため反復回数はごくわずか(多くの場合、1回のみ)で済む。
べき乗反復の基本的な考え方は、初期ベクトルを選択することです。(固有ベクトル近似またはランダムベクトルのいずれか)を反復計算するゼロ測度の集合を除いて、任意の初期ベクトルに対して、結果は支配的な固有値に対応する固有ベクトルに収束します。
逆反復は行列に対して同じことを行う したがって、行列の支配的な固有値に対応する固有ベクトルに収束する。この行列の固有値は どこ は、これらの数字の中で最大のものは、の固有ベクトルそして同じです。
結論:この方法は行列の固有ベクトルに収束する。最も近い固有値に対応する
特に、私たちは、 の固有値に対応する固有ベクトルに収束する最大規模したがって、最小の固有値を決定するために使用できます。それらは反比例の関係にあるからです。
この手法の収束速度を分析してみましょう。
べき乗法は、より正確には次の極限に線形収束することが知られている。
したがって、逆反復法の場合、同様の結果は次のようになります。
これは、この方法の収束を理解するための重要な公式です。これは、もしある固有値に十分近い値が選択されます 、 例えば各反復処理により精度が向上します 時間。(私たちはそれを十分に小さい場合に使用します。)「最も近い「そして「最も近い(同じです。)十分に小さい場合 それはほぼ同じです したがって、もし見つけることができればそれによって十分に小さければ、ごく少数の反復で十分な結果が得られるかもしれない。
逆反復アルゴリズムでは、線形システムを解くか、逆行列を計算する必要があります。非構造化行列(疎行列でもトープレッツ行列でもない)の場合、これには業務。
この方法は、以下の式で定義されます。
しかしながら、その実施方法には複数の選択肢が存在する。
この式は次のように書き換えることができます。
次の近似値を見つけるために強調する 線形方程式系を解く必要がある。選択肢は2つある。線形方程式系を解くアルゴリズムを選択するか、逆関数を計算するかのどちらかだ。そしてそれをベクトルに適用します。どちらのオプションも計算量はO ( n³ )で、正確な数値は選択した方法によって異なります。
選択は反復回数にも依存します。単純に考えると、各反復で線形システムを解く場合、計算量はk O ( n 3 ) になります。ここでkは反復回数です。同様に、逆行列を計算して各反復に適用する場合も、計算量はk O ( n 3 ) になります。ただし、固有値推定値がが一定のままであれば、どちらの方法でも複雑さをO ( n 3 ) + k O ( n 2 ) に削減できます。逆行列を一度計算し、それを保存して各反復で適用する場合の複雑さはO ( n 3 ) + k O ( n 2 )です。LU 分解を保存すると、また、各反復で前進代入と後退代入を使用して連立方程式を解く場合も、計算量はO ( n 3 ) + k O ( n 2 ) となります。
行列の逆行列を求める場合、通常は初期コストは高くなりますが、反復計算ごとにコストは低くなります。逆に、連立一次方程式を解く場合は、通常は初期コストは低くなりますが、反復計算ごとに多くの演算が必要になります。
多数の反復処理(または少数の反復処理だが多数の固有ベクトル)が必要な場合は、まず行列を上位ヘッセンベルグ形式に変換するのが賢明かもしれません(対称行列の場合は三重対角形式になります)。これにはコストがかかります。ハウスホルダー変換に基づく手法を用いた算術演算)と、直交相似変換の有限列を組み合わせたもので、両側QR分解にやや似ています。[ 2 ] [ 3 ] (QR分解では、ハウスホルダー回転は左側のみに掛けられますが、ヘッセンベルグ変換では左右両方に掛けられます。) 対称行列の場合、この手順のコストはハウスホルダー還元法に基づく手法を用いた算術演算。[ 2 ] [ 3 ]
三重対角行列コストに関する連立一次方程式の解操作が増えるため、複雑さは次のように増大します。、 どこは反復回数であり、直接逆変換を行うよりも優れています。ただし、反復回数が少ない場合は、このような変換は実用的ではない可能性があります。
また、ヘッセンベルク形式への変換には平方根と除算演算が含まれますが、これらはハードウェアで必ずしもサポートされているとは限りません。
汎用プロセッサ(例えば、Intel製)では、加算、乗算、除算の実行時間はほぼ同じです。しかし、組み込みハードウェアや低消費電力ハードウェア(デジタル信号プロセッサ、FPGA、ASIC)では、除算がハードウェアでサポートされていない場合があるため、避けるべきです。明示的なハードウェアサポートなしで高速な除算が可能になる。2 のべき乗による除算は、ビットシフト(固定小数点演算の場合) または減算のいずれかで実装できるからである。指数から(浮動小数点演算の場合)。
固定小数点演算を使用してアルゴリズムを実装する場合、定数の選択は特に重要です。小さな値は、規範の急速な成長につながります。そしてオーバーフローする。大きな値ベクトルを引き起こすゼロに近づく傾向にある。
この手法の主な応用例は、固有値の近似値が求められ、それに対応する近似固有ベクトルを求める必要がある場合である。このような状況では、逆反復法が主要な、そしておそらく唯一の方法となる。
通常、この方法は近似固有値を求める他の方法と組み合わせて使用されます。標準的な例としては二分法による固有値アルゴリズムがあり、別の例としてはレイリー商反復法があります。これは実際には、反復の前のステップで得られたベクトルに対応するレイリー商を近似固有値として選択した逆反復法と同じです。
この方法を単独で使用できる状況もいくつかあるが、それはごくまれなケースである。
任意の行列に対して、支配的な固有値を容易に推定できます。任意の誘導ノルムに対して、次のことが成り立ちます。任意の固有値に対してしたがって、行列のノルムを近似的な固有値として用いると、この方法は支配的な固有ベクトルに収束することがわかります。
リアルタイムアプリケーションの中には、毎秒数百万個の行列の速度で固有ベクトルを求める必要があるものがあります。このようなアプリケーションでは、通常、行列の統計情報は事前に分かっているため、大きな行列サンプルの平均固有値を近似固有値として用いることができます。より良い方法としては、固有値と行列のトレースまたはノルムとの比率の平均を計算し、その比率の平均値にトレースまたはノルムを乗じることで平均固有値を推定する方法があります。もちろん、このような方法は慎重に、かつ高い精度が求められない場合にのみ使用できます。平均固有値を推定するこの方法は、過度に大きな誤差を避けるために、他の方法と組み合わせることができます。