一つの正方行列 の冪 で作られる行列の列、いわば行列の等比数列
の極限はどうなるだろうか? 既に学んだかもしれないが (行列の Jordan 標準形の簡単な応用である)、 ここでは実験で試してみよう。
isc-xas05% octave
octave:1> n=5
octave:2> a=rand(n,n)
octave:3> a*a
octave:4> a^2
octave:5> a^100
octave:6> a^1000
Octave では、行列 a の n 乗は a^n で計算できることがわかるが、 この例では n の増加と共に急速に大きくなり、 あっと言う間にオーバーフローすることが分かる。
種明かしをすると、 行列の固有値の絶対値 (これをスペクトル半径と呼ぶ) を調べると 事情が見えてくる。
octave:7> eig(a)
octave:8> r=max(abs(eig(a)))
octave:9> a=a/r
octave:10> max(abs(eig(a)))
octave:11> a^100
octave:12> a^1000
Octave では max(abs(eig(a))) で a の スペクトル半径が計算できる。 a をそのスペクトル半径 r で割ることで、 スペクトル半径を に縮めることができる。 a^100, a^1000 ともにオーバーフローしていないが、 それだけでなく何かが起こっていることに気がつくだろうか? (どうしてそうなるのか考えてみよう。)
今度はスペクトル半径が より小さい行列の冪を調べてみよう。
octave:13> a=0.9*a
octave:14> a^100
octave:15> a^1000
octave:16> a^10000
2017-06-19