BOOST обратный вывод библиотеки -1. # IND

Я использую библиотеку 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 . . .

Я изменил код, и теперь результаты хорошие, но я не совсем уверен, в чем причина. Я укажу причину здесь, когда я обнаружу это … Определитель был нулевым, это была проблема, как ответил ниже г-н Ллама …

-1

Решение

Матрица 4×4 со всеми значениями, равными 3,0, является особая матрица и не имеет обратного, следовательно, неверная плавающая точка, которая возвращается.
Я бы порекомендовал проверить определитель матрицы, прежде чем запускать инвертирование.

Ваша проблема не проблема кода, это математическая проблема.

1

Другие решения


По вопросам рекламы [email protected]