BVector 0.5
行ベクトルを BMatrix としてサポートし、 転置のメソッド tran を追加しました。今回も結果を $\TeX$ で出力し、MathJax で整形しています。
実行結果
ソース
"expand source" を押すと展開されます。元に戻すには、このページを再ロードしてください。
bvector05.html
今回はテストに転置(tran)を追加しました。
/**
* 結果表示用の関数です。HTMLとして展開します。
* @since 0.1
*/
function writeln(str) {
document.writeln(str + "<br>");
}
/**
* テストの実行と表示を行う関数です。
* @since 0.1
*/
function test(caption, exp, tex) {
writeln("<span style='font-family: monospace'>");
writeln(caption + " " + exp);
writeln("</span>");
var ans = eval(exp);
if (isNaN(ans)) {
writeln("$$" + tex + "=" + ans.toTeX() + "$$");
} else {
writeln("$$" + tex + "=" + ans + "$$");
}
}
// テストのメインです。
test("コンストラクタ", "a = new BVector(0, 0, 1, 1)", "\\boldsymbol{a}");
test("コンストラクタ", "b = new BVector(0, 1, 0, 1)", "\\boldsymbol{b}");
test("要素", "a.getValue(3)", "(\\boldsymbol{a})_3");
test("論理和", "a.or(b)", "\\boldsymbol{a} \\vee \\boldsymbol{b}");
test("論理積", "a.and(b)", "\\boldsymbol{a} \\wedge \\boldsymbol{b}");
test("絶対値", "a.abs()", "\\left| \\boldsymbol{a} \\right|");
test("反転", "a.inv()", "\\overline{\\boldsymbol{a}}");
test("転置", "a.tran()", "^t\\boldsymbol{a}");
test("論理差", "a.diff(b)", "\\boldsymbol{a} - \\boldsymbol{b}");
test("排他的論理和", "a.xor(b)", "\\boldsymbol{a} \\oplus \\boldsymbol{b}");
test("ドット積", "a.dot(b)", "\\boldsymbol{a} \\cdot \\boldsymbol{b} = \\; ^t\\boldsymbol{a} \\boldsymbol{b}");
test("スカラとの積", "a.mul(0)", "\\boldsymbol{a} \\times 0");
bvector05.js
今回追加した2進ベクトルの転置を求めるメソッド BVector.tran() の定義です。
/**
* 2進ベクトルを転置して(transpose)2進行列として返します。
* @return ベクトルの転置を返します。
* @since 0.5
*/
tran : function() {
var bm = new BMatrix(1, this.order);
for (var j = 1; j <= this.order; j++)
bm.setValue(1, j, this.getValue(j));
return bm;
},
Powered by
SyntaxHighlighter
MathJax