2012-02-06 2 views
0

У меня есть плотная система уравнений типа Ax = b для решения в моей программе на C++, и я надеялся реализовать решение с использованием UBLAS в boost. В некоторых других вопросах я обнаружил, что люди используют расширение LAPACK, но, к сожалению, он, похоже, не является частью моей стандартной ускорительной установки (по крайней мере, в Debian), и мне не разрешено добавлять больше зависимостей.Решающая (плотная) линейная система Ax = b с использованием boost

Может ли кто-то вставить решение, которое не использует LAPACK или любые другие библиотеки?

+1

Если вы не вынуждены использовать uBlas, ознакомьтесь с http://eigen.tuxfamily.org/index.php?title=Main_Page – Anonymous

ответ

3

К сожалению, вы решаете линейную систему, которая требует LAPACK или написания собственного кода. Если вы не хотите LAPACK, ваш единственный вариант - написать свой собственный решатель. Разумеется, такой решатель может использовать uBLAS.

Если вам нужен код для этого, вы можете посмотреть на примере numerical recipes. Но, решая плотные линейные системы, очень богатый предмет, поэтому, возможно, он не может охватывать все его аспекты.

+0

. Написание решателя с нуля, который работает правильно, занимает много времени. Лучше всего использовать LAPACK или использовать библиотеку C++, которая обертывает LAPACK (например, [Armadillo] (http://arma.sourceforge.net)). – mtall