rubyで行列
整数の要素をもつ行列には注意が必要だ。
rubyでは行列も扱える。determinantや逆行列も簡単に求められるので、比較的便利である。しかし、注意が必要であることが分かった。例に次のコードを実行してみた。
require "matrix" m=Matrix[[2,0],[0,2]] p m.inv
結果は、零行列になってしまう。始めはなぜだか分からなかったが、実は整数の演算として計算するために起こることに気づいた。つまり、determinantを計算して、それが分母にくるので、すべて整数で計算した場合には、切り捨てられて0になってしまうのである。m.to_fとかのmethodが欲しいところであるが、それは無いようだ。/usr/lib/ruby/1.8/matrix.rbを見ると、collectはあるようなので、
m=m.collect{|e| e.to_f}
とすれば良いようだ。