学習環境/開発環境
- Surface 3 (4G LTE)、Surface 3 タイプ カバー、Surface ペン(端末)
- Windows 10 Pro (OS)
- 数式入力ソフト(TeX, MathML): MathType
- MathML対応ブラウザ: Firefox、Safari
- MathML非対応ブラウザ(Internet Explorer, Google Chrome...)用JavaScript Library: MathJax
- OS X El Capitan - Apple (OS)
- Emacs (Text Editor)
- JavaScript (プログラミング言語)
- kjs-math-number (JavaScript Library)
- Safari(Web browser)
線型代数入門 (松坂 和夫(著)、岩波書店)の第4章(複素数、複素ベクトル空間)、1(複素数)、問2.を取り組んでみる。
問2.
number.js で確認。
JavaScript
コード(Emacs)
(function () {
'use strict';
var nl = '<br><br>',
div_output = document.querySelector('#output0'),
button_calc = document.querySelector('#calc0'),
calc;
calc = function () {
var sign1 = Math.random() < 0.5 ? 1 : -1,
sign2 = Math.random() < 0.5 ? 1 : -1,
sign3 = Math.random() < 0.5 ? 1 : -1,
sign4 = Math.random() < 0.5 ? 1 : -1,
a = new Complex(sign1 * Math.random() * 100,
sign2 * Math.random() * 100),
b = new Complex(sign3 * Math.random() * 100,
sign4 * Math.random() * 100),
z1,
z2,
z = [],
output = '';
z1 = a.add(b).conjugate();
z2 = a.conjugate().add(b.conjugate());
z[0] = ['+', z1, z2];
z1 = a.sub(b).conjugate();
z2 = a.conjugate().sub(b.conjugate());
z[1] = ['-', z1, z2];
z1 = a.mul(b).conjugate();
z2 = a.conjugate().mul(b.conjugate());
z[2] = ['*', z1, z2];
z1 = a.div(b).conjugate();
z2 = a.conjugate().div(b.conjugate());
z[3] = ['/', z1, z2];
output +=
'a = <math>' + a + '</math>' + nl +
'b = <math>' + b + '</math>' + nl;
z.forEach(function (x) {
output += x[0] + ': ' + x[1].isEqual(x[2]) + nl;
});
div_output.innerHTML = output;
};
button_calc.onclick = calc;
}());
0 コメント:
コメントを投稿