Matlab优化工具箱函数简介_第1页
Matlab优化工具箱函数简介_第2页
Matlab优化工具箱函数简介_第3页
Matlab优化工具箱函数简介_第4页
Matlab优化工具箱函数简介_第5页
免费预览已结束,剩余2页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Matlab优化工具箱函数简介一维搜索问题fminbnd无约束极小值fminunc,fminsearch约束极小值fmincon线性规划linprog二次规戈Iquadprog1. 一维搜索问题优化工具箱函数fminbnd对应问题:minf(x)x1<x<x2调用格式x=fminbnd(fun,x1,x2):得到函数fun在区间x1,x2内取得最小值的x.x,f=fminbnd(fun,x1,x2):得到最优点x和最优目标函数值f。例:求minf(x)=-(3-2*x)A2*x方法1:x=fminbnd('-(3-2*x)A2*x',0,1.5)方法2:f=inli

2、ne('-(3-2*x)A2*x');x=fminbnd(f,0,1.5)方法3:x=fminbnd(x)-(3-2*x)A2*x,0,1.5)方法4:先形成一个函数文件functionf=fun(x)f=-(3-2*x)A2*x;然后运行下两句中的任一句x=fminbnd('fun',0,1.5)x=fminbnd(fun,0,1.5)若需输出最优点处的目标函数值f,则将上述语句的左边改为x,f,如:x,f=fminbnd('-(3-2*x)A2*x',0,1.5)其它用法:X,fval,exitflag,output=fminbnd(fun,

3、x1,x2)其中:fun为目标函数,x1,x2为变量的边界约束,即x1<x<x2,X为返回的满足fun取得最小值的x的值,而fval则为此时的目标函数值。exitflag>0表示计算收敛,exitflag=0表示超过了最大的迭代次数,exitflag<0表示计算不收敛,返回值output有3个分量,其中iterations是优化过程中迭代次数,funcCount是代入函数值的次数,algorithm是优化所采用的算法。例:clearfun='(xA5+xA3+xA2-1)/(exp(xA2)+sin(-x)'ezplot(fun,-2,2)X,fval,

4、exitflag,output=fminbnd(fun,-2,2)结果为:X=0.2176fval=-1.1312exitflag=1output=iterations:13funcCount:13algorithm:'goldensectionsearch,parabolicinterpolation'2. 无约束极小值优化工具箱函数fminunc,fminsearch以上两个函数均可求解无约束多元函数的最小值。调用格式:x=fminunc(fun,X0)x=fminsearch(fun,X0)以X0为初始迭代点,求使函数fun取得最小值的xx,fval=fminunc(fu

5、n,X0)x,fval=fminsearch(fun,X0)以X0为初始迭代点,求得最优点x和最彳t值fval。fminsearch()采用单纯形法进行计算,适合处理阶次低但是间断点多的函数;fminunc()对于高阶连续的函数比较有效,该函数可以输出海塞矩阵。伤J1:求minf(X)3x;2x1x2x2X0=1,1'x,fval=fminunc('3*x(1)A2+2*x(1)*x(2)+x(2)A2',X0)x,fval=fminsearch('3*x(1)A2+2*x(1)*x(2)+x(2)A2',1,1')快J2:clearfun=&#

