Matlab线性规划
线性规划
线性规划的标准形式
\[\underset{x}{min}{\ c^Tx}\ s.t.\ Ax \leqslant b
\]
例如,线性规划为:
\[\underset{x}{min}{\ c^Tx} \ s.t. \ Ax \geqslant b
\]
其matlab标准形式为:
\[\underset{x}{min}{\ -c^Tx}\ s.t. -AX \leqslant -b
\]
matlab指令为:
【例】求解线性规划问题:
\[min\ z = 2x_1+3x_2+x_3
\]
\[s.t.\begin{cases}
x_1+4x_2+2_x3 \geqslant 8\\
3x_1+2x_2 \geqslant 6\\
x_1,x_2,x_3 \geqslant 0
\end{cases}
\]
编写matlab程序如下:
c = [2;3;1];
a = [1,4,2;3,2,0];
b = [8;6]
[x,y] = linprog(c,-a,-b,[],[],zeros(3,1))
这里-a,-b即是为了将不等式化为标准形式$$(Ax \geqslant b化成 -Ax \leqslant -b)$$
参考书籍:Matlab在数学中的应用(第二版)卓金武