2、单的梯度算法)3牛顿算法y(k)=gk+1–gks(k)=x(k+1)-x(k)Hk+1=Hk+……d(k+1)=-Hk+1gk+1拟牛顿算法共轭梯度算法习题1-1给定函数f(x)=(6+x1+x2)2+(2-3x1-3x2-x1x2)2点x=(-4,6)T(1)给出X处的最速下降方向;(2)给出X处的牛顿方向,并判断此方向是否为下降方向;(3)设H0=I(单位阵),利用拟牛顿法,从X开始迭代,给出下一个迭代点处的搜索方向;(4)利用共轭梯度法,从X开始迭代,给出下一个迭代点处的搜索方向。MATLAB求解无
3、约束最优化问题2021/9/39具体常用的命令格式(1)x=fminunc(fun,X0);或x=fminsearch(fun,X0)(2)x=fminunc(fun,X0,options);或x=fminsearch(fun,X0,options)(3)[x,fval]=fminunc(...);或[x,fval]=fminsearch(...)(4)[x,fval,exitflag]=fminunc(...);或[x,fval,exitflag]=fminsearch(5)[x,fval,exitfla
4、g,output]=fminunc(...);或[x,fval,exitflag,output]=fminsearch(...)控制参数opt的设置(3)MaxIter:允许进行迭代的最大次数,取值为正整数.Options中常用的几个参数的名称、含义、取值如下:(1)Display:显示水平.取值为’off’时,不显示输出;取值为’iter’时,显示每次迭代的信息;取值为’final’时,显示最终结果.默认值为’final’.(2)MaxFunEvals:允许进行函数评价的最大次数,取值为正整数.例:opt
5、s=optimset(‘Display’,’iter’,’TolFun’,1e-8)该语句创建一个称为opts的优化选项结构,其中显示参数设为’iter’,TolFun参数设为1e-8.控制参数options可以通过函数optimset创建或修改。命令的格式如下:(1)options=optimset(‘optimfun’)创建一个含有所有参数名,并与优化函数optimfun相关的默认值的选项结构options.(2)options=optimset(‘param1’,value1,’param2’,val
6、ue2,...)创建一个名称为options的优化选项参数,其中指定的参数具有指定值,所有未指定的参数取默认值.(3)options=optimset(oldops,‘param1’,value1,’param2’,value2,...)创建名称为oldops的参数的拷贝,用指定的参数值修改oldops中相应的参数.返回[3]fminunc为中型优化算法的步长一维搜索提供了两种算法,由options中参数LineSearchType控制:LineSearchType=’quadcubic’(缺省值),混合的
7、二次和三次多项式插值;LineSearchType=’cubicpoly’,三次多项式插使用fminunc和fminsearch可能会得到局部最优解.说明:fminsearch是用单纯形法寻优.fminunc的算法见以下几点说明:[1]fminunc为无约束优化提供了大型优化和中型优化算法。由options中的参数LargeScale控制:LargeScale=’on’(默认值),使用大型算法LargeScale=’off’(默认值),使用中型算法[2]fminunc为中型优化算法的搜索方向提供了4种算法,
8、由options中的参数HessUpdate控制:HessUpdate=’bfgs’(默认值),拟牛顿法的BFGS公式;HessUpdate=’dfp’,拟牛顿法的DFP公式;HessUpdate=’steepdesc’,最速下降法【例】2021/9/314例minf(x)=(4x12+2x22+4x1x2+2x2+1)*exp(x1)1、编写M-文件fun1.m:functionf=fun1(x)f=exp(x