Могу ли я решить систему линейных уравнений в форме xA = b, используя Eigen, с A, разреженным?

Мне нужно преобразовать мой код MATLAB в C ++, который включает линейные уравнения в форме xA = 0.

Я знаю, что Эйген может иметь дело с линейными уравнениями Ax = b. Я спрашиваю: есть ли способ решить систему линейных уравнений xA = b, используя Eigen для C ++ (Visual Studio 2010), где A является разреженной матрицей? Если нет, то какую библиотеку я могу использовать?

Спасибо за любую помощь.

0

Решение

х * а = б
эквивалентно
A.transpose () * z = b.transpose ();
x = z.transpose ()
которая может быть решена для х.

Обратите внимание, что операции с хранилищем обходятся дешевле по сравнению с решением линейной системы.
A является разреженным, и разреженность остается той же самой для операции транспонирования.
Часто транспонирование — это просто флаг и изменение адресации элементов. С первого взгляда на документ это не относится к Эйгену. Но, как я уже говорил, это не так важно.

0

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector