線性規劃的目標函式可以是求最大值,也可以是求最小值,約束條件的不等號可以是小於號也可以是大於號。為了避免這種形式多樣性帶來的不便,matlab 中規定線性 規劃的標準形式為
\[minc^tx \\
x \\
ax <= b\\
aeqx=beq\\
lb<=x<=ub\\
\]其中 c 和 x 為 n 維列向量, a 、 aeq 為適當維數的矩陣,b 、beq 為適當維數的列向****量**。 例如線性規劃
\[maxc^tx \quad s.t. \quad ax>=b \\
的matlab標準型為\\
min-c^tx \quad s.t. \ -ax <= -b
\]基本函式形式為 linprog(c,a,b),它的返回值是向量 x 的值。還有其它的一些函式呼叫形式(在 matlab 指令窗執行 help linprog 可以看到所有的函式呼叫形式),如:
[x,fval]=linprog(c,a,b,aeq,beq,lb,ub,x0,options) 這裡fval 返回目標函式的值,lb 和 ub 分別是變數 x的下界和上界,x0是x的初始值,options 是控制引數。
例題:\[max\quad z = 2x_1+3x_2-5x_3 \\
x_1+x_2+x_3=7\\
2x_1-5x_2+x_3>=10\\
x1+3x_2+x_3<=12\\
x1,x2,x3>=0
\]解:
c=[2;3;-5];
a=[-2,5,-1;1,3,1];b=[-10;12];
aeq=[1,1,1];
beq=7;
x=linprog(-c,a,b,aeq,beq,zeros(3,1))
value = c'*x;
第乙個數模相關演算法,每天更新乙個,(ง •_•)ง!!! java演算法系列
棧的概念 棧是一種特殊的線性表,堆疊的資料元素以及資料元素之間的關係和線性表是完全一樣的。差別是線性表是在任意位置進行插入和刪除操作,棧是只允許在固定的一端進行插入和刪除,棧的插入和刪除只允許在棧頂,棧的插入和刪除通常稱為進棧和出棧。資料集合 每個資料元素的資料型別可以是任意的型別 操作的集合 進棧...
演算法系列 Move Zeroes
given an array nums,write a function to move all 0 s to the end of it while maintaining the relative order of the non zero elements.for example,given ...
演算法系列 Missing Number
given an array containing n distinct numbers taken from 0,1,2,n,find the one that is missing from the array.for example,given nums 0,1,3 return 2.note...