Мне нужно преобразовать мой код MATLAB в C ++, который включает линейные уравнения в форме xA = 0.
Я знаю, что Эйген может иметь дело с линейными уравнениями Ax = b. Я спрашиваю: есть ли способ решить систему линейных уравнений xA = b, используя Eigen для C ++ (Visual Studio 2010), где A является разреженной матрицей? Если нет, то какую библиотеку я могу использовать?
Спасибо за любую помощь.
х * а = б
эквивалентно
A.transpose () * z = b.transpose ();
x = z.transpose ()
которая может быть решена для х.
Обратите внимание, что операции с хранилищем обходятся дешевле по сравнению с решением линейной системы.
A является разреженным, и разреженность остается той же самой для операции транспонирования.
Часто транспонирование — это просто флаг и изменение адресации элементов. С первого взгляда на документ это не относится к Эйгену. Но, как я уже говорил, это не так важно.
Других решений пока нет …