MATLAB で fmincon を使用しようとしていますが、何が問題なのかよくわかりません。私の機能は次のとおりです。
function f = myfun(x4)
f = (C * x4 - d) .^ 2;
end
そして私はそれを次のように呼びます:
lb = zeros(3, 1);
x0 = [10; 10; 10];
[x4, fvalx4, exitflagx4, outputx4, lambdax4] = fmincon(@myfun,x0,[],[],[],[],lb,[]);
しかし、私がそれを実行すると、
??? ==> mtimes の使用エラー 内部行列の次元は一致する必要があります。
ただし、確認したところ、C は 112x3、d は 112x1 で、x4 はまったく初期化されていません。これが解決しようとしているからです。「ダミー」x4 を作成すると、 (C * x4 - d) .^ 2 を問題なく実行できます。
何かご意見は?これは lsqr または lsqlin を lb 0 で使用するのと同じであり、これは lsqnonneg にも相当しますが、それがポイントです。これらのメソッドの結果をさまざまな方法で検証しようとしています。