いけがみです。
バグ修正のメールを出したあとに、まつもとさんのメールを読みました。

From: matz / netlab.co.jp (Yukihiro Matsumoto)
Subject: [ruby-math:00285] Re: matrix.rb bug?
Date: Fri, 12 May 2000 17:06:19 +0900

> まつもと ゆきひろです
> 
> In message "[ruby-math:00284] matrix.rb bug?"
>     on 00/05/12, rubikitch <rubikitch / ruby-lang.org> writes:
> 
> |load "/usr/local/lib/ruby/1.4/matrix.rb"
> |p Matrix[[1,2,3],[-4,-5,-6]].rank
> |
> |このスクリプトを実行すると、↓のエラーが出ました。
> 
> この結果は3になるべきですか?
それは違います。と思います。
# ええと、考えている体が実数体じゃなかったら知りませんけれど。 :-)

行列 M の rank の定義は、
             def
rank M := r <---> Mの各行ベクトルのなかで線形独立であるものの最大数 = r
            <---> Mの各列ベクトルのなかで線形独立であるものの最大数 = r

です。(他にも同等な定義はいくつもあります。小行列式とか退化次数とかね)

2つの行ベクトル {1,2,3} と ベクトル {-4,-5,-6} は実数体上で線形独立ですから、
この場合は rank = 2 を返すのが順当でありましょう。

# おてもとの線形代数の教科書を御覧下さい。
--
池上 大介
Daisuke IKEGAMI <daisu-ik / is.aist-nara.ac.jp>
奈良先端科学技術大学院大学 情報科学研究科
情報処理学専攻 情報基礎学講座 関研究室