2016年8月12日金曜日

開発環境

線型代数入門 (松坂 和夫(著)、岩波書店)の第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 コメント:

コメントを投稿