GNU Plot で解く
第1章 No.5 / 無料の数値計算ソフトウエア
では、同様に GNU Plot を用いて答えを求めてみよう。こちらは無料のソフトウエアで一発で解答を得られる。
- 9x + 5y ≦ 50
- x + 5y ≦ 10
- x ≧ 0, y ≧ 0
- 5x + 10y → max
の解答は以下のようになる。まず 双対定理 により、以下のように式を変形する必要がある。
- 9x + 5y ≧ 50
- x + 5y ≧ 10
- x ≧ 0, y ≧ 0
- 5x + 10y → min
このプログラムは 「単体法」 を用いている。以下のように入力しよう。

その結果、x = 5、y = 1 のとき、最小値 35 (最大値 35) をとることを示している。
以下の問題では lp 関数ではうまく実行できない場合があるので こちら から別の関数 (pclp) を用意しよう。pclp を用いて上の問題を解いてみよう。

- 9x + 5y ≦ 50
- x + 5y ≦ 10
- 7x + 20y ≦ 50
- x ≧ 0, y ≧ 0
- 5x + 10y → max
実際には上と同様に「双対問題」に変換してから入力するのであるが、明らかなので以下のように入力しよう。


目的関数を 5x + 10y → max に変えただけであるが、x = 150/29 = 5.14223、y = 20/29 = 0.71772 のとき最大で、最大値 950/29 = 32.888 であることを示している。