fmincon()を使用して、最適化しようとしているベクトルのすべての値がゼロより大きいという制約をどのように課しますか?
ドキュメントによると、いくつかのパラメーターAとbが必要です。ここで、A *x≤bですが、Aを-1とb 0のベクトルにすると、代わりにx>0の合計に最適化されると思います。 0より大きいxの各値の。
あなたがそれを必要とする場合に備えて、ここに私のコードがあります。xと行列(multiplierMatrixと呼ばれる)の(コンポーネントごとの)積が列の合計がxである行列を作成するように、ベクトル(x)を最適化しようとしています。
function [sse] = myfun(x) % this is a nested function
bigMatrix = repmat(x,1,120) .* multiplierMatrix;
answer = sum(bigMatrix,1)';
sse = sum((expectedAnswer - answer).^2);
end
xGuess = ones(1:120,1);
[sse xVals] = fmincon(@myfun,xGuess,???);
問題をよりよく説明する必要がある場合はお知らせください。よろしくお願いします!