+ Y/ U- \4 F- ]; d
数学建模算法之优化模型【线性规划问题、非线性规划问题、整数规划问题、二次规划问题】1. 线性规划问题(LP)3 z7 E' e* s& f, Y
线性规划问题是要最小化或最大化一个受限于一组有限的线性约束的线性函数。* I0 V7 j. [& n# Z! x
* y4 _+ M( V& P' n, d* m
`+ ?9 M1 B! i3 c8 N$ D9 r" t/ vMatlab 中规定线性规划的标准形式为 # K% y+ U5 R4 z" S# P E7 t4 _ - D$ t" l% a0 Q 1 r/ `) t4 j3 j/ V+ O( |第一个式子为目标函数,s.t. 式是约束条件。其中 c 和 x 为 n 维列向量,A、Aeq 为适当维数矩阵,b、beq 为适当维数列向量* Z4 v R0 p: [* l! }; s/ r; n6 |
. T5 g4 u. ^& t
" D+ D+ G5 N9 i* q, Z& k8 q 在 matlab 中,线性规划的函数为 linprog() ,有两种常用形式:- @$ I$ e: s! t& `: O3 u* U
X = linprog(f,A,b,Aeq,beq,LB,UB,X0) 8 Z1 E& |3 L/ f! M& S [X,FVAL]=linprog(f,A,b,Aeq,beq,LB,UB,X0) 2 V, n# j6 ~/ C返回的值 X 是向量 x 的值,FVAL 是目标函数的值,LB 和 UB 分别是变量 x 的下界和上界, 是 x 的初始值。) p. V; B8 N/ l+ @
% `; Y! H9 h7 i 7 ]# A) R6 |5 W1 u0 K ~1.2 应用例子* C- ?9 W; I: U. U" b, F0 v' f
求下列线性规划问题: ; Z: w- d2 g" I' x( J( \+ q6 |& i7 h4 w% d) K) m' c& H. ~0 f
L' L' V' m( {* d0 {" Q: B. F
依据 Matlab 的标准,默认求解是求最小值,而本例是求的最大值,把 z 的系数变为相反数,即 -1 就好了,同理下面的大于等于号也做同样处理,然后没有上界 UB,下界 LB 为三个变量都为 0,也就是一个全零的矩阵 zeros(3, 1) 0 f8 _) f% m8 Q; p& `6 |0 R; i' M' q; F6 g' C8 ^8 D