1

输入矩阵如下所示:

[ 1 2 4 ]
[ 4 5 6 ]
[ 7 8 9 ]

(垫子1)

Wolfram Alpha 证实它有一个逆。使用matrix.i()(这意味着它使用快速反转)产生近似正确的结果

[  1.0000 -4.6667  2.6667 ]
[ -1.0000  6.3333 -3.3333 ]
[  1.0000 -2.0000  1.0000 ]

(垫子2)

但是通过写入打开慢速模式matrix.i(true)会导致它抛出一个logic_error. 有什么理由这样做吗?




我试图打开它的原因是将倒置矩阵乘以向量

[ 15 ]
[ 24 ]
[ 35 ]

(垫子3)

产生一个不正确的答案

[ -3.6667 ]
[ 20.3333 ]
[  2.0000 ]

(mat4)

什么时候应该是这个,或者

[ -3.6667 ]
[  5.3333 ]
[  2.0000 ]

(mat5)

在乘法之前检查确认输入(mat3)是正确的,这让我相信快速逆运算创建了一个不正确的矩阵作为输出(mat4 而不是 mat5)

...现在想起来,快速逆是正确的,没有理由不正确...这是一个难题。

主要问题是,如上所述,

任何原因matrix.i(true)都会导致逻辑错误,而matrix.i()不会?

4

0 回答 0