输入矩阵如下所示:
[ 1 2 4 ]
[ 4 5 6 ]
[ 7 8 9 ]
(MAT1)
Wolfram Alpha confirms it has an inverse.使用matrix.i()
(这意味着它使用快速反转)产生近似正确的结果
[ 1.0000 -4.6667 2.6667 ]
[ -1.0000 6.3333 -3.3333 ]
[ 1.0000 -2.0000 1.0000 ]
(MAT2)
但是通过编写matrix.i(true)
来启用慢速模式会导致它抛出logic_error
。 有什么理由会这样做吗?
我试图打开它的原因是将反转矩阵乘以
[ 15 ]
[ 24 ]
[ 35 ]
(MAT3)
产生错误的答案
[ -3.6667 ]
[ 20.3333 ]
[ 2.0000 ]
(MAT4)
[ -3.6667 ]
[ 5.3333 ]
[ 2.0000 ]
(mat5)
在乘法之前立即检查确认输入(mat3)是正确的,这让我相信快速反转创建了一个不正确的矩阵作为输出(mat4而不是mat5)< / em>的
......现在我想到了,快速逆是正确的,没有理由不正确......这是一个窘境。
主要问题是,如上所述,
任何原因matrix.i(true)
导致逻辑错误而matrix.i()
没有?