Matlab优化工具箱函数简介_第1页
Matlab优化工具箱函数简介_第2页
Matlab优化工具箱函数简介_第3页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、Matlab优化工具箱函数简介一维搜索问题 fminbnd无约束极小值 fminunc, fmin search约束极小值 fmincon线性规划lin prog二次规戈 U quadprog1. 一维搜索问题优化工具箱函数fminbnd对应问题: min f(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'

2、;,0,1.5)方法 2: f=inline('-(3-2*x)A2*x');x=fminbn d(f,0,1.5)方法 3: x = fminbnd(x) -(3-2*x)A2*x,0,1.5)方法4:先形成一个函数文件fun cti onf=fun(x)f= -(3-2*x)A2*x;然后运行下两句中的任一句x=fmi nbn d('fu n',0,1.5)x=fmi nbn d(fu n,0,1.5)假设需输出最优点处的目标函数值f,那么将上述语句的左边改为x,f,如:x,f=fmi nbn d(' -(3-2*x)A2*x',0,1.5)

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

4、/(exp(xA2)+si n(-x)'ezplot(fu n, -2,2)X,fval,exitflag,output= fminbn d(fu n,-2,2)结果为:X =0.2176fval =-1.1312exitflag = 1output = iterati ons: 13fun cCou nt: 13algorithm: 'golde n sect ion search, parabolic in terpolatio n'2. 无约束极小值优化工具箱函数fminunc,fmin search以上两个函数均可求解无约束多元函数的最小值。调用格式:x=fmi

5、 nunc(fun ,X0)x=fm in search(fu n, X0) 以X0为初始迭代点,求使函数fun取得最小值的xx,fval= fmi nunc(fun ,X0)x,fval= fmi nsearch(fu n, X0) 以X0为初始迭代点,求得最优点 x和最优值fval。fmin search()采用单纯形法进行计算,适合处理阶次低但是间断点多的函数; fminunc()对于高阶连续的函数比拟有效,该函数可以输出海塞矩阵。例 1:求 min f(X)=3xj 2x<|X2x;X0=1,1'x,fval=fmi nun c('3*x(1)A2+2*x(1)*

6、x (2)+x (2) A2',X0)x,fval=fmi nsearch('3*x(1)A2+2*x(1)*x(2)+x(2)A2',1,1')例2:clearfun='exp(x(1)*(2*x(1)A2+3*x(2)A2+2*x(1)*x(2)+3*x(2)+1)'x0=0,0;optio ns=optimset('largescale','off,'display','iter','tolx',1e-8,'tolfu n' ,1e-8);x,fval,

7、exitflag,output,grad,hessia n=fminunc(fun, x0,opti ons)3. 约束极小值优化工具箱函数fmincon对应数学模型:min F(X)subject to:A*X <= B,Aeq*X =Beq(li near con stra in ts)C(X) <= 0,Ceq(X)=0(non li near con strai nts)LB <= X <= UB调用格式:x=fmineon(fun,xO,A,b):给定初值xO ,求解fun函数的最极值点 x.。约束条件为线性约束A*x<=b。x0可以是标量、矢量或矩阵X

8、=fmi neon (FUN,XO,A,B,Aeq,Beq)同前一调用格式相比,约束条件中增加了等式约束Aeq*X = Beq.(假设无不等式约束,取 A=、B=)X=fmincon(FUN,X0,A,B,Aeq,Beq,LB,UB)假设设计变量 X 有上下限 UB、LB 用此格式假设X无取值限制,LB与UB为空矩阵。假设X( i)的下限为负无穷,贝ULB(i)=-Inf。假设X (i)的上限为正无穷,贝UUB(i)=Inf。X=fmi neon (FUN,X0,A,B,Aeq,Beq, LB,UB,NONLCON)NONLCON是包含函数名的字符串,该函数可以是M文件、内部文件。例如,假设

9、NONLCON= ' myeor,'那么M文件 mycon.m具有如下内容:Function C,Ceq=myc on(X)C=- .%计算X处的非线性不等式Ceq=-%计算X处的非线性等式以上各调用格式中均可输出目标函数值,用法仍为:x,fval=fmincon().例:某问题的目标函数为约束条件为:*>t(X) = 350-163严护 W 0 g2(X)=O.4xlO2xf4x:X3-100 g3(X)y.7x3-(x2 + l.5)x -0.44x10 34jc2 2 0 险(X)二 0356xlOjX;1%-2 - 375 $ 0 gs(X) = x3 /x, -

10、4 > 0 几(X)二jq-lMO g1(X)-4-xl M 0 乩(X) =蛊 2-4JMO gq(X) = 5O x2 M 0 gw(X)-x3 -10 2 0 gl(X)30-xi 2 0设计变量初始值为N°=|2O 5Q 25.0 |r目标函数fun cti onf=myfu n(x)f=0.192457*1e-4*(x(2)+2)*x(1F2*x(3);非线性约束fun cti onc,ceq=myc on(x)C=350-163*x(1)A(-2.86)*x(3F0.86;c(2)=10-0.4e-2*x(1)A(-4)*x(2)*x(3)A3;c(3)=(x (2

11、)+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=-1 0 01 0 00 -1 00 1 00 0 -10 0 1;b=-1;4;-4.5;50;-10;30;x0=2;5;25;lb=O;O;O;x,fval=fmi ncon('myfu n' ,xO,A,b,lb,'myco n')%或用下式:%x,fval=fmi neon (myfu n,xO,A,b

12、,lb,myc on) 总结:X=fm incon(fun, x0,A,b)X=fmi nco n(fu n,x0,A,b,Aeq,Beq,Lb,Ub)X=fm incon(fun, x0,A,b,Aeq,Beq,Lb,Ub ,nonlcon, opti ons)X,fval,exitflag,output=fm incon( fun, x0,)X,fval,exitflag,output,lambda,grad,Hessia n=fmincon(fun, x0,)参数中fun为目标函数,x0为变量的初始值,x为返回的满足要求的变量的值。A和b表示线性不等式约束,Aeq,Beq表示线性等式约束

13、,Lb和Ub分别为变量的下界和上界约束,nonIcon表示非线性约束条件,options为控制优化过程的优化参数向量。返回值fval为目标函数。exitflag>0表示优化结果收敛于解,exitflag=0表示优化超过了函数值的计算次数,exitflag<0表示优化不收敛。lambda是拉格朗日乘子,显示那个约束条件有效。grad表示梯度,hessia n表示汉森矩阵。minz=C|Aj+-+cnxn讣+U申+ 十朋叽1和七*、為20优化函数linprogX=linprog (f,A,b)对应数学规划:min f*xsubject to: A*x <= bX= lin pro

14、g (f,A,b,Aeq,beq)增加等式约束 Aeq*x = beq.X= lin prog (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 = quadprog(H,f,A,b,Aeq,beq,lb,ub,xO)x = quadprog(H,f,A,b,Aeq,beq,lb,ub

15、,xO,opti ons)x,fval = quadprog(.)x,fval,exitflag = quadprog(.)x,fval,exitflag,output = quadprog(.)x,fval,exitflag,output,lambda = quadprog(.)其中:X=quadprog (H,f,A,b)对应问题为:min 0.5*x'*H*x + f*xsubject to: A*x <= bX= quadprog (H,f,A,b,Aeq,beq) 增加等式约束 Aeq*x = beq.X= quadprog (H,f,A,b,Aeq,beq,LB,UB

16、)设计变量有上下限X= quadprog (H,f,A,b,Aeq,beq,LB,UB,XO)- X0为初始迭代点X,FVAL= quadprog (。)ExamplesFind values of x that minimizesubject to< 2一 W + 2x0 < 22xj + “2 S 30Os“2First, note that this function can be written in matrix notation as1X2X T+whereEnter these coefficient matrices.H = 1 -1; -1 2f = -2; -6

17、A = 1 1; -1 2; 2 1b = 2; 2; 3lb = zeros 1)Next, irwoke a quadratic programming routine.x, fval, ex it flag, output, lambda = quadprog (H, f, A, b, 3 , lb)This gen erates the soluti on0. 66671. 3333fval =-乩 2222exitflag =1output =it erat ions: 3algorithm: 5 medium-scale: active-set firstorderopt:cgit erat ions:lambda. ineQlinans =3* 11110.44440lanLda. lowerans 二Nonzero elements of the vectors in t

温馨提示

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

评论

0/150

提交评论