输入矩阵如下所示:
[ 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()
不会?