UNPKG

@sgratzl/science

Version:

Scientific and statistical computing in JavaScript.

26 lines (25 loc) 591 B
/** * Solves tridiagonal systems of linear equations. * * Source: http://en.wikipedia.org/wiki/Tridiagonal_matrix_algorithm * * @param {number[]} a * @param {number[]} b * @param {number[]} c * @param {number[]} d * @param {number[]} x * @param {number} n */ export default function tridag(a, b, c, d, x, n) { var i, m; for (i = 1; i < n; i++) { m = a[i] / b[i - 1]; b[i] -= m * c[i - 1]; d[i] -= m * d[i - 1]; } x[n - 1] = d[n - 1] / b[n - 1]; for (i = n - 2; i >= 0; i--) { x[i] = (d[i] - c[i] * x[i + 1]) / b[i]; } };