星期五, 12月 18, 2009

用 OpenOffice.org Calc 替代 Excel 求解線性規劃問題

前面曾經提到過使用免費、自由的數學計算軟體 Maxima / wxMaxima 解線性規劃問題
用Maxima計算線性規劃Linear Programming問題
現在,我要用免費的辦公室軟體 OpenOffice.org 來求解線性劃,同前面的範例,我們有一組線性規劃模式:


我們打開 OpenOffice.org Calc 先輸入目標式:
openoffice_linear_Programming_01
線性規劃求解工具,它會自動編更 x,y (B2和C2兩儲存格)裡的值,為了方便,我們可以先在B2和C2兩儲存格裡各先填入數值1。
E3儲存格為目標函數你可以參考上圖裡我的寫法,也可以直接寫成:
=2400*B2+1800*C2
接下來輸入條件式就比較囉嗦一點可參考下面圖解:
openoffice_linear_Programming_02
再叮嚀一次,在這裡,我們的 x,y 已經被代換成 B2 和 C2 了,所以

條件式1的係數
B4儲存格=3*B2
C4儲存格=1.5*C2
條件式2的係數
B5儲存格=1*B2 或 =B2 (因為1乘上任意數還是等於原數值)
C5儲存格=2*C2
下面E4和E5這兩個儲存格,則分別填入完整的條件函式
E4儲存格=B4+C4
E5儲存格=B5+C5


快完成了,我們再來找出 OpenOffice.org Calc 求解線性規劃的工具
openoffice_linear_Programming_03

openoffice_linear_Programming_04
接著我們參照上圖,依序填入。
#這裡比較重要的是,除了「依變更儲存格」以外,我們都只能輸一個儲存格欄位。
完成後,我們按下「解決」。

openoffice_linear_Programming_05
從上圖,我們可以得知,當 x=2 , y=4 時,我們有最大值 12000

重點提示:
求解工具會嘗試組合「依變更儲存格」裡的數值(在這裡,我們是B2和C2儲存格),再因B2和C2儲存格數值的變動,連帶條件式一的 B4、C4、E4 和條件式二的 B5、C5、E5 連帶變動。

常見錯誤:
「目標儲存格」(範例中為E3)忘了填寫函數,使得與「依變更儲存格」沒有連動。
「儲存格參照」(範例中為E4和E5)填寫進去的也不是函數,使得與「依變更儲存格」沒有連動。

沒有留言:

張貼留言

創用 CC 授權條款
瑀的貓、田園與電腦點點滴滴何崧瑀製作,以創用CC 姓名標示-非商業性-禁止改作 3.0 台灣 授權條款釋出。