C/C++ solve matric A*X=B, handler2006, 23-Апр-12, 14:00 [смотреть все]Здравствуйте! Как ни стараюсь, самостоятельно найти библиотеку для решения СЛАУ не смог. Искал в boost (там такого нет) и alglib(есть метод но почему-то не компилится) Вы не могли бы посоветовать мне хорошую библиотеку для работы с матрицами (решение СЛАУ, нахождения собственных чисел, векторов и т.д.) Спасибо,
|
- C/C++ solve matric A*X=B, DeadMustdie, 10:26 , 24-Апр-12 (1)
- C/C++ solve matric A*X=B, Andrey Mitrofanov, 10:38 , 24-Апр-12 (2)
- C/C++ solve matric A*X=B, handler2006, 11:23 , 24-Апр-12 (3)
Знаю, что вопрос глупый и заезженный, однако, самостоятельно, зная про boost, google, lapack, etc. не смог найти ответ
- C/C++ solve matric A*X=B, handler2006, 12:11 , 25-Апр-12 (4)
Всем спасибо за участие - со скрипом разобрался (то есть написал функцию, но еще не проверял правильность вычислений). Далее привожу рабочий пример кода функции, решающей СЛАУ на boost: #include <boost/numeric/ublas/lu.hpp> #include <boost/numeric/ublas/matrix.hpp> #include <boost/numeric/ublas/vector.hpp>using namespace boost::numeric::ublas; template<class T> void solve(matrix<T> &A, vector<T> &X, vector<T> &B) { permutation_matrix<T> P(B.size()); lu_factorize(A,P); X = B; lu_substitute(A,P,X); }
- C/C++ solve matric A*X=B, deadmustdie, 14:51 , 14-Май-12 (5)
- C/C++ solve matric A*X=B, handler2006, 16:06 , 14-Май-12 (6)
Странно, что в boost нет явного метода solve(), как, к примеру, в armadillo, ведь последняя написана на boost, Как, собственно нет функций получения обратных матриц и прочих тривиальных распространенных матричных вычислений.
|