示例#1
0
test('2-variable system in place', function (t) {    
    crout(A.hi(size,size), L, L);
    
    var X = new Float64Array(size);
    var Y = new Float64Array(size);
    var solution = solve(L, L, A.lo(size,0).pick(0), X, Y);
    
    t.equal(X, solution);
    t.deepEqual([].slice.call(X), expected);
    
    for (var y = 0; y < size; y++) {
        var c = 0;
        for (var i = 0; i < size; i++) {
            c += X[i] * A.get(i, y);
        }
        t.equal(c, A.get(size, y));
    }
    t.end();
});
示例#2
0
var solve = require('../');
var show = require('ndarray-show');
var crout = require('ndarray-crout-decomposition');
var ndarray = require('ndarray');
var zeros = require('zeros');

var A = ndarray(
    [ 2, 1, -1, 8, -3, -1, 2, -11, -2, 1, 2, -3 ],
    [ 4, 3 ], [ 1, 4 ]
);
var L = zeros([ 3, 3 ]);
var U = zeros([ 3, 3 ]);
crout(A.hi(3,3), L, U);

var X = ndarray(new Float64Array(3));
var Y = ndarray(new Float64Array(3));
var solution = solve(L, U, A.lo(3,0).pick(0), X, Y);

console.log('input:\n' + show(A), '\n');
console.log('solution:\n' + show(solution));