JavaScript-行列計算ライブラリ

JavaScriptで行列を扱うライブラリ。

概要

タイトル通り、行列計算を行うJavaScriptライブラリです。行列をMatrixオブジェクトとして扱い、加算,減算,乗算,スカラー倍,行列式,逆行列を求めることが可能です。

使用方法

ライブラリのソースコードにも記載済み。

MatrixObjectの仕様

作成したMatrixObjectは4つの値を持つ。

var foo = new Matrix();
foo.val = Array...行列本体を2次配列で格納
foo.col = Number...行列の行の大きさ
foo.row = Number...行列の列の大きさ
foo.isSqu = Boolean...正方行列ならtrue,非正方行列ならfalse

行列作成

MatrixObjectの作成方法。

2次の配列を読み込んで行列を生成

2次の配列をaryとして、次のように行列を生成。

var foo = new Matrix( ary );
任意の単位行列を生成

行=col,列=rowとして単位行列を生成。ただし行と列が一致しない場合も、正方行列の要領で単位行列が生成されてしまう。零行列は後述。

var foo = new Matrix( [],col,row );
単位正方行列を生成

行=列=colとして単位正方行列を生成。単に引数の列を取り除くだけでよい。

var foo = new Matrix( [],col );
2次の単位正方行列を生成

引数が何もない場合、2次の単位正方行列を生成する。

var foo = new Matrix();

行列をスカラー倍する

任意の実数をpとして、任意の行列fooを次のようにスカラー倍できる。

foo.Scal( p );

配列を零行列にリセットしたい場合は引数に0若しくは何も入れずにスカラー倍する。

foo.Scal(0);
foo.Scal();

行列同士を加算する

2つの行列foo1,foo2を加算した結果をfoo3にMatrixObjectとして代入する。尚、foo1foo2の行と列がそれぞれ等しい場合のみ計算は行われ、計算不可能な場合undefinedが返される。

var foo3 = Matrix.Add( foo1,foo2 );

行列同士を減算する

2つの行列foo1,foo2を減算した結果をfoo3にMatrixObjectとして代入する。尚、foo1foo2の行と列がそれぞれ等しい場合のみ計算は行われ、計算不可能な場合undefinedが返される。

var foo3 = Matrix.Sub( foo1,foo2 );

行列同士を乗算する

2つの行列foo1,foo2を乗算した結果をfoo3にMatrixObjectとして代入する。尚、foo1の列とfoo2の行が等しい場合のみ計算は行われ、計算不可能な場合undefinedが返される。

var foo3 = Matrix.Mul( foo1,foo2 );

行列の2乗を計算する

2乗はSqu関数により計算でき、結果はMatrixObjectで返される。行列が正方行列ではない場合、計算不可となりundefinedを返す。

var foo2 = foo.Squ();

行列式を計算する

行列式はDeterminant関数により計算でき、結果は数値で返される。行列が正方行列ではない場合、計算不可となりundefinedを返す。

var d = foo.Determinant();

逆行列を計算する

逆行列はInverse関数により計算でき、結果はMatrixObjectで返される。行列が正方行列ではない場合、計算不可となりundefinedを返す。

var foo_d = foo.Inverse();

ちなみに内部ではDeterminant関数の多重呼び出しを行っており、計算量は逆行列が最も大きい。

その他:整形用関数

Print関数を使うと、行列を文字列に整形して出力できる。引数に1を代入するとHTML用に改行(<br>)が挿入され、2を代入するとXHTML用に改行(<br />)が挿入される。0若しくは何も入れない場合、改行コードのみが挿入される。

var str1 = foo.Print();//改行(\n)
var str2 = foo.Print(0);//改行(\n)
var str3 = foo.Print(1);//改行(<br>)
var str4 = foo.Print(2);//改行(<br />)

Version

Ver.0.1.0

上記の関数群を揃えたライブラリ。元の平たい関数として組んだ-gと、オブジェクト内部の値を隠蔽した-lを作ってある。とはいえ、-lは実験的なもので、今後の改良があるとすれば-gで統一されるだろう。

ページ情報

作成日時
2007/09/01
最終更新日時
2007/09/01
HTML4.01版
index.html
XHTML1.1版
index.xhtml
XML原本
index.xml