TridiagonalSystemSolver()
使用三对角矩阵算法(Tridiagonal Matrix Algorithm),
也称为托马斯算法(Thomas Algorithm),来求解一个系数矩阵为三对角矩阵的线性方程组。
内置方法
解一个三对角线性方程组。
效率优化说明:
线性时间。
Name | Type | Description |
---|---|---|
diagonal |
Array.<Number> |
长度为n 的数组,包含系数矩阵的对角线。 |
lower |
Array.<Number> |
长度为n - 1 的数组,包含系数矩阵的下对角线。 |
upper |
Array.<Number> |
长度为n - 1 的数组,包含系数矩阵的上对角线。 |
right |
Array.<Cartesian3> |
长度为n 的笛卡尔坐标数组,它是方程组的右边。 |
返回值:
长度为
n
的笛卡尔坐标数组,它是三对角方程组的解。
异常情况:
-
DeveloperError : diagonal 和 right 的长度必须相等。
-
DeveloperError : lower 和 upper 的长度必须相等。
-
DeveloperError : lower 和 upper 必须比对角线长度小1。
示例:
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);