6、39;exp(x(1)*(2*x(1)A2+3*x(2)A2+2*x(1)*x(2)+3*x(2)+1)'x0=0,0;options=optimset('largescale','off','display','iter','tolx',1e-8,'tolfun',1e-8);x,fval,exitflag,output,grad,hessian=fminunc(fun,x0,options)3. 约束极小佰优化工具箱函数fmincon对应数学模型:minF(X)subjectto:A*X

7、<=B,Aeq*X=Beq(linearconstraints)C(X)<=0,Ceq(X)=0(nonlinearconstraints)LB<=X<=UB调用格式:x=fmincon(fun,x0,A,b):给定初值x0,求解fun函数的最极值点x.。约束条件为线性约束A*x<=b。x0可以是标量、矢量或矩阵X=fmincon(FUN,X0,A,B,Aeq,Beq)同前一调用格式相比,约束条件中增加了等式约束Aeq*X=Beq.(若无不等式约束,取A=、B=)X=fmincon(FUN,X0,A,B,Aeq,Beq,LB,UB)若设计变量X有上下限UB、LB用

8、此格式若X无取值限制,LB与UB为空矩阵口。若X的下限为负无穷,则LB(i)=-Info若X的上限为正无穷,则UB(i)=InfoX=fmincon(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON)NONLCON是包含函数名的字符串,该函数可以是M文件、内部文件。例如,若NONLCON='mycon,'则M文件mycon.m具有如下内容:FunctionC,Ceq=mycon(X)C=-.%计算X处的非线性不等式Ceq=-%计算X处的非线性等式以上各调用格式中均可输出目标函数值,用法仍为:x,fval=fmincon(.)例:某问题的目标函数为minf(X)=

9、M=OJ92457x10(x2+2)xt2x3约束条件为:*>r(X)=35O-J63阳产W°出z(X)=0HxI0晨to20g")=37为-g+L5)巧-0.44x10算xf*>0)=0.356x10吐产二石*一37520且5(*)=/再一4三0二七-1二0g1(X)=4-xl20gn(X)=x2-4.5>0gg(X)-5Q-x20-100&i(X)=30-工§5:0设计变量初始值为5.0.25,0|r目标函数functionf=myfun(x)f=0.192457*1e-4*(x(2)+2)*x2x(3);非线性约束functionc

10、,ceq=mycon(x)c(1)=350-163*x(1F(-2.86)*x(3)A0.86;c(2)=10-0.4e-2*x(1)A(-4)*x(2)*x(3)A3;c(3)=(x(2)+1.5)*x(1)+0.44e-2*x(1)A(-4)*x(2)*x(3)A3-3.7*x(3);c(4)=375-0.356*1e6*x(1)*x(2)A(-1)*x(3)A(-2);c(5)=4-x(3)/x(1);ceq=0;主程序A=-1001000-1001000-1001;b=-1;4;-4.5;50;-10;30;x0=2;5;25;lb=0;0;0;x,fval=fmincon('

11、myfun',x0,A,b,lb,'mycon')%或用下式:%x,fval=fmincon(myfun,x0,A,b,lb,口,mycon)总结:X=fmincon(fun,x0,A,b)X=fmincon(fun,x0,A,b,Aeq,Beq,Lb,Ub)X=fmincon(fun,x0,A,b,Aeq,Beq,Lb,Ub,nonlcon,options)X,fval,exitflag,output=fmincon(fun,x0,)X,fval,exitflag,output,lambda,grad,Hessian=fmincon(fun,x0,)参数中fun为目标

12、函数,x0为变量的初始值,x为返回的满足要求的变量的值。A和b表示线性不等式约束,Aeq,Beq表示线性等式约束,Lb和Ub分别为变量的下界和上界约束,nonlcon表示非线性约束条件,options为控制优化过程的优化参数向量。返回值fval为目标函数。exitflag>0表示优化结果收敛于解,exitflag=0表示优化超过了函数值的计算次数,exitflag<0表示优化不收敛。lambda是拉格朗日乘子,显示那个约束条件有效。grad表示梯度,hessian表示汉森矩阵。4. 线性规划mine=。士+c2X2+q七4丙十4人+'一+4网/=4+4抵+2Hi曦%+口也+

13、七/=粼1O/,毛优化函数linprogX=linprog(f,A,b)对应数学规划:minf'*xsubjectto:A*x<=bX=linprog(f,A,b,Aeq,beq)增加等式约束Aeq*x=beq.X=linprog(f,A,b,Aeq,beq,LB,UB)设计变量有上下限X=linprog(f,A,b,Aeq,beq,LB,UB,X0)X0为初始迭代点X,F=linprog(.)5. 二次规划x=quadprog(H,f,A,b)x=quadprog(H,f,A,b,Aeq,beq)x=quadprog(H,f,A,b,Aeq,beq,lb,ub)x=quadpr

14、og(H,f,A,b,Aeq,beq,lb,ub,x0)x=quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options)x,fval=quadprog()x,fval,exitflag=quadprog()x,fval,exitflag,output=quadprog()x,fval,exitflag,output,lambda=quadprog()其中:X=quadprog(H,f,A,b)对应问题为:min0.5*x'*H*x+f'*xsubjectto:A*x<=bX=quadprog(H,f,A,b,Aeq,beq)增加等式约束Aeq*x=

15、beq.X=quadprog(H,f,A,b,Aeq,beq,LB,UB)设计变量有上下限X=quadprog(H,f,A,b,Aeq,beq,LB,UB,X0)-X0为初始迭代点X,FVAL=quadprog(。)ExamplesFindvaluesofxthatminimize2x2+21X1-2“I+.叼42-“I+2.*2«22久+.叼430«五1,。4均First,notethatthisfunctioncanbewritteninmatrixnotationasEnterthesecoefficientmatrices.H=1-1;-12f=-2;-6A=11;

16、-12;21b=2;2;3lb=zeros(2,1)Next,invokeaquadraticprogrammingroutine.x.fval.exitflag,output,lambda=quadprog(H,f.A.b.lb)Thisgeneratesthesolution温=口,66行1.3333fval=3.2222ckitfLae=1output-iteratian.s:3alforithji;mediuji-scale;activa-setfirstcrdsrapt:cgi-teratiorLS:lambda.ineqli.rLns=3.Hll0.44440lovevans=aaNonzeroelementsafthevectorsinth

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论