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);