開発環境
- OS X El Capitan - Apple (OS)
- Emacs (Text Editor)
- JavaScript (プログラミング言語)
- kjs-math-matrix (JavaScript Library)
- Safari(Web browser)
- JavaScript 第6版 (David Flanagan(著)、村上 列(翻訳)、オライリージャパン)(参考書籍)
線型代数入門 (松坂 和夫(著)、岩波書店)の第3章(線型写像)、8(線型写像の空間)、問4.をJavaScript、matrix.jsを使って取り組んでみる。
問4.
コード(Emacs)
var nl = '<br><br>',
result0 = document.querySelector('#result0'),
run0 = document.querySelector('#run0');
run0.onclick = function () {
var m = Math.floor(Math.random() * 10) + 1,
n = Math.floor(Math.random() * 10) + 1,
a = new Matrix(m, n),
ca,
la,
c = Math.floor(Math.random() * 10),
v = new Matrix(n, 1),
i,
j,
matrix1,
matrix2,
result = '';
for (i = 1; i <= m; i += 1) {
for (j = 1; j <= n; j += 1) {
a.setElement(i, j, Math.floor(Math.random() * 10));
}
}
for (i = 1; i <= n; i += 1) {
v.setElement(i, 1, Math.floor(Math.random() * 10));
}
ca = a.mulScalar(c);
la = a.mulMatrix(v);
matrix1 = ca.mulMatrix(v);
matrix2 = la.mulScalar(c);
result += 'c = ' + c + ', v = ' + v + nl +
'A = ' + a + nl +
'cA = ' + ca + nl +
'L_cA(v) = ' + matrix1 + ', cL_a(v) = ' + matrix2 + nl;
if (matrix1.isEqual(matrix2)) {
result += 'L_cA(v) = cL_a(v)';
} else {
result += 'L_cA(v) /= cL_a(v)';
}
result0.innerHTML = result;
};
ランダムに生成した行列、スカラーで何度か試して、等号が成り立つことを確認できた。
0 コメント:
コメントを投稿