Я пишу программу с Armadillo C++ (4.400.1)Armadillo комплекс разреженная матрица, обратная
У меня есть матрица, которая должна быть редкими и сложными, и я хочу, чтобы вычислить обратную такой матрицы. Поскольку он разрежен, он может быть псевдообратным, но я могу гарантировать, что матрица имеет полную диагональ.
В документации API из Армадилло, он упоминает метод .i()
для вычисления обратной матрицы любой, но sp_cx_mat
члены не содержат такой метод, а inv()
или pinv()
функции не могут справиться с sp_cx_mat
типа, по-видимому.
sp_cx_mat Y;
/*Fill Y ensuring that the diagonal is full*/
sp_cx_mat Z = Y.i();
или
sp_cx_mat Z = inv(Y);
Ни один из них не работает.
Я хотел бы знать, как вычислить обратную матрицу типа sp_cx_mat
.
Каковы размеры? X * X или X * Y? – Surt
Матрица квадратная, поэтому X на X –
Обратный к разреженной матрице не обязательно разрежен. Вам действительно нужно обратное к разреженной матрице? Вся литература, которую я видел после быстрого поиска, рекомендует решить основную проблему по-другому. То есть используйте итерационные методы (или другие) для решения Ax = b. – Unapiedra