Выпуклая оптимизация для Matlab

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

А является полуположительной определенной матрицей. (Все собственные значения больше или равны 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 'является минимальным. В переменных нет ограничений, но обратите внимание, что они существенно меньше, чем длина вектора.

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

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

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);
Другие вопросы по тегам