我正在尝试使用mathjs 3.8.0中的lusolve
函数来求解线性系统。但是,我在解释输入的返回结果时遇到了一些麻烦。
我将根据文档中的示例进行解释:示例源开始
var m = [[1, 0, 0, 0], [0, 2, 0, 0], [0, 0, 3, 0], [0, 0, 0, 4]]; var x = math.lusolve(m, [-1, -1, -1, -1]); // x = [[-1], [-0.5], [-1/3], [-0.25]]
到目前为止,一切都很好 - 这代表了系统
1a = -1
2b = -1
3c = -1
4d = -1
解决方案显然是
a = -1
b = -0.5
c = -1/3
d = -0.25
如原始示例的评论中所述。实际返回值是一个数组,其值与输入向量的顺序相同,即[[-1], [-0.5], [-1/3], [-0.25]]
.
但是,现在我尝试切换到输入向量:
var m = [[1, 0, 0, 0], [0, 2, 0, 0], [0, 0, 0, 4], [0, 0, 3, 0]];
var x = math.lusolve(m, [-1, -1, -1, -1]);
我认为这应该代表系统
1a = -1
2b = -1
3d = -1
4c = -1
如果是这样,解决方案应该是
a = -1
b = -0.5
c = -0.25
d = -1/3
或[[-1], [-0.5], [-0.25], [-1/3]]
在 JavaScript 中。
但是,此输入的函数的实际返回值仍然 [[-1],[-0.5],[-1/3],[-0.25]]
是,就像原始输入向量排序一样。
这是为什么?返回系数的排序如何与输入向量的排序匹配?