matrix.rbのinv


逆行列がうまく計算できない。
matrix.rbをつかって、行列を計算していて、なんだかおかしいので、自分の組んだ部分にバグがあるのかと思って、いろいろと調べていたが、分からない。pで、途中の変数を表示して調べていると、逆行列がうまく計算できていないようだ。 invを用いて逆行列を計算しているのだが、

Matrix[[1.66533453693773e-16, 0.0, -0.5, -0.866025403784439],
[0.0, 1.66533453693773e-16, 0.866025403784439, -0.5], 
[-0.5, -0.866025403784439, 1.66533453693773e-16, 0.0], 
[0.866025403784439, -0.5, 0.0, 1.66533453693773e-16]]

の逆行列を計算すると、変な値になってしまう。matrix.rb中ではどのように逆行列を計算しているのかは読んでいないが、どうも通常良く用いられる余因子を使った計算ではないようだ。自分で書いても良いが、面倒なので、今回は直交行列しか用いないことにして、transposeで代用することにしよう。