我使用BOOST库来反转矩阵,它给了我不好的结果,比如-1。#IND
我想知道是否有人遇到过这个问题。
代码是这样的:
void tryLib(){
AG_Matrix AG_Matrix_1=AG_Matrix(4,4,3.0);
AG_Matrix AG_Matrix_4=AG_Matrix_1.Inverse();
std::cout<<AG_Matrix_4(1,1)<<'\n';
}
AG_Matrix
是一个类型定义,控制台输出是:
-1.#IND
Press any key to continue . . .
我修改了代码,结果现在很好,但我不太确定原因是什么。我会在这里提到原因,当我发现它时......决定因素是零,这就是拉玛先生在下面回答的问题......
答案 0 :(得分:1)
所有值等于3.0的4x4矩阵是singular matrix且没有反转,因此返回的无效浮点数。
我建议在运行反转之前检查矩阵的行列式。
您的问题不是代码问题,这是一个数学问题。