Matlab 线性规划实践

Matlab 线性规划实践

以下题目选自寇玮华主编的运筹学教材课后习题

题一

求解

\[max\ z=x_1+x_2 \\ s.t. \begin{equation} \left\{ \begin{array}{**lr**} 2x_1+x_2\leq8 \\ -x_1+x_2\leq2 \\ x_1+x_2\geq2 \\ x_1,x_2\geq0 \end{array} \right. \end{equation} \]

求解代码

f=[-1 -1]
A=[2 1;-1 1;-1 -1]
b=[8 2 2]
[x,y]=linprog(f,A,b,[],[],zeros(2,1));
x,y=-y

可以求得最优解为

\[x_1=2,x_2=4 \\ z=6 \]

题二

求解

\[max\ z=2x_1-2x_2+3x_3 \\ s.t. \begin{equation} \left\{ \begin{array}{**lr**} x_1+x_2+x_3\leq18 \\ x_1+2x_2-x_3\leq4 \\ -x_1+x_3\leq6 \\ x_1,x_2,x_3\geq0 \end{array} \right. \end{equation} \]

求解代码

f=[-2 2 -3]
A=[1 1 1;1 2 -1;-1 0 1]
b=[18 4 6]
[x,y]=linprog(f,A,b,[],[],zeros(3,1));
x,y=-y

可以求得最优解为

\[x_1=6,x_2=0,x_3=12 \\ z=48 \]

题三

求解

\[max\ z =2x_1+3x_2-5x_3 \\ s.t. \begin{equation} \left\{ \begin{array}{**lr**} x_1+x_2+x_3=7 \\ 2x_1-4x_2+x_3\geq10\\ x_1,x_2,x_3\geq0 \end{array} \right. \end{equation} \]

求解代码

f=[-2 -3 5]
A=[-2 4 -1]
b=[-10]
Aeq=[1 1 1]
beq=[7]
[x,y]=linprog(f,A,b,Aeq,beq,zeros(3,1));
x,y=-y

可以求得最优解为

\[x_1=6.3333,x_2=0.6667,x_3=0 \\ z=14.6667 \]