27 lines
690 B
JavaScript
27 lines
690 B
JavaScript
// IdentityMatrix is a "subclass" of Matrix
|
|
function IdentityMatrix(n) {
|
|
this.height = n;
|
|
this.width = n;
|
|
this.mtx = [];
|
|
for (var i = 0; i < n; i++) {
|
|
this.mtx[i] = [];
|
|
for (var j = 0; j < n; j++) {
|
|
this.mtx[i][j] = (i == j ? 1 : 0);
|
|
}
|
|
}
|
|
}
|
|
IdentityMatrix.prototype = Matrix.prototype;
|
|
|
|
// the Matrix exponentiation function
|
|
// returns a new matrix
|
|
Matrix.prototype.exp = function(n) {
|
|
var result = new IdentityMatrix(this.height);
|
|
for (var i = 1; i <= n; i++) {
|
|
result = result.mult(this);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
var m = new Matrix([[3, 2], [2, 1]]);
|
|
[0,1,2,3,4,10].forEach(function(e){print(m.exp(e)); print()})
|