equal
deleted
inserted
replaced
|
1 (function(){science.lin = {}; |
|
2 /** |
|
3 * Solves tridiagonal systems of linear equations. |
|
4 * |
|
5 * Source: http://en.wikipedia.org/wiki/Tridiagonal_matrix_algorithm |
|
6 * |
|
7 * @param {number[]} a |
|
8 * @param {number[]} b |
|
9 * @param {number[]} c |
|
10 * @param {number[]} d |
|
11 * @param {number[]} x |
|
12 * @param {number} n |
|
13 */ |
|
14 science.lin.tridag = function(a, b, c, d, x, n) { |
|
15 var i, |
|
16 m; |
|
17 for (i = 1; i < n; i++) { |
|
18 m = a[i] / b[i - 1]; |
|
19 b[i] -= m * c[i - 1]; |
|
20 d[i] -= m * d[i - 1]; |
|
21 } |
|
22 x[n - 1] = d[n - 1] / b[n - 1]; |
|
23 for (i = n - 2; i >= 0; i--) { |
|
24 x[i] = (d[i] - c[i] * x[i + 1]) / b[i]; |
|
25 } |
|
26 }; |
|
27 })() |