array
JavaScript
// matrix algebra: 2x2 only
//
function print2x2 (a) {
console.log (a[0][0] + ' ' + a[0][1]);
console.log (a[1][0] + ' ' + a[1][1]);
}
function AxB (a,b) {
var ab = [];
ab.push ([a[0][0]*b[0][0] + a[0][1]*b[1][0], a[0][0]*b[0][1]+a[0][1]*b[1][1]]);
ab.push ([a[1][0]*b[0][0] + a[1][1]*b[1][0], a[1][0]*b[0][1]+a[1][1]*b[1][1]]);
return ab;
}
function Av (a, v) { // matrix(2x2) times v (2x1)
return [ a[0][0]*v[0]+a[0][1]*v[1], a[1][0]*v[0]+a[1][1]*v[1] ];
}
// invert a
function invert (a) {
var ainv = [];
var det = a[0][0] * a[1][1] - a[0][1]*a[1][0];
ainv.push ([a[1][1]/det, -a[0][1]/det]);
ainv.push ([-a[1][0]/det, a[0][0]/det]);
return ainv;
}
var a = [[3,2],[3,4]];
var ainv = invert (a);
var ident = AxB(a,ainv);
print2x2 (a);
print2x2 (ainv);
print2x2 (ident);