From: matz / ruby-lang.org (Yukihiro Matsumoto)
Subject: [ruby-math:00776] Re: Forward: matrix.rb bug
Date: Fri, 22 Nov 2002 02:56:11 +0900
Message-ID: <1037901371.748120.11425.nullmailer / picachu.netlab.jp>

> まつもと ゆきひろです
> 
> In message "[ruby-math:00775] Re: Forward: matrix.rb bug"
>     on 02/11/22, 石塚圭樹 <keiju / rational.com> writes:
> 
> |えー. これは例の, 1/2 = 0 の副作用ですね.
.....略
> |今のところ, 数学的に正しい結果がほしければ, すべてFloatに直して計算す
> |るか, require "mathn"をしてください. となりますです...
> |
> |# 今の結果は, 一応ruby的には正しい結果だと思います. 

"仕様です" でなっとくできる範囲かというと,
ちょっと違うと思うので, 以下に意見を....


>   * Matrixってのは実数の行列とみなすのが正しいのか、それとも
>     Ruby値の行列とみなすのが正しいのか(「正しい」が定義しに
>     くいですが、matrix.rb的にどう見なしているかで良いです)。

単純な数値クラス以外でも +,-,* があれば(可換環なら?)
det は定義されます.
/ があると行列の基本変形で, 効率の良い計算ができるという事です.

ですから, 算術的なクラス R があった場合,
ここで / が定義されている場合と されていない場合で,
計算手法を切替える事が必要になります.

整数と実数の関係でいうと, どちらの係数と解釈しても同じ値とならないと
誤りと云って良いと思います.

この点, 実数の/ と整除の / の違いとは
質が違うと思います.
--
Kouji KODAMA, kdm / kobe-kosen.ac.jp