0

Я хочу знать, как я могу решить следующую задачу минимизации с MATLAB:Выпуклая оптимизация для Matlab

А является полу-положительно определенная матрица. (Все собственные значения больше или iqual, чем 0) F = F (x_1, ..., x_n, y_1, y_2) = (F_1, ..., F_2n) - линейная функция.

я хочу найти (x_1, ..., x_n, y_1, y_2) так, что:

F * A * F»является минимальным. В переменных нет ограничений, но обратите внимание, что они существенно меньше длины вектора.

Я стараюсь minicime статистическое расстояние. Какие функции использовать не могу.

Заранее спасибо.

+1

Это домашнее задание? что ты уже испробовал? Где вы застряли? – Schorsch

+0

Нет. Это не домашнее задание. И попробовать нечего. Я просто спрашивал, есть ли у кого-нибудь новый решатель Matlab для моей проблемы. – Manuel

ответ

1

для безусловной оптимизации в MATLAB вы можете использовать fminunc. Для этого, вы можете определить функцию стоимости:

function z = costfun(x) 
f = F*A*F'; % where F is a function of x=[x_1,...y_n] 

затем вызвать fminunc найти минимум. Вектор x0 предоставляется в качестве отправной точки для поиска.

[x,zval] = fminunc(@costfun,x0); 
+1

Спасибо @ramino. Это интересная функция, о которой я не знал. Во всяком случае, я нашел определенную функцию для своей проблемы. x = quadprog (H, f, A, b, Aeq, beq). Проблема на самом деле может быть сформулирована как квадратичное программирование. – Manuel

Смежные вопросы