YALMIPを使用しようとすると問題が発生します。私は何かばかげたことをしていると思うので、誰かがそれが何であるかを指摘していただければ幸いです。
いくつかの SDP を解決しようとしています。目標を定義しない場合、YALMIP は解決策を返します (問題が実行可能であることを意味します)。しかし、目標を添付すると、YALMIP は問題が実行不可能であると返し、少し戸惑いました。
上記が発生する、私が調理できる最も単純なSDPのコードを次に示します。変数の宣言と制約の設定は次のとおりです。
y = sdpvar(6,1);
M = sdpvar(3,3);
C = [0,0,0,0,0,0; 0,0,0,0,0,0; -2,0,1.8,0,2,1; 0,0,0,0,0,0; 1,0,-1,0,-1.2,0;
0,0,0,0,0,0;];
F = [C*y==0, y(6) == 1, M>=0];
F = [F,M(1,1) == y(1), M(2,1) == y(2), M(3,1) == y(3),...
M(2,2) == y(4), M(3,2) == y(5), M(3,3) == y(6)];
今、YALMIPに実行可能な解決策を見つけるように頼むだけなら
solvesdp(F)
それは返す
info: 'Successfully solved (LMILAB)'
problem: 0
そしていくつかの実行可能な M と y (実際にそうであることを確認しました)。ただし、目的の「y(3) を最小化する」(または実際には y のエントリの任意の線形結合) を追加すると、
solvesdp(F,y(3))
問題が実行不可能であることを返します。
info: 'Infeasible problem (LMILAB)'
problem: 1
y と M は "NaN" トークンでいっぱいです。
よろしくお願いします。