數模常用演算法系列Matlab實現 線性規劃

2022-03-05 10:43:08 字數 975 閱讀 4704

線性規劃的目標函式可以是求最大值,也可以是求最小值,約束條件的不等號可以是小於號也可以是大於號。為了避免這種形式多樣性帶來的不便,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...