有理数型行列オブジェクト
Written 11/2/02
 matrix_q.js(ファイルに保存してください)
このスクリプトは、行列オブジェクトを与えます。 各要素は有理数です。 分数オブジェクトを併用します。
これもほとんどエラーチェックなどしません。 逆行列を求めるところでは行列式が0の場合、 false を返しています。
    //コンストラクタ
    Matrix_Q();
    Matrix_Q(n);
    Matrix_Q(m, n);
Matrix_Q の "Q" は有理数を意味します。
コンストラクタは引数の数に応じて3種類用意してあります。
デフォルトは1x1の行列です。
引数が1つなら正方行列で、引数は行・列の長さを表します。
引数が2つなら第1引数が列の長さ、第2引数が行の長さになります。
どの場合も各要素は0になります。
    //プロパティ
    this.a;
a が行列の実体で、配列オブジェクトを要素とする配列オブジェクトです。 a の各要素は各行を表しています。
    //メソッド
    this.copy;              //コピー
    this.assign;            //代入
    this.add;               //加算
    this.subtract;          //減算
    this.multiple;          //乗算
    this.add_asn;           //加算代入
    this.subtract_asn;      //減算代入
    this.multiple_asn;      //乗算代入
    this.multiple_left_asn; //乗算代入
    this.transpose;         //転置行列を返す
    this.determinant;       //行列式
    this.reverse;           //逆行列を返す
    this.toString;          //文字列に
Fraction オブジェクトと違うところだけ説明します。
multiple_left_asn メソッドは左から掛け算します。
    a.multiple_left_asn(b)  //a = b * a
transpose メソッドは行と列を入れ替えた行列を返します。
determinant メソッドは行列式を分数で返します。
reverse メソッドは逆行列を返します。 逆行列が無ければ false を返します。
JavaScriptサブルーチン集