数学建模 MATLAB简介第六部分MATLAB优化算法.doc

上传人:re****.1 文档编号:548041729 上传时间:2023-10-21 格式:DOC 页数:9 大小:79.51KB
返回 下载 相关 举报
数学建模 MATLAB简介第六部分MATLAB优化算法.doc_第1页
第1页 / 共9页
数学建模 MATLAB简介第六部分MATLAB优化算法.doc_第2页
第2页 / 共9页
数学建模 MATLAB简介第六部分MATLAB优化算法.doc_第3页
第3页 / 共9页
数学建模 MATLAB简介第六部分MATLAB优化算法.doc_第4页
第4页 / 共9页
数学建模 MATLAB简介第六部分MATLAB优化算法.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《数学建模 MATLAB简介第六部分MATLAB优化算法.doc》由会员分享,可在线阅读,更多相关《数学建模 MATLAB简介第六部分MATLAB优化算法.doc(9页珍藏版)》请在金锄头文库上搜索。

1、MATLAB简介第六部分 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+120x2s.t 9x1+4x23600 4x1+5x22000 3x1+10x23000

2、 x1,x20将其转换为标准形式:min f=-70x1-120x2s.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 x4s.t x1-x2- x3- x40 x2+ x3- x40 x1+x2+x3+ x4=1 xj0 , j=1,2,3,4将其转换为

3、标准形式:min z=-0.15x1-0.1x2-0.08 x3-0.12 x4s.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,exitflag= quadprog(H,f,A,

4、b,Aeq,beq,lb,ub,x0)说明:输入参数中,x0为初始点;若无等式约束或无不等式约束,就将相应的矩阵和向量设置为空。输出参数中,x是返回最优解;fval是返回解所对应的目标函数值;exitflag是描述搜索是否收敛。 例3、求解二次规划问题min f(x)= x1-3x2+3x12+4x22-2x1x2s.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、求解二次规划问题min x12+2x22-2x1x2-4x1-12x2s.t x1+x2

5、2 -x1+2x22 2x1+x23x10, 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为目标函数,x0为初始点,A,b为不等式约束的系数矩阵和右端列向量, 若没有不等式约束,则令A= 、b

6、= 。lb ,ub为变量x的下界和上界;nonlcon=fun,由M文件fun.m给定非线性不等式约束c (x) 0和非线性等式约束g(x)=0。 例5、求解非线性规划问题min 100(x2-x12 )2+(1-x1)2 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=fmincon(ff6,x0,A,b)例6、求解非线性规划问题min f=ex1(6x12+3x22+2x1x2+4x2+1)

7、 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=ff8gx,fval,exitflag =fmincon(ff8,x0, nonlcon)四、整数线性规划算法说明:下面给

8、出用分枝定界法求解整数线性规划的M函数文件ILp.m,其中返回值x为最优解向量,f为最优值;x0为初值点,可以用 代替;neqcstr表示约束条件Axb中的前neqcstr个是等式,neqcstr=0时可以省略,此时也可以省略x0;vlb ,vub为变量x的下界和上界;pre是精度。M函数文件 ILp.m如下:function x, f = ILp(c,A,b,vlb,vub,x0, neqcstr,pre)if nargin8, pre=0; if nargin7, neqcstr=0; if nargin6, x0= ; if nargin5, vub= ; if narginpre);

9、mtemp=length(temp2); if isempty(temp2) x_f_b=xtemp; ftemp; vlb; vub; while j=mm i=1; while i=mtemp if x_f_b(nvars+1,j)pre); if isempty(temp12), xall=xall,xtemp; fall=fall,ftemp; fvub=min(fvub,fall); elseif ftemp=fvub x_f_b=x_f_b, xtemp; ftemp; vlb1; vub1; end, end, end if x_f_b (nvars+1,j)pre); if isempty(tempr2), xall=xall,xtemp; fall=fall,ftemp; fvub=min(fvub,fall); elseif ftempmm,break,end temp0=round (xint(:,j); temp1=floor(xint(:,j); temp2=find(abs(xint(:,j)-temp0)pre); mtemp=length(temp2); end,else, x=xtemp; f=ftemp; end,if isempty(fall) fmin=min(fall); nmin=find(fall=fmin); x=xall(:,

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

当前位置:首页 > 生活休闲 > 社会民生

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