こんにちは、MATLAB コマンドを使用して二重の問題を解決する方法を誰かが知っているかどうか疑問に思っていましたlinprog
。それが文書化されている方法は、主な問題を解決するのに非常に役立つようですが、二重の問題を解決する方法がわかりません。
たとえば、MATLABlinprog
は文書化されているコマンドを使用して解決できます。
max f(x) = 5x1 + 4x2 + 6x3
subject to
x1 – x2 + x3 ≤ 20
3x1 + 2x2 + 4x3 ≤ 42
3x1 + 2x2 ≤ 30
0 ≤ x1, 0 ≤ x2, 0 ≤ x3
しかし、次のコマンドを使用して二重の問題を解決する方法がわかりません。
min f(y) = 20y1 + 42y2+ 30y3
subject to
y1 + 3y2 + 3y3 >= 5
-y1 + 2y2 +2y3 >= 4
y1 + 4y2 >= 6
0 ≤ y1, 0 ≤ y2, 0 ≤ y3
同じ方法で入力し、行列 A と b ベクトルを否定して不等式を反転しようとしましたが、結果は期待したものではありませんでした。
f = [ 20; 42; 30];
A = -[1 3 3
-1 2 2
1 4 0];
b = -[5; 4; 6];
lb = zeros(3,1);
[x,fval,exitflag,output,lambda] = linprog(f,A,b,[],[],lb);
私は線形計画法を初めて使用し、シンプレックスを使用して手早く問題をチェックしたいと考えています。前もって感謝します。私の質問が明確であることを願っています。