第五章(优化设计).ppt

上传人:b****3 文档编号:2723161 上传时间:2022-11-09 格式:PPT 页数:37 大小:320.50KB
下载 相关 举报
第五章(优化设计).ppt_第1页
第1页 / 共37页
第五章(优化设计).ppt_第2页
第2页 / 共37页
第五章(优化设计).ppt_第3页
第3页 / 共37页
第五章(优化设计).ppt_第4页
第4页 / 共37页
第五章(优化设计).ppt_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

第五章(优化设计).ppt

《第五章(优化设计).ppt》由会员分享,可在线阅读,更多相关《第五章(优化设计).ppt(37页珍藏版)》请在冰豆网上搜索。

第五章(优化设计).ppt

第五章第五章优化设计优化设计5.1概述

(1)无约束优化问题例:

(2)约束优化问题(3)线性规划问题目标函数和约束函数都是线性函数的优化问题。

(4)多目标规划问题目标函数个数大于1的约束或无约束优化问题5.2优化问题的求解方法最佳步长a*一般采取数值法求解下降方向d不同方法对应不同优化算法5.3优化问题的matlab求解函数5.3.1fminunc函数:

求无约束目标函数最小值用法:

x=fminunc(fun,x0)x=fminunc(fun,x0,options)x,fval=fminunc(.)x,fval,exitflag=fminunc(.)x,fval,exitflag,output=fminunc(.)x,fval,exitflag,output,grad=fminunc(.)x,fval,exitflag,output,grad,hessian=fminunc(.)X:

极小点Fval:

极小值Fun:

目标函数名字X0:

初值,列向量Option:

选项Exitflag:

=1求解成功,其他值表示不成功Output:

保存输出状态的变量Grad:

保存梯度计算值的变量Hessian:

保存目标函数Hessian矩阵的变量强烈建议使用格式xyexit=fminunc(fun,x0,options)计算设置:

op=optimset(MaxIter,10000);op=optimset(op,TolFun,1.e-4);op=optimset(op,TolX,1.e-6);xyexit=fminunc(f2,1;2,op);functionf=f2(X)y1=X

