C++ Собственная обратная матрица

Я пытаюсь вычислить обратную матрицу в С++, используя Eigen. Обратное вычисление неверно, так как я пытался умножить исходную матрицу на ее обратную и не получил матрицу идентичности. Я также проверил, является ли матрица сингулярной, вычислив ее определитель, но он не равен 0. Матрица представляет собой матрицу двойных значений динамического размера, которая заполняется значениями внутри функции. В коде это выглядит так: Eigen::MatrixXd inverse_ee = knotenadmittanzmatrix_ee.inverse();

Я добавил фотографии матрицы nodenadmittanzmatrix_ee (Knotenadmittanz Extern-Extern), и получил обратную (Knotenadmittanz Extern-Extern invertiert). введите здесь описание изображения

введите здесь описание изображения

Может ли кто-нибудь помочь мне с этой проблемой?


person Claire    schedule 08.02.2021    source источник
comment
Похоже, что определитель вашей матрицы действительно равен 0. Не странно ли, что вся матрица заполнена одним и тем же значением? Это может быть источником вашей проблемы.   -  person BNilsou    schedule 08.02.2021
comment
Что вы подразумеваете под не идентификационной матрицей? Насколько он отличается от него?   -  person Damien    schedule 08.02.2021
comment
Нет, матрица со всеми одинаковыми значениями является перевернутой.   -  person Claire    schedule 08.02.2021
comment
Когда я умножаю матрицу на обратную, в результате получается строка с числами около -20. Это то, что я имел в виду, говоря о не единичной матрице.   -  person Claire    schedule 08.02.2021
comment
Можете ли вы вывести определитель исходной матрицы?   -  person Marc Glisse    schedule 08.02.2021
comment
Определитель 7.2e-08   -  person Claire    schedule 08.02.2021
comment
7.2e-8 по существу равен нулю по сравнению с масштабом вашей матрицы. Вы можете попытаться вычислить псевдоинверсию, если это поможет. (Примечание: пожалуйста, опубликуйте свою матрицу в виде текста, а не изображения, на случай, если кто-то захочет попробовать это локально).   -  person chtz    schedule 08.02.2021
comment
Отвечает ли это на ваш вопрос? Eigen не может дать правильную обратную матрицу (c++)   -  person chtz    schedule 09.02.2021