有理数型行列オブジェクト
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 を返します。