次のような合計目的関数 (非線形ポートフォリオ最適化) があります。
minimize w(i)*w(j)*cv(i,j) for i = 1 to 10 and j = 1 to 10
- wは決定ベクトルです。
- cvは既知の 10 行 10 列の行列です
制約 (プロジェクト制約用の別の .m ファイル) と fmincon の実行 (下限/上限、初期値、および引数を指定して fmincon を呼び出すための別の .m ファイル) の定式化を行いました。
目的関数の実行方法がわかりません。私は、matlab ではなく GLPK での線形プログラミングに慣れているので、あまりうまくいっていません。
私は現在持っています:
ObjectiveFunction.m
function f = obj(w)
cv = [all the constants are in here]
i = 1;
j = 1;
n = 10;
var = 0;
while i <= n
while j<=n
var = var + abs(w(i)*w(j)*cv(i, j));
j = j + 1;
end
i = i + 1;
end
f = var
...しかし、これは機能していません。
どんな助けでも大歓迎です!前もって感謝します :)