matlab优化工具箱使用方法ppt课件.ppt
《matlab优化工具箱使用方法ppt课件.ppt》由会员分享,可在线阅读,更多相关《matlab优化工具箱使用方法ppt课件.ppt(73页珍藏版)》请在三一办公上搜索。
1、1, 最小化问题,一、 单变量最小化,1.相关函数介绍,(1) fminbnd,2,功能:找到固定区间内单变量函数的最小值。,语法和描述:fminbnd求取固定区间内单变量函数的最小值。x = fminbnd(fun,x1,x2)返回区间x1,x2上fun参数描述的标量函数的最小值x。x = fminbnd(fun,x1,x2,options)用options参数指定的优化参数进行最小化。,fminbnd,3,x = fminbnd(fun,x1,x2,options,P1,P2,.)提供另外的参数P1,P2等,传输给目标函数fun。如果没有设置options选项,则令options=。,x,
2、fval = fminbnd(.)返回解x处目标函数的值。,x,fval,exitflag = fminbnd(.)返回exitflag值描述fminbnd函数的退出条件。,x,fval,exitflag,output = fminbnd(.)返回包含优化信息的结构输出。,4,参数描述表,5,6,7,算法:fminbnd是一个M文件。其算法基于黄金分割法和二次插值法。局限性: 1目标函数必须是连续的。2fminbnd函数可能只给出局部最优解。3当问题的解位于区间边界上时,fminbnd函数的收敛速度常常很慢。此时,fmincon函数的计算速度更快,计算精度更高。4fminbnd函数只用于实数变
3、量。,8,应用实例,例1 在区间(0,2)上求函数sin(x)的最小值:, x = fminbnd(sin,0,2*pi)x =4.7124,9,例2.对边长为3m的正方形铁板,在四个角处剪去相等的正方形以制成方形无盖水槽,问如何剪法使水槽的容积最大? 模型建立:假设剪去的正方形的边长为x,则水槽的容积为,现在要求在区间(0,1.5)上确定一个x,使 最大化。因为优化工具箱中要求目标函数最小化,所以需要对目标函数进行转换,即要求 最小化。,10,首先编写M文件opt21_3o.m:function f = myfun(x)f = -(3-2*x).2 * x;然后调用fminbnd函数(磁盘中
4、M文件名为opt21_3.m):x = fminbnd(opt21_3o,0,1.5),11,无约束非线性规划问题,相关函数,fminunc函数,fminsearch函数,12,fminunc函数 功能:给定初值,求多变量标量函数的最小值。常用于无约束非线性最优化问题。 数学模型: 其中,x为一向量,f(x)为一函数,返回标量。,13,语法格式及描述,x = fminunc(fun,x0)给定初值x0,求fun函数的局部极小点x。x0可以是标量、向量或矩阵。x = fminunc(fun,x0,options)用options参数中指定的优化参数进行最小化。x = fminunc(fun,x0
5、,options,P1,P2,.)将问题参数p1、p2等直接输给目标函数fun,将options参数设置为空矩阵,作为options参数的缺省值。,14,x,fval = fminunc(.)将解x处目标函数的值返回到fval参数中。x,fval,exitflag = fminunc(.)返回exitflag值,描述函数的输出条件。x,fval,exitflag,output = fminunc(.)返回包含优化信息的结构输出。x,fval,exitflag,output,grad = fminunc(.)将解x处fun函数的梯度值返回到grad参数中。x,fval,exitflag,outp
6、ut,grad,hessian = fminunc(.)将解x处目标函数的Hessian矩阵信息返回到hessian参数中。,15,参数描述表,16,17,适用于大型和中型算法的参数:l Diagnostics 打印最小化函数的诊断信息。l Display 显示水平。选择off,不显示输出;选择iter,显示每一步迭代过程的输出;选择final,显示最终结果。打印最小化函数的诊断信息。l GradObj 用户定义的目标函数的梯度。对于大型问题此参数是必选的,对于中型问题则是可选项。l MaxFunEvals 函数评价的最大次数。l MaxIter 最大允许迭代次数。l TolFun 函数值的终
7、止容限。l TolX x处的终止容限。,18,只用于大型算法的参数:l Hessian 用户定义的目标函数的Hessian矩阵。l HessPattern 用于有限差分的Hessian矩阵的稀疏形式。若不方便求fun函数的稀疏Hessian矩阵H,可以通过用梯度的有限差分获得的H的稀疏结构(如非零值的位置等)来得到近似的Hessian矩阵H。若连矩阵的稀疏结构都不知道,则可以将HessPattern设为密集矩阵,在每一次迭代过程中,都将进行密集矩阵的有限差分近似(这是缺省设置)。这将非常麻烦,所以花一些力气得到Hessian矩阵的稀疏结构还是值得的。,19,l MaxPCGIter PCG迭代
8、的最大次数。l PrecondBandWidth PCG前处理的上带宽,缺省时为零。对于有些问题,增加带宽可以减少迭代次数。l TolPCG PCG迭代的终止容限。l TypicalX 典型x值。只用于中型算法的参数:l DerivativeCheck 对用户提供的导数和有限差分求出的导数进行对比。l DiffMaxChange 变量有限差分梯度的最大变化。l DiffMinChange - 变量有限差分梯度的最小变化。l LineSearchType 一维搜索算法的选择。,20,21,22,习题4-6,%目标函数m文件,保存为xiti4j6.mfunction f=myfun(x);f=10
9、*x(1)2+x(2)2-20*x(1)-4*x(2)+24;,%求解m文件options=optimset(display,on,maxiter,10e5,tolfun,10e-5,tolx,0.01);x0=2,-1;x,fval,exigflag,hessian=fminunc(xiti4j6,x0,options),23,x = 1.0000 2.0007fval = 10.0000exigflag = 1hessian = iterations: 6 funcCount: 21 stepsize: 1 firstorderopt: 0.0013 algorithm: medium-s
10、cale: Quasi-Newton line search,24,例:,初始点1,1,程序:编辑ff2.m文件:function f=ff(x)f=8*x(1)-4*x(2)+x(1)2+3*x(2)2;编辑command.m文件x0=1,1;%取初始点:x,fval,exitflag=fminunc(ff,x0),25,Optimization terminated successfully: Search direction less than 2*options.TolXx = -4.0000 0.6667fval = -17.3333exitflag = 1,26,注意1对于求解平方
11、和的问题,fminunc函数不是最好的选择,用lsqnonlin函数效果更佳。2使用大型方法时,必须通过将options.GradObj设置为on来提供梯度信息,否则将给出警告信息。,27,局限性1 目标函数必须是连续的。fminunc函数有时会给出局部最优解。2 fminunc函数只对实数进行优化,即x必须为实数,而且f(x)必须返回实数。当x为复数时,必须将它分解为实部和虚部。,28,fminsearch函数,功能:求解多变量无约束函数的最小值。该函数常用于无约束非线性最优化问题。,x = fminsearch(fun,x0) 初值为x0,求fun函数的局部极小点x。x0可以是标量、向量或
12、矩阵。x = fminsearch(fun,x0,options)用options参数指定的优化参数进行最小化。x = fminsearch(fun,x0,options,P1,P2,.) 将问题参数p1、p2等直接输给目标函数fun,将options参数设置为空矩阵,作为options参数的缺省值。,语法格式及描述:,29,x,fval = fminsearch(.)将x处的目标函数值返回到fval参数中。x,fval,exitflag = fminsearch(.)返回exitflag值,描述函数的退出条件。x,fval,exitflag,output = fminsearch(.)返回包
13、含优化信息的输出参数output。,参数:各参数的意义同fminunc。,30,fminunc与 fminsearch,对于求解二次以上的问题, fminsearch比fminunc更有效,而且当问题为高度非线性时,前者更有效。 fminsearch不适合求解平方和的问题,用lsqnolin更好。,31,三、约束最小化,相关函数介绍,fmincon函数,32,功能:求多变量有约束非线性函数的最小值。,fmincon函数,数学模型:,其中,x, b, beq, lb,和ub为向量, A 和 Aeq 为矩阵, c(x) 和 ceq(x)为函数,返回标量。f(x), c(x), 和 ceq(x)可以
14、是非线性函数。,非线性不等式约束非线性等式约束,线性不等式约束 线性等式约束,设计变量的上下界,33,语法格式及描述:,x = fmincon(fun,x0,A,b) 给定初值x0,求解fun函数的最小值x。fun函数的约束条件为A*x = b,x0可以是标量、向量或矩阵。,x = fmincon(fun,x0,A,b,Aeq,beq) 最小化fun函数,约束条件为Aeq*x = beq 和 A*x = b。若没有不等式存在,则设置A=、b=。,x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub) 定义设计变量x的下界lb和上界ub,使得总是有lb = x = ub。若无
15、等式存在,则令Aeq=、beq=。,x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon) 在上面的基础上,在nonlcon参数中提供非线性不等式c(x)或等式ceq(x)。 fmincon函数要求c(x) = 0且ceq(x) = 0。当无边界存在时,令lb=和(或)ub=。,34,x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options) 用optiions参数指定的参数进行最小化。,x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options,P1,P2,.)
16、将问题参数P1, P2等直接传递给函数fun和nonlin。若不需要这些变量,则传递空矩阵到A, b, Aeq, beq, lb, ub, nonlcon和 options。,x,fval = fmincon(.) 返回解x处的目标函数值。,x,fval,exitflag = fmincon(.) 返回exitflag参数,描述函数计算的退出条件。,35,x,fval,exitflag,output = fmincon(.) 返回包含优化信息的输出参数output。,x,fval,exitflag,output,lambda = fmincon(.) 返回解x处包含拉格朗日乘子的lambda参
17、数。x,fval,exitflag,output,lambda,grad = fmincon(.) 返回解x处fun函数的梯度。x,fval,exitflag,output,lambda,grad,hessian = fmincon(.) 返回解x处fun函数的Hessian矩阵。,36,注意:1 fmincon函数提供了大型优化算法和中型优化算法。默认时,若在fun函数中提供了梯度(options参数的GradObj设置为on),并且只有上下界存在或只有等式约束,fmincon函数将选择大型算法。当既有等式约束又有梯度约束时,使用中型算法。2 fmincon函数的中型算法使用的是序列二次规划
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 优化 工具箱 使用方法 ppt 课件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-2001754.html