作者kilva (嗡嗡)
看板Math
標題[線代] 總和極小值
時間Sun Jan 17 15:33:32 2021
給定n個變數 a,b,c,d,....
及數個條件 f(a,b,...)>=M, g(a,b,...)>=N, ...
其中f、g為n個變數中部分變數的相和。
請問,所有n個變數總和的極小值要怎麼求?
----
舉例如下:
給定4個變數a、b、c、d,
在符合 a+b+d>=322、a+c+d>=292、c+d>=157 、 a>=0 、 c>=0 等條件下,
求a+b+c+d的極小值。
可求出 a+b+c+d 的極小值在 (135,30,0,157) 上,值為322,
在 a+b+d=322、a+c+d=292、c+d=157、c=0 相交處,而不在 a=0 的面上。
----
希望有具體的演算法或程式碼。
謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.36.136.56 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Math/M.1610868814.A.481.html
※ 編輯: kilva (114.36.136.56 臺灣), 01/17/2021 15:36:37
※ 編輯: kilva (114.36.136.56 臺灣), 01/17/2021 15:37:43
推 garymore : 以你舉的例子來說,求a+b+c+d的最小值,使用偏微分 01/17 17:18
→ garymore : ,並且引入Lagrange multipliers(只需要前三個條 01/17 17:18
→ garymore : 件),就可以算出最小值可以由c決定。所以當c最小, 01/17 17:18
→ garymore : 就有最小值322。 01/17 17:18
推 LPH66 : 如果你要的是程式的話, 你的問題是標準的線性規劃 01/18 02:02
→ LPH66 : 解線性規劃的程式很容易找得到 01/18 02:02
→ Pieteacher : 找一下 scipy.optimize 裡的 linprog 01/19 12:13