0

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。しかし、これは制約に厳密には従わず、制約に違反する結果になることがあります。

アドバイスをいただければ幸いです。

4

0 に答える 0