其中 c 和 x 為 n 維列向量, a 、 aeq 為適當維數的矩陣,b 、beq 為適當維數的列向量。
基本函式形式為 linprog(c,a,b),它的返回值是向量 x 的值。還有其它的一些函式呼叫形
式(在 matlab 指令窗執行 help linprog 可以看到所有的函式呼叫形式),如:
[x,fval]=linprog(c,a,b,aeq,beq,lb,ub,x0,options)
這裡 fval 返回目標函式的值,lb 和 ub 分別是變數 x 的下界和上界, 0 x 是 x 的初始值,
options 是控制引數。
轉換為標準形式,運用書上的公式可求解出最優解。
2,求解指派問題的匈牙利演算法
由於指派問題的特殊性,又存在著由匈牙利數學家 konig 提出的更為簡便的解法
—匈牙利演算法。演算法主要依據以下事實:如果係數矩陣 ( )ij c = c 一行(或一列)中每一元素都加上或減去同乙個數,得到乙個新矩陣 ( ) b = bij ,則以c 或 b 為係數矩陣的指派問題具有相同的最優指派。
把矩陣做線性變換得到的矩陣擁有相同特殊解
目的是化簡係數矩陣,化簡方法是
1、現將矩陣每一行減去該行的最小值,對出現的0標上*,要保證每行有標記的0不在同一列
2、對沒有標記的0的行做標記^
3、對^標記的行的0元素所在列做標記 ^
4、對^列中有 的行做標記
5、重複3、4步驟,知道找不到對應的0為止
6、對有^標記的行列畫直線,找出未被劃掉的元素中的最小值
7、讓有^標記的行減去該元素,讓有 ^標記的列加上該元素(0元素除外)
8、上述過程可重複執行,直到出現可重複元素為止3
3.非線性規劃問題*(目標函式中包含非線性函式)
出錯不知道原因
主程式
3
數學建模 線性規劃(學習筆記)
我們常常需要用到線性規劃來幫助我們解決日常生活當中的實際問題,比如說你家裡有三個小孩abc,在家做飯突然發現沒有鹽,醬油和醋了,你三個小孩自告奮勇取購買,為了不打擊孩子的積極性,你決定讓乙個孩子負責一項食品的購買,假如知道了三個小孩分別購買每項食品的時間,如何使得總時間最小 指派問題 可以看出線性規...
數學建模 非線性規劃
2014年4月17日 規劃方法是建模中的常用手段。那麼顯然要人有我優了,非線性規劃就是乙個不錯的加分點。下面介紹幾種常用的非線性規劃技巧 這裡要說一下無約束法,規劃問題的困難在於求解,特別是約束比較奇怪的。於是在比賽中把有約束的規劃問題轉換成無約束的規劃問題就成了乙個大大的加分點。另外dfp之類的包...
數學建模 非線性規劃
如果目標函式或約束條件中包含非線性函式,則稱這種規劃問題為非線性規劃問題,簡寫為np。二次規劃是非線性規劃中的特例,由於二次規劃有通用的解法,所以單獨討論,而其他的非線性規劃問題沒有通用的解法。在matlab中,非線性規劃的數學模型可以寫為下面的形式 mi nf x st.ax b aeq x be...