




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 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将其转换为标准形式: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,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+x22 -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= 。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) 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)四、整数线性规划算法说明:下面给出用分枝定界法求解整数线性规划的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); 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(:,nmin); f=fmin; end,else, x=nan*ones(1,nvars); end例7、求解整数线性规划问题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转换为求mina=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函数文件 de2bi.m如下:function b= de2bi(d,n,p)d=d(: ); len_d=length(d);if min(d)0, error(Cannot convert a negative number);elseif isempty(find(d=inf), error(Input must be an Inf.);elseif find(d=floor(d), error(Input must be an integer.);end;if nargin0 b1=b1 rem(tmp,2); tmp=floor(tmp/2); end; n=length(b1);end;if nargin3, p=2; end; b=zeros(len_d,n); for i=1:len_d j=1; tmp=d(i); while (j0) b(i,j)=rem(tmp,p); tmp=floor(tmp/p); j=j+1; end;end;说明:下面给出用隐枚举法求解01线性规划的M函数文件L01p_ie.m,其中返回值x为最优解向量,f为最优值;N表示约束条件Axb中的前N个是等式,N =0时可以省略。M函数文件L01p_ie.m如下:function x, f = L01p_ie(c,A,b,N)if nargin4, N=0; endc=c(:); b=b(:);A=-A(1:N,:);A; b=-b(1:N);b;m,n=size(A); x=; f=abs(c)*ones(n,1);A=c;A; b=f;b; i=1;while i=2n B=de2bi(i-1,n); j=1; t1=A(j,:)*B-b(j); while (t1=0&j0, j=1; end; end if j=m+1 x=B; f=c*B; b(1)=min(b(1),f); end i=i+1;end例8、求解01整数线性规划问题max f=-3x1+2x2-5x3s.t x1+x2-x32 x1+4x2+x34 x1+x234x2+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以下整数线性规划算法程序还未通过调试:M函数文件 IntLP.m如下:function x, y= IntLP(f,G,h,Geq,heq,lb,ub,x, id,options)global upper opt c x0 A b Aeq beq ID options;if nargin9,id=ones(size(f);endif nargin8, x= ; endif nargin7 |isempty(ub),ub=inf*ones(size(f);endif nargin6 |isempty(lb),lb=zeros(size(f);endif nargin5, heq= ; endif nargin4, Geq= ;endupper=inf;c=f;x0=x;A=G;b=h;Aeq=Geq;beq=heq;ID=id;ftemp=IntLP(lb(:),ub(:);x=opt;y=upper;%function ftemp=IntLP(vlb,vub)global upper opt c x0 A b Aeq beq ID options;x, ftemp ,how=linprog(c,A,b,Aeq,beq,vlb,vub,x0,options); if how0.00005 %in order to avoid error return; end; if max(abs(x.*ID-round(x.*ID)0.00005 %in order to avoid error opt=x; upper=ftemp; return; else opt=opt;x; return; end;end; notintx=find(abs(x-round(x)=0.00005); %in order to avoid error intx=fix(x); tempvlb=vlb; tempvub=vub; if vub(notintx(1,1),1)= intx(notintx(1,1),1)+1 tempvlb(notint
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025智能医疗器械研发成果区域代理销售合作协议
- 2025年城市分公司承包合同:综合型市场多元化拓展合作协议
- 2025年高端别墅庭院景观设计与施工一体化服务合同
- 2025年北京文化产业发展信托资金并购重组贷款协议书
- 2025年度专业餐饮连锁企业厨房设备全面维护合同
- 2025年节能型化工设备购置与绿色工艺改造协议
- 2025年高品质住宅区物业管理与全天候安保服务合同
- 2025年清洁能源风电场施工人员劳动合同范本
- 2025年新型城镇化农村小额贷款融资合同范本
- 2025年度航空航天企业研发团队知识产权保护合作协议
- 运用PDCA降低I类切口感染率模板课件
- 特种设备安全管理课件-电梯安全知识
- 车辆转让合同电子版下载可打印
- 深圳填海工程施工实施方案
- BB/T 0023-2017纸护角
- 建设集团有限公司安全生产管理制度汇编
- 行为习惯养成教育校本教材
- 疫苗运输温度记录表
- logopress3培训视频教程整套模具大纲
- DB32-T 2945-2016硬质合金刀具PVD涂层测试方法-(高清现行)
- TB∕T 3526-2018 机车车辆电气设备 接触器
评论
0/150
提交评论