fmincon
次の形式で MATLAB 最適化ツールボックスの機能を実行しようとしています。
fmincon(@fun,A,b,Aeq,beq,lb,ub)
解決策が見つかりません
実行可能な解決策が見つかりません。
次のコードで境界をテストして、トラブルシューティングを行いました。
f = zeros(size(x0));
xnew = linprog(f,A,b,Aeq,beq,lb,ub)
これはうまくいきませんでしたが、Aeq=sparse(Aeq);A=sparse(A);
魔法のようにやったときはうまくいきました! fmincon
しかし、スパースは!には機能しません。
それに加えて、次の警告が表示されます。
行列は作業精度に対して特異です
私が走るときfmincon
。この行列は関数内の行列だと思いfmincon
ます。しかし、上記の経験がまばらであるため、問題は私の行列に関するものだと思います。これが私の行列の例です:
A =0.3333 -0.3333 Aeq = 1 1
0.6667 0.3333
0.3333 0.6667
それで、何が問題なのか、どうすれば解決できるのか分かりますか?
ちなみに、私の線形問題は、 の 4 つの可能なアルゴリズムのうち、「アクティブ セット」アルゴリズムでのみ解決できますfmincon
。しかし、これは制約に厳密には従わず、制約に違反する結果になることがあります。
アドバイスをいただければ幸いです。