(1)+cos(X

(2);y2=sin(X

(1)+X

(2)+10;f=y1*y1+y2*y2;原选项名称,对原选项值进行修改Exitflag标志:

1:

Magnitudeofgradientsmallerthanthespecifiedtolerance.梯度幅度小于给定误差2:

Changeinxwassmallerthanthespecifiedtolerance.设计变量X变化小于给定误差3:

Changeintheobjectivefunctionvaluewaslessthanthespecifiedtolerance.目标函数值变化小于给定误差0:

Numberofiterationsexceededoptions.MaxIterornumberoffunctionevaluationsexceededoptions.FunEvals.循环次数超出给定值-1:

Algorithmwasterminatedbytheoutputfunction.失败-2:

Linesearchcannotfindanacceptablepointalongthecurrentsearchdirection.失败使用fminunc函数时,强烈建议对循环次数、梯度误差、设计变量误差、目标函数误差进行设置。

MaxIter:

Maximumnumberofiterationsallowed.TolFun:

Terminationtoleranceonthefunctionvalue.TolX:

Terminationtoleranceonx例:

(a)定义目标函数(b)调用fminunc函数(c)根据返回结果,如果计算不成功(可用计算点判断它是否满足约束条件),修改计算选项,直至计算结果满意。

5.3.2线性规划求解函数数学模型:

min:

cTxs.t:

AX=b,b的分量可以小于0AeqX=beqAeq:

等式约束矩阵;beq:

等式约束b向量lb=X=ub,如果设计变量大于0,需要设置lb=0向量lb:

左边界向量,ub:

右边界向量用法:

x=linprog(c,A,b)x=linprog(c,A,b,Aeq,beq)x=linprog(c,A,b,Aeq,beq,lb,ub)x=linprog(c,A,b,Aeq,beq,lb,ub,x0)x=linprog(c,A,b,Aeq,beq,lb,ub,x0,options)x,fval=linprog(.)x,fval,exitflag=linprog(.)x,fval,exitflag,output=linprog(.)x,fval,exitflag,output,lambda=linprog(.)SetAeq=andbeq=ifnoequalitiesexist.SetA=andb=ifnoinequalitiesexist.Setlb=andub=ifnoboudaryexist英文Help说第2个参数为Lagrange乘子参数,是错误的,实际上仍为目标函数值1:

functionconvergedtoasolutionx.0:

Numberofiterationsexceededoptions.MaxIter.-2:

Nofeasiblepointwasfound.-3:

Problemisunbounded.-4:

NaNvaluewasencounteredduringexecutionofthealgorithm.-5:

Bothprimalanddualproblemsareinfeasible.-7:

Searchdirectionbecametoosmall.Nofurtherprogresscouldbemade.例:

某车间要100套钢架,每套钢架由2.0m,2.1m,1.5m长的钢材各一段组成,现有钢材每条240m,如何分配才能使尾料最少。

段数套1套2套3套4套52.9120102.1002211.531203尾料00.10.20.30.42.9x1+5.8x2+2.9x3=2404.2x3+4.2x4+2.1x5=2404.5x1+1.5x2+3x3+4.5x5=0Min0.1x2+0.2x3+0.3x4+0.4x55.3.3二次规划求解函数quadprog数学模型:

x=quadprog(G,q,A,b)x=quadprog(G,q,A,b,Aeq,beq)x=quadprog(G,q,A,b,Aeq,beq,lb,ub)x=quadprog(G,q,A,b,Aeq,beq,lb,ub,x0)x=quadprog(G,q,A,b,Aeq,beq,lb,ub,x0,options)返回标志:

1:

Functionconvergedtoasolutionx.3:

Changeintheobjectivefunctionvaluewassmallerthanthespecifiedtolerance.4:

Localminimizerwasfound.0:

Numberofiterationsexceededoptions.MaxIter.-2:

Problemisinfeasible.-3:

Problemisunbounded.-4:

Currentsearchdirectionwasnotadirectionofdescent.Nofurtherprogresscouldbemade.-7:

Magnitudeofsearchdirectionbecametoosmall.Nofurtherprogresscouldbemade.x,fval=quadprog(.)x,fval,exitflag=quadprog(.)x,fval,exitflag,output=quadprog(.)x,fval,exitflag,output,lambda=quadprog(.)例:

5.3.4约束优化函数fmincon返回向量的函数用法:

x=fmincon(fun,x0,A,b)x=fmincon(fun,x0,A,b,Aeq,beq)x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub)x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)x=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)x,fval=fmincon(.)x,fval,exitflag=fmincon(.)x,fval,exitflag,output=fmincon(.)x,fval,exitflag,output,lambda=fmincon(.)x,fval,exitflag,output,lambda,grad=fmincon(.)x,fval,exitflag,output,lambda,grad,hessian=fmincon(.)Fun:

目标函数Nonlcon:

非线性约束函数注意:

(1)SetA=andb=ifnoinequalitiesexist

(2)SetAeq=andbeq=ifnoequalitiesexist.Setlb(i)=-Infifx(i)isunboundedbelow,andsetub(i)=Infifx(i)isunboundedabove.(3)setlb=and/orub=ifnoboundsexist.(4)Setnonlcon=iftherearenononlinearinequalityorequalityconstraints.(5)inequalitiesc(x)orequalitiesceq(x)isdefinedinnonlcon.用户不自己定义梯度求解函数时,目标函数定义:

functionf=myfun(x)f=.%Computefunctionvalueatx用户自己定义梯度求解函数,并且选项GradObj为on即定义了选项:

options=optimset(GradObj,on)目标函数必须如下定义:

functionf,g=myfun(x)f=.%Computethefunctionvalueatxifnargout1%funcalledwithtwooutputargumentsg=.%ComputethegradientevaluatedatxendiftheHessianmatrixcanalsobecomputedandtheHessianoptionison,i.e.,options=optimset(Hessian,on),目标函数必须如下定义:

functionf,g,H=myfun(x)f=.%Computetheobjectivefunctionvalueatxifnargout1%funcalledwithtwooutputargumentsg=.%GradientofthefunctionevaluatedatxEndifnargout2H=.%Hessianevaluatedatxend非线性约束用法:

x=fmincon(myfun,x0,A,b,Aeq,beq,lb,ub,mycon)非线性约束必须如下定义:

functionc,ceq=mycon(x)c=.%Computenonlinearinequalitiesatx.ceq=.%Computenonlinearequalitiesatx.如果选项GradConstr设置为on,assetbyoptions=optimset(GradConstr,on)非线性约束函数必须如下定义:

无不等式约束时,使用语句C=;或使用Ceq=functionc,ceq,GC,GC

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1