0

次の最小化問題を matlab で解決する方法を知りたいです。

A は半正定行列です。(すべての固有値は 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' は最小です。変数に制限はありませんが、ベクトルの長さよりかなり短いことに注意してください。

統計的距離を最小限に抑えようとしています。使用する関数を Web で見つけることができません。

前もって感謝します。

4

1 に答える 1

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);
于 2013-08-27T19:55:20.390 に答える