|
setup diary |
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}とすれば良いようだ。