Решение нормальной системы уравнений в C ++

Я хотел бы решить систему линейных уравнений:

 Ax = b

A - матрица nxm (не квадрат), b и x являются векторами nx 1 . Если A и b известны, n составляет порядка 50–100, а m - около 2 (другими словами, A может быть максимальным [100x2]).

Я знаю решение x : $ x = \ inv (A ^ TA) A ^ T b $

Я нашел несколько способов решить эту проблему: uBLAS (Boost), Lapack, Eigen и т. Д., Но я не знаю, насколько быстро работает процессор время вычисления 'x' с использованием этих пакетов. Я также не знаю, быстро ли это численно, зачем решать 'x'

. Для меня важно, чтобы время вычислений ЦП было как можно короче, и это хорошая документация, поскольку я новичок.

После решения нормальное уравнение Ax = b Я хотел бы улучшить свое приближение с помощью регрессионного метода и , возможно, позже с применением фильтра Калмана.

У меня вопрос, какая библиотека C ++ является более надежной и быстрой для описанных выше потребностей?

7
задан Eagle 3 January 2011 в 14:59
поделиться