2019数学模型MATLAB简介--第六部分MATLAB优化算法.ppt

上传人:上海哈登 文档编号:2781617 上传时间:2019-05-15 格式:PPT 页数:18 大小:279.02KB
返回 下载 相关 举报
2019数学模型MATLAB简介--第六部分MATLAB优化算法.ppt_第1页
第1页 / 共18页
2019数学模型MATLAB简介--第六部分MATLAB优化算法.ppt_第2页
第2页 / 共18页
2019数学模型MATLAB简介--第六部分MATLAB优化算法.ppt_第3页
第3页 / 共18页
2019数学模型MATLAB简介--第六部分MATLAB优化算法.ppt_第4页
第4页 / 共18页
2019数学模型MATLAB简介--第六部分MATLAB优化算法.ppt_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《2019数学模型MATLAB简介--第六部分MATLAB优化算法.ppt》由会员分享,可在线阅读,更多相关《2019数学模型MATLAB简介--第六部分MATLAB优化算法.ppt(18页珍藏版)》请在三一文库上搜索。

1、第六部分 MATLAB优化算法,一、线性规划算法 调用格式: x, fval, exitflag= linprog(f,A,b, Aeq,beq,lb,ub, x0)说明: 返回值x为最优解向量,fval为最优值; 若没有不等式约束,则令A= 、b= ; lb ,ub为变量x的下界和上界,x0为初值点; exitflag 描述函数计算的退出条件:若为正值,表示目标函数收敛于解x处;若为负值,表示目标函数不收敛;若为零值,表示已经达到函数评价或迭代的最大次数。,例1、求解线性规划问题 max f=70x1+120x2 s.t 9x1+4x23600 4x1+5x22000 3x1+10x2300

2、0 x1,x20,将其转换为标准形式: min f=-70x1-120x2 s.t 9x1+4x23600 4x1+5x22000 3x1+10x23000 x1,x20 算法如下: f=-70 -120; A=9 4 ;4 5;3 10 ; b=3600;2000;3000; lb=0 0; ub=; x,fval,exitflag=linprog(f,A,b,lb,ub) maxf=-fval,例2、求解线性规划问题 max f=0.15x1+0.1x2+0.08 x3+0.12 x4 s.t x1-x2- x3- x40 x2+ x3- x40 x1+x2+x3+ x4=1 xj0 ,

3、j=1,2,3,4,将其转换为标准形式: min z=-0.15x1-0.1x2-0.08 x3-0.12 x4 s.t x1-x2- x3- x40 -x2- x3+ x40 x1+x2+x3+ x4=1 xj0 , j=1,2,3,4 算法如下: f = -0.15;-0.1;-0.08;-0.12; A = 1 -1 -1 -1;0 -1 -1 1; b = 0; 0; Aeq=1 1 1 1; beq=1; lb = zeros(4,1); x,fval,exitflag = linprog(f,A,b,Aeq,beq,lb) f=-fval,二、二次规划算法 调用格式: x,fval

4、,exitflag=quadprog(H,f,A,b,Aeq,beq,lb,ub,x0) 说明: 输出参数中,x是返回最优解;fval是返回解所对 应的目标函数值; 输入参数中,x0为初始点; 若无等式约束或无不等式约束,就将相应的矩阵和向量设置为空; exitflag是描述搜索是否收敛。,例3、求解二次规划问题 min f(x)= x1-3x2+3x1+4x2 -2x1x2 s.t 2x1+x22 -x1+4x23 算法如下: f=1;-3; H=6 -2;-2 8; A=2 1;-1 4; b=2;3; x,fval,exitflag=quadprog(H,f,A,b),例4、求解二次规划

