15利用Matlab优化工具linprog求解线性规划问题

上传人:s9****2 文档编号:458282821 上传时间:2023-03-29 格式:DOCX 页数:6 大小:18.48KB
返回 下载 相关 举报
15利用Matlab优化工具linprog求解线性规划问题_第1页
第1页 / 共6页
15利用Matlab优化工具linprog求解线性规划问题_第2页
第2页 / 共6页
15利用Matlab优化工具linprog求解线性规划问题_第3页
第3页 / 共6页
15利用Matlab优化工具linprog求解线性规划问题_第4页
第4页 / 共6页
15利用Matlab优化工具linprog求解线性规划问题_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《15利用Matlab优化工具linprog求解线性规划问题》由会员分享,可在线阅读,更多相关《15利用Matlab优化工具linprog求解线性规划问题(6页珍藏版)》请在金锄头文库上搜索。

1、 15.利用Matlab求解线性规划问题线性规划是一种优化方法,Matlab优化工具箱中有现成函数linprog对如 下式描述的LP问题求解:%min fx%s.t .(约束条件):Ax=b%(等式约束条件):Aeqx=beq% lb=x=ublinprog函数的调用格式如下:x=linprog(f,A,b)x=linprog(f,A,b,Aeq,beq)x=linprog(f,A,b,Aeq,beqJb,ub)x=linprog(f,A,b,Aeq,beqJb,ub,x0)x=linprog(f9A9b,Aeq9beq9lb9ub9x09options)xfal=linprog()x, fv

2、al, 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显示水平。选择

3、off不显示输出;选择Iter显示每一步迭代过程 的输出;选择final显示最终结果。MaxFunEvals函数评价的最大允许次数Maxiter最大允许迭代次数TolX x处的终止容限x,fval=linprog()左端fval返回解x处的目标函数值。x,fval,exitflag,output,lambda=linprog(f,A,b, Aeq,beq,lb,ub,x0)的输出部分:exitflag描述函数计算的退出条件:若为正值,表示目标函数收敛于解x 处;若为负值,表示目标函数不收敛;若为零值,表示已经达到函数评价或迭 代的最大次数。output 返回优化信息:output.iterat

4、ions 表示迭代次数;output.algorithm 表 示所采用的算法;outprt.funcCount表示函数评价次数。lambda返回x处的拉格朗日乘子。它有以下属性:lambda.lower-lambda 的下界;lambda.upper-lambda 的上界;lambda.ineqlin-lambda 的线性不等式;lambda.eqlin-lambda 的线性等式。下面通过具体的例子来说明:例如:某农场I、II、III等耕地的面积分别为100 hm2、300 hm2和200 hm2, 计划种植水稻、大豆和玉米,要求三种作物的最低收获量分别为190000kg、 130000kg和

5、350000kg。I、II、III等耕地种植三种作物的单产如表5.1.4所 示。若三种作物的售价分别为水稻1.20元/kg,大豆1.50元/kg,玉米0.80 元/kg。那么,(1)如何制订种植计划,才能使总产量最大? (2)如何制订种 植计划,才能使总产值最大?表1不同等级耕地种植不同作物的单产(单位:Ag/ hm2)I等耕地II等耕地III等耕地水稻11 0009 5009 000大豆8 0006 8006 000玉米14 00012 00010 000首先根据题意建立线性规划模型(决策变量设置如表2所示,表中奇表示 第i种作物在第j等级的耕地上的种植面积。):表2作物计划种植面积(单位:

6、hm2)I等耕地II等耕地III等耕地水稻xxx111213大豆xxx212223玉米xxx313233约束方程如下:X+X+ X 100112131X+X+ X 300122232X+X+ X 200132333耕地面积约束:-11000X - 9500x - 9000x -190000 -8000X - 6800X - 6000X -130000最低收获量约束:-14000X - 12000X - 10000X -350000I313233非负约束:X0(1,2*;1,2,3)(1) 追求总产量最大,目标函数为:minZ = -11000x - 9500x - 9000x - 8000x

