拟牛顿法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
拟牛顿法
牛顿法有很好的收敛性,特别是当初始点x0选择在最终解x*附近时,收敛速度叫梯度法更快,但是当初始迭代点远离x*,收敛速度慢且不能保证收敛,当其Hession <0,迭代算法不会像函数值减小的方向前进。针对newton法的这些弱点,提出了改进方法:拟牛顿方法,包括rank one,DFP和BFGS三种算法。
(1)Rank one
选用aster书《An Introduction to Optimization》中实例验证
目标函数:f(x1,x2)=x1^2+0.5*x2^2+3,是一个二次型函数。初始值x0=[1,2]’;,精度
1.0e-5控制迭代终止,当norm(G)<=1.0e-5时,迭代终止;取H0=I2,Q=[2,0;0,1];
①迭代结果:经过两次迭代之后,迭代停止,得值x=【0,0】’。
②改变初始值为远离x= [0,0]’的值x0=[1000,2]’,和x0=[1000,1000]’,算法经过两步迭代后都收敛到x=【0,0】’。
算法的结果验证了书中结论:不论初始值X0如何选取,稚一算法在n步迭代之内收敛到终解。
稚一算法对于恒定hess矩阵的情况非常好,也就是对二次型问题问题非常有效,但是对于非二次型问题,H(k)可能是非正定的,这样函数不能向下降的方向前进,这就引出下面的稚二算法。
(2)DFP
目标函数:f(x1,x2)=2*(x1^2)+x2^2+2*x1*x2+x1-x2;
即:f(x1,x2)=1/2*[x1,x2]*[4,2;2,2]* [x1,x2]’-[x1,x2]*[-1,1]’;
初始点x0=[0,0]’,取H0=I2,Q=[4,2;2,2]。H0是一个实对称正定矩阵,第一次迭代后,H1=[0.5,-0.5;-0.5,1.5]是一个非对称正定矩阵,此时就体现出稚二算法的优势,第二次迭代后,满足norm(G)<=1.0e-5条件,迭代终止,的解x=【-1.0,1.5】’。同样,改变初值x0=[100,4]及x0=[100,100]都在迭代两步后收敛到x=[-1.0,1.5]’;
结果证明了DFP算法较稚一算法的优越之处:在Hess矩阵不是对称正定矩阵是,依然可以收敛。
(3)BFGS
DFP算法较稚一算法有很好的优越性,但是对于较强的非二次型反问题,DFP算法也会“噎住”,因为H(k)几乎变得奇异,针对这个问题,提出了改进的算法BFGS算法。
目标函数:f(x1,x2)=1/2* x’*Q* x- x’*b+log(π);
其中Q=[5,-3;-3,2];b=[0;1];取H0=I2,x0=[0;0]。
迭代H1= [1.0,1.5;1.5,2.75]为非对称正定矩阵,迭代在两步后收敛到x=[3,5]’;