5、问题 min x1+2x2-2x1x2-4x1-12x2 s.t x1+x22 -x1+2x22 2x1+x23 x10, x20 算法如下: H=2 -2;-2 4; f=-4;-12; A=1 1;-1 2;2 1; b=2;2;3; lb=zeros(2,1); x,fval,exitflag=quadprog(H,f,A,b,lb),三、非线性规划算法 调用格式: x, fval, exitflag= fmincon(f,x0,A,b,Aeq,beq,lb,ub,nonlcon) 说明: 返回值x为最优解向量,fval是返回解所对应的目标函数值;exitflag是描述搜索是否收敛。 f

6、为目标函数,x0为初始点,A,b为不等式约束的系数矩阵和右端列向量, 若没有不等式约束,则令A= 、b= 。lb ,ub为变量x的下界和上界; nonlcon=fun,由M文件fun.m给定非线性不等式约束c (x) 0和等式约束g(x)=0。,例5、求解非线性规划问题 min 100(x2-x1 ) +(1-x1) s.t x12; x22 首先建立ff6.m文件: function f=ff6(x) f=100*(x(2)-x(1)2)2+(1-x(1)2; 然后在命令窗口键入命令: x0=1.1,1.1; A=1 0;0 1; b=2;2; x,fval, exitflag=fminco

7、n(ff6,x0,A,b),例6、求解非线性规划问题 min f=e (6x1 +3x2 +2x1x2+4x2+1) s.t x1x2-x1-x2+10 -2x1x2-50 首先建立目标函数文件ff8.m文件: function f=ff8(x) f=exp(x(1)*(6*x(1)2+3*x(2)2+2*x(1)*x(2)+4*x(2)+1);,再建立非线性的约束条件文件:ff8g.m function c,g=ff8g(x) c(1)=x(1)*x(2)-x(1)-x(2)+1; c(2)=-2*x(1)*x(2)-5; g=; 然后在命令窗口键入以下命令: x0=1,1; nonlcon

8、=ff8g; x, fval, exitflag =fmincon(ff8,x0,nonlcon),四、整数线性规划算法 说明:下面给出用分枝定界法求解整数线性规划的M函数文件ILp.m,其中第一行是 function x, f = ILp(c,A,b,vlb,vub,x0, neqcstr,pre) 返回值x为最优解向量,f为最优值; x0为初值点,可以用 代替; neqcstr表示约束条件Ax b中的前neqcstr个是等式,neqcstr=0时可以省略,此时也可以省略x0; vlb ,vub为变量x的下界和上界; pre是精度。 文件ILp.m单独给出,见WORD文档。,例7、求解整数规

9、划问题 max f=20x1+10x2 s.t 5x1+4x224 2x1+5x213 xj0 , i=1,2 x1,x2 为整数 先建立M函数文件ILp.m,然后在MATLAB命令窗口键入: clear; c=-20,-10; %求max转换为求min a=5,4;2,5; b=24;13; x,f=ILp(c,a,b,0;0,inf; inf, ,0,0.0001) f=-f,五、0-1整数线性规划算法 说明:下面的隐枚举法求解01线性规划的M函数文件L01p_ie.m中用到命令B=de2bi(D),其作用是将十进制数向量D转换为相应的二进制数按位构成的以0,1为元素的矩阵B。 M函数文件

10、 de2bi.m单独给出,见WORD文档。,说明:下面给出用隐枚举法求解01线性规划的M函数文件L01p_ie.m,其中第一行是 function x, f = L01p_ie(c,A,b,N) 返回值x为最优解向量,f为最优值; N表示约束条件Ax b中的前N个是等式,N =0时可以省略。 M函数文件L01p_ie.m单独给出,见WORD文档。,例8、求解01整数规划问题 max f=-3x1+2x2-5x3 s.t x1+x2-x32 x1+4x2+x34 x1+x23 4x2+x36 xj, (j=1,2,3)为0或1 先建立M函数文件 de2bi.m和L01p_ie.m,然后在MATLAB命令窗口键入: clear; c=3,-2,5; %求max转换为求min a=1,2,-1;1,4,1;1,1,0;0,4,1; b=2;4;3;6; x, f = L01p_ie(c,a,b) f=-f,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1