中野先生の固有値の論文を順々に読んでいったら、ル・ヴェリエ、ファデーエフ法というのが出てきました。
これがとても優秀のようです。
とりあえず転載。
NB. Leverrier-Faddeev Algorithm char=: 3 : 0 X=.I=.=@i.n=.#y[p=.1 for_k. >:i.n do. X=.y +/ . * X p=.p,pk=.-k%~+/(<0 1)|:X X=.X+pk*I end.
.p |
ためしに使ってみます。
]a=:3 3$3 0 0 0 2 _5 0 1 _2 3 0 0 0 2 _5 0 1 _2 lf a 3 0j1 0j_1 ]b=:3 3$ 0 1 1 1 0 1 1 1 0 0 1 1 1 0 1 1 1 0 lf b 2 _1 _1
中野論文に出ていた11次実対称帯行列で試してみます。
f1111=: , 0 ".] ;._2 (0 : 0) 1 _2 1 0 0 0 0 0 0 0 0 _2 5 _4 1 0 0 0 0 0 0 0 1 _4 6 _4 1 0 0 0 0 0 0 0 1 _4 6 _4 1 0 0 0 0 0 0 0 1 _4 6 _4 1 0 0 0 0 0 0 0 1 _4 6 _4 1 0 0 0 0 0 0 0 1 _4 6 _4 1 0 0 0 0 0 0 0 1 _4 6 _4 1 0 0 0 0 0 0 0 1 _4 6 _4 1 0 0 0 0 0 0 0 1 _4 5 _2 0 0 0 0 0 0 0 0 1 _2 1 ) lf 11 11$f1111 15.2692 13.2436 10.3706 7.24053 4.412 2.26237 0.913734 0.253526 0.0344625 0 0
問題無さそうです。一瞬で解答が出ました。