《Matlab优化工具箱函数简介备课讲稿.doc》由会员分享,可在线阅读,更多相关《Matlab优化工具箱函数简介备课讲稿.doc(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Good is good, but better carries it.精益求精,善益求善。Matlab优化工具箱函数简介-Matlab优化工具箱函数简介一维搜索问题fminbnd无约束极小值fminunc,fminsearch约束极小值fmincon线性规划linprog1 二次规划quadprog一维搜索问题优化工具箱函数fminbnd对应问题:minf(x)x1x0表示计算收敛,exitflag=0表示超过了最大的迭代次数,exitflag0表示计算不收敛,返回值output有3个分量,其中iterations是优化过程中迭代次数,funcCount是代入函数值的次数,algorithm
2、是优化所采用的算法。例:clearfun=(x5+x3+x2-1)/(exp(x2)+sin(-x)ezplot(fun,-2,2)X,fval,exitflag,output=fminbnd(fun,-2,2)结果为:X=0.2176fval=-1.1312exitflag=1output=iterations:13funcCount:132 algorithm:goldensectionsearch,parabolicinterpolation无约束极小值优化工具箱函数fminunc,fminsearch以上两个函数均可求解无约束多元函数的最小值。调用格式:x=fminunc(fun,X0
3、)x=fminsearch(fun,X0)-以X0为初始迭代点,求使函数fun取得最小值的xx,fval=fminunc(fun,X0)x,fval=fminsearch(fun,X0)-以X0为初始迭代点,求得最优点x和最优值fval。fminsearch()采用单纯形法进行计算,适合处理阶次低但是间断点多的函数;fminunc()对于高阶连续的函数比较有效,该函数可以输出海塞矩阵。例1:求X0=1,1x,fval=fminunc(3*x(1)2+2*x(1)*x(2)+x(2)2,X0)x,fval=fminsearch(3*x(1)2+2*x(1)*x(2)+x(2)2,1,1)例2:c
4、learfun=exp(x(1)*(2*x(1)2+3*x(2)2+2*x(1)*x(2)+3*x(2)+1);x0=0,0;options=optimset(largescale,off,display,iter,tolx,1e-8,tolfun,1e-8);3 x,fval,exitflag,output,grad,hessian=fminunc(fun,x0,options)约束极小值优化工具箱函数fmincon对应数学模型:minF(X)subjectto:A*X=B,Aeq*X=Beq(linearconstraints)C(X)=0,Ceq(X)=0(nonlinearconstr
5、aints)LB=X=UB调用格式:x=fmincon(fun,x0,A,b):给定初值x0,求解fun函数的最极值点x.。约束条件为线性约束A*x0表示优化结果收敛于解,exitflag=0表示优化超过了函数值的计算次数,exitflag0表示优化不收敛。lambda是拉格朗日乘子,显示那个约束条件有效。grad表示梯度,hessian表示汉森矩阵。线性规划优化函数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,
6、LB,UB)设计变量有上下限4 X=linprog(f,A,b,Aeq,beq,LB,UB,X0)X0为初始迭代点X,F=linprog(.)二次规划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,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=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(。)以上优化工具箱函数只供参考,不供考试中使用。-