Я довольно новичок в использовании Visual C ++ 2010 Express, но я не новичок в основах, и я пытаюсь выяснить, как использовать внешнюю библиотеку для выполнения оптимизации наименьших квадратов с ограничением границ.
Проще говоря, я хочу использовать линейные наименьшие квадраты, чтобы найти матрицу W из:
X * W = T
где
X is a matrix with 50 columns and 3 rows (50 x 3),
W is a column matrix with 50 elements (1 x 50) and
T is a column matrix with 3 element (1 x 50)
Ограничения на значения элементов W — давайте назовем элементы ‘w’.
0 <= w <= 1
Сделать это в MATLAB довольно просто, но мне нужно реализовать это на C ++. Я реализовал начальный бит моего кода для формулировки матриц X и T.
Есть ли какая-нибудь библиотека / функция, которую я могу использовать в Visual C ++ 2010 Express для оптимизации наименьших квадратов с ограничением границ? Я пытался использовать ALGLIB, LEVMAR и NLOPT.
ALGLIB требует, чтобы массивы определялись в собственном типе данных.
У LEVMAR очень мало информации об установке и какой функции мне нужно использовать.
NLOPT, похоже, не имеет функции для этого. Кроме того, я не могу заставить его работать, даже после того, как я сгенерировал файл lib, используя инструкции Вот и связал lib и исходные файлы в VC ++.
Может кто-нибудь помочь мне с любыми предложениями? Это действительно легко реализовать в MATLAB, но я боюсь, что мне нужно использовать C ++.
Задача ещё не решена.
Других решений пока нет …