7、- 6800x 1112132122-6000*23 -14000X31 - 12000X32 -10000X33(2) 追求总产值最大,目标函数为:maxZ=-1.20x(11000x + 9500X + 9000X ) -1.50x(8000x + 6800X + 6000X ) -0.80x(14000x + 12000X + 10000X ) =-13200X - 11400X - 10800X -12000X - 10200X - 9000X -11200x31 - 9600x32 - 8000x33根据求解函数linprog中的参数含义,列出系数矩阵,目标函数系数矩阵, 以及约束条

8、件等。这些参数中没有的设为空。譬如,(1) 当追求总产量最大时,只要将参数f=-11000 -9500 -9000 -8000 -6800 -6000 -14000 -12000 -10000; A=1.0000 0.0000 0.0000 1.0000 0.0000 0.0000 1.0000 0.0000 0.0000;0.0000 1.0000 0.0000 0.0000 1.0000 0.0000 0.0000 1.0000 0.0000;0.0000 0.0000 1.0000 0.0000 0.0000 1.0000 0.0000 0.0000 1.0000;-11000.0000

9、 0.0000 0.0000 -9500.0000 0.0000 0.0000 -9000.0000 0.0000 0.0000; 0.0000 -8000.0000 0.0000 0.0000 -6800.0000 0.0000 0.0000 -6000.0000 0.0000; 0.0000 0.0000 -14000.0000 0.0000 0.0000 -12000.0000 0.0000 0.0000 -10000.0000;b=100 300 200 -190000 -130000 -350000;lb=0.0000 0.0000 0.0000 0.0000 0.0000 0.00

10、00 0.0000 0.0000 0.0000 ;代入求解函数xopt fxopt= linprog(f, A,b,lb,),即可求得结果。(2) 当追求总产值最大时,将参数f=-13200 -11400 -10800 -12000 -10200 -9000 -11200 -9600 -8000;A=1.0000 0.0000 0.0000 1.0000 0.0000 0.0000 1.0000 0.0000 0.0000;0.0000 1.0000 0.0000 0.0000 1.0000 0.0000 0.0000 1.0000 0.0000;0.0000 0.0000 1.0000 0.

11、0000 0.0000 1.0000 0.0000 0.0000 1.0000;-11000.0000 0.0000 0.0000 -9500.0000 0.0000 0.0000 -9000.0000 0.0000 0.0000;0.0000 -8000.0000 0.0000 0.0000 -6800.0000 0.0000 0.0000 -6000.0000 0.0000;0.0000 0.0000 -14000.0000 0.0000 0.0000 -12000.0000 0.0000 0.0000 -10000.0000;b=100 300 200 -190000 -130000 -

12、350000;lb=0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 ;代入求解函数xopt fxopt= linprog(f, A,b,lb,),即可得到求解结果。线性规划,还有其他的几种调用函数形式,可在Matlab帮助中查找LP或者 LINPROG的帮助说明。线性规划是一种优化方法,Matlab优化工具箱中有现成函数linprog对如下式描 述的LP问题求解:%min fx% s.t .(约束条件):Ax=b%(等式约束条件):Aeqx=beq% lb=x=ublinprog函数的调用格式如下:x=linprog

13、(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(

14、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显示最终结果。MaxFunEvals函数评价的最大允许次数Maxiter最大允许迭代次数TolXx处的终止容限x,fval=linprog(.)左端fval返回解x处的目标函数值。x,fval,exitfla

15、g,output,lambda=linprog(f,A,b, Aeq,beq,lb,ub,x0)的输出部分: exitflag描述函数计算的退出条件:若为正值,表示目标函数收敛于解x处;若 为负值,表示目标函数不收敛;若为零值,表示已经达到函数评价或迭代的最大 次数。output返回优化信息:output.iterations表示迭代次数;output.algorithm 表示所 采用的算法;outprt.funcCount表示函数评价次数。lambda返回x处的拉格朗日乘子。它有以下属性:lambda.lower-lambda 的下界;lambda.upper-lambda 的上界;lambda.ineqlin-la

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号