利用Matlab求解线性规划问题
线性规划是一种优化方法,Matlab优化工具箱中有现成函数linprog对如下式描述的LP问题求解:
min f(x)
利用Matlab求解线性规划问题
线性规划是一种优化方法,Matlab优化工具箱中有现成函数linprog对如下式描述的LP问题求解:
min f(x)
.(约束条件): Ax<=b
(等式约束条件): Aeqx=beq
lb<=x<=ub
linprog函数的调用格式如下:
x=linprog(f,A,b)
x=linprog(f,A,b,Aeq,beq)
x=linprog(f,A,b,Aeq,beq,lb,ub)
x=linprog(f,A,b,Aeq,beq,lb,ub,x0)
x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)
[x,fval]=linprog(…)
[x, fval, exitflag]=linprog(…)
[x, fval, exitflag, output]=linprog(…)
[x, fval, exitflag, output, lambda]=linprog(…)
其中:
x=linprog(f,A,b)返回值x为最优解向量。
x=linprog(f,A,b,Aeq,beq) 作有等式约束的问题。若没有不等式约束,则令A=[ ]、b=[ ] 。
x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options) 中lb ,ub为变量x的下界和上界,x0为初值点,options为指定优化参数进行最小化。
Options的参数描述:Display显示水平。 选择’off’ 不显示输出;选择’Iter’显示每一 步迭代过程的输出;选择’final’ 显示最终结果。
[x,fval]=linprog(…) 左端 fval 返回解x处的目标函数值。
表1不同等级耕地种植不同作物的单产(单位:kg / hm2)
I等耕地
II等耕地
III等耕地
水稻
11 000
9 500
9 000
大豆
8 000
6 800
6 000
玉米
14 000
12 000
10 000
首先根据题意建立线性规划模型(决策变量设置如表2所示,表中xij 表示第种作物在第j等级的耕地上的种植面积。):
表2 作物计划种植面积(单位:hm2)
I等耕地
II等耕地
III等耕地
水稻
x11
x12
x13
大豆
x22
x21
x23
玉米
x31
x32
x33
约束方程如下:
耕地面积约束:
最低收获量约束:
非负约束:
(1)追求总产量最大,目标函数为:
(2)追求总产值最大,目标函数为:
根据求解函数linprog中的参数含义,列出系数矩阵,目标函数系数矩阵,以及约束条件等。
这些参数中没有的设为空。譬如,
(1)当追求总产量最大时,只要将参数
f=[-11000 –9500 –9000 –8000 –6800 –6000 –14000 –12000 -10000];
A=[ ;
;
;
- - - ;
- - - ;
- - -];
b=[100 300 200 -190000 -130000 -350000];
lb=[
数学建模讲座之三——利用Matlab求解线性规划问题linprog函数ppt课件 来自淘豆网m.daumloan.com转载请标明出处.