|
|
|
|
@ -36,7 +36,7 @@ var kriging = function () {
@@ -36,7 +36,7 @@ var kriging = function () {
|
|
|
|
|
// Matrix algebra
|
|
|
|
|
var kriging_matrix_diag = function (c, n) { |
|
|
|
|
var Z = createArrayWithValues(0, n * n); |
|
|
|
|
for (i = 0; i < n; i++) Z[i * n + i] = c; |
|
|
|
|
for (var i = 0; i < n; i++) Z[i * n + i] = c; |
|
|
|
|
return Z; |
|
|
|
|
}; |
|
|
|
|
var kriging_matrix_transpose = function (X, n, m) { |
|
|
|
|
@ -59,26 +59,19 @@ var kriging = function () {
@@ -59,26 +59,19 @@ var kriging = function () {
|
|
|
|
|
Z[i * m + j] = X[i * m + j] + Y[i * m + j]; |
|
|
|
|
return Z; |
|
|
|
|
}; |
|
|
|
|
// Naive matrix multiplication
|
|
|
|
|
var kriging_matrix_chol = function (X, n) { |
|
|
|
|
var i, j, k, sum, p = Array(n); |
|
|
|
|
for (i = 0; i < n; i++) p[i] = X[i * n + i]; |
|
|
|
|
var kriging_matrix_multiply = function (X, Y, n, m, p) { |
|
|
|
|
var i, j, k, Z = Array(n * p); |
|
|
|
|
for (i = 0; i < n; i++) { |
|
|
|
|
for (j = 0; j < i; j++) |
|
|
|
|
p[i] -= X[i * n + j] * X[i * n + j]; |
|
|
|
|
if (p[i] <= 0) return false; |
|
|
|
|
p[i] = Math.sqrt(p[i]); |
|
|
|
|
for (j = i + 1; j < n; j++) { |
|
|
|
|
for (k = 0; k < i; k++) |
|
|
|
|
X[j * n + i] -= X[j * n + k] * X[i * n + k]; |
|
|
|
|
X[j * n + i] /= p[i]; |
|
|
|
|
for (j = 0; j < p; j++) { |
|
|
|
|
Z[i * p + j] = 0; |
|
|
|
|
for (k = 0; k < m; k++) |
|
|
|
|
Z[i * p + j] += X[i * m + k] * Y[k * p + j]; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
for (i = 0; i < n; i++) X[i * n + i] = p[i]; |
|
|
|
|
return true; |
|
|
|
|
return Z; |
|
|
|
|
}; |
|
|
|
|
// Cholesky decomposition
|
|
|
|
|
kriging_matrix_chol = function (X, n) { |
|
|
|
|
// Naive matrix multiplication
|
|
|
|
|
var kriging_matrix_chol = function (X, n) { |
|
|
|
|
var i, j, k, sum, p = Array(n); |
|
|
|
|
for (i = 0; i < n; i++) p[i] = X[i * n + i]; |
|
|
|
|
for (i = 0; i < n; i++) { |
|
|
|
|
@ -95,6 +88,7 @@ var kriging = function () {
@@ -95,6 +88,7 @@ var kriging = function () {
|
|
|
|
|
for (i = 0; i < n; i++) X[i * n + i] = p[i]; |
|
|
|
|
return true; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
// Inversion of cholesky decomposition
|
|
|
|
|
var kriging_matrix_chol2inv = function (X, n) { |
|
|
|
|
var i, j, k, sum; |
|
|
|
|
|