Uses the Tridiagonal Matrix Algorithm, also known as the Thomas Algorithm, to solve
a system of linear equations where the coefficient matrix is a tridiagonal matrix.
- Source:
Methods
(static) solve(diagonal, lower, upper, right) → {Array.<Cartesian3>}
Solves a tridiagonal system of linear equations.
Parameters:
Name | Type | Description |
---|---|---|
diagonal |
Array.<Number> | An array with length n that contains the diagonal of the coefficient matrix. |
lower |
Array.<Number> | An array with length n - 1 that contains the lower diagonal of the coefficient matrix. |
upper |
Array.<Number> | An array with length n - 1 that contains the upper diagonal of the coefficient matrix. |
right |
Array.<Cartesian3> | An array of Cartesians with length n that is the right side of the system of equations. |
- Source:
Throws:
-
-
diagonal and right must have the same lengths.
- Type
- DeveloperError
-
-
-
lower and upper must have the same lengths.
- Type
- DeveloperError
-
-
-
lower and upper must be one less than the length of diagonal.
- Type
- DeveloperError
-
Returns:
An array of Cartesians with length
n
that is the solution to the tridiagonal system of equations.
- Type
- Array.<Cartesian3>
Example
var lowerDiagonal = [1.0, 1.0, 1.0, 1.0];
var diagonal = [2.0, 4.0, 4.0, 4.0, 2.0];
var upperDiagonal = [1.0, 1.0, 1.0, 1.0];
var rightHandSide = [
new Cesium.Cartesian3(410757.0, -1595711.0, 1375302.0),
new Cesium.Cartesian3(-5986705.0, -2190640.0, 1099600.0),
new Cesium.Cartesian3(-12593180.0, 288588.0, -1755549.0),
new Cesium.Cartesian3(-5349898.0, 2457005.0, -2685438.0),
new Cesium.Cartesian3(845820.0, 1573488.0, -1205591.0)
];
var solution = Cesium.TridiagonalSystemSolver.solve(lowerDiagonal, diagonal, upperDiagonal, rightHandSide);