求解非线性方程组的非精确牛顿法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
求解非线性方程组的非精确牛顿法
摘要:在经典牛顿法的基础上,给出了求解非线性方程组的非精确牛顿法。
在一定的条件下,证明了该算法的超线性收敛性,并且这个收敛性是二阶的。
关键词:非线性方程组;非精确牛顿法;收敛性
对于无约束问题: minf(x) (1) 其中x∈Rn,f∶Rn→R是一个连续可微函数。
求解无约束优化问题方法大都属于迭代法,这类算法特点是:每一次迭代都要求函数值有所下降,因此人们称这类算法为下降法。
当下降方向取为负梯度时,此时函数值下降量最大,人们称它为最速下降法。
它是无约束最优化问题中最简单的方法,它具有全局收敛性,并且存储最较少,因此它适合于解决大型优化问题。
但它的缺点是收敛速度慢,在最优点处附近容易产生锯齿现象,为了改善收敛速度,人们提出了牛顿法。
牛顿法的基本思想是,在极小点附近用二阶Taylor多项式近似目标函数f(x),进而求出极小点的估计值。
设f(x)是二次可微实函数,x∈Rn。
又设x(k)是f(x)的极小点的一个估计,把f(x)在x(k)展成Taylor级数,并取二阶近似:
f(x)≈Φ(x)=f(x(k))+ f(x(k))T(x-x(k))+12(x-x(k))T 2f(x(k))(x-x(k)) (2) 令Φ(x)=0,可得:
x(k+1)=x(k)- 2f(x(k))-1 f(x(k)) (3)
运用牛顿法时,初点的选择十分重要。
如果初始点靠近极小点,则可能很快收敛;如果初始点远离极小点,迭代产生的点列可能不收敛于极小点。
为了克服这个缺点,可以改进迭代公式(3):
x(k+1)=x(k)+λkd(k)(4)
其中d(k)=- 2f(x(k))-1 f(x(k))为牛顿方向,λk是由一维搜索得到的步长,即满足:
f(x(k)+λkd(k))=minλf(x(k)+λd(k)) 这样修改后的算法称为阻尼牛顿法。
由于阻尼牛顿法含有一维搜索,因此每次迭代目标函数值一般有所下降(绝不会上升)。
可以证明,阻尼牛顿法在适当的条件下具有全局收敛性。
尽管阻尼牛顿法相对经典牛顿法而言前进了一步,但还是存在明显的缺点:当Hesse矩阵奇异时,d(k)不能确定;即使定出了d(k),也不能保证它是下降方向。
为了克服上述的缺点,人们采用了强迫矩阵正定的策略来改进牛顿法[4-6],并提出了非精确牛顿法。
与经典牛顿法相比,它在每次迭代中内是近似地求解牛顿方程,因此计算量少很多。
笔者借助无约束优化中非精确牛顿法的思想,将其推广到求解非线性方程组。
在本文中给出了求解非线性方程组的非精确牛顿法,并在一定的条件下,证明了该算法的超线性收敛性,并且这个收敛性是二阶的。
考虑非线性方程组
r(x)=0 (5)
并且记J(x)= r(x),其中r∶Rn→Rn具有以下性质:
(1)存在x*使得r*(x)=0;
(2)J(x*)非奇异;
(3)r在x*的邻域中连续可微。
经典牛顿解法为:
J(xk)pk=-r(xk) (6)
令xk+1=xk+pk(7)
现考虑非精确牛顿法,对(6)式进行改进,使得pk满足以下条件:
‖rk+Jkpk‖≤ηk‖rk‖, ηk∈[0,η] (8)
其中η∈[0,1]是一个常数。
显然,当η=0时,则(8)就变成了经典牛顿公式。
算法:
Stepl:给定η的值和允许误差ε>0,初始点x0且令k=0。
Step2:若‖J(xk)‖<ε,则停止迭代;得到点x(k)。
Step3:否则选择合适的η,使得pk满足‖rk+Jkpk‖≤ηk‖rk‖, ηk∈[0,η],令xk+1=xk+pk。
Step4:置k=k+1,转Step2。
定理1 假设r(x)在开凸集D Rn上是连续可微的,x*是r(x)=0的解,若对于(8)式中的η足够的小,则迭代序列{xk}收敛到x*,并且收敛是线性的。
证明:先将(8)式改写成如下形式;
J(xk)pk=-r(xk)+vk, (9)
其中‖υk‖≤ηk‖γ(xk)‖。
因为J(x*)非奇异,故存在δ>0,β>0,δ>0,当‖x-x*‖≤δ时,有:‖J(x)-1‖≤β,且x∈D(10)
在式(9)两边同乘以J(xk)-1,可得到:
Pk+J(xk)-1r(xk)=J(xk)-1vk≤βηk‖r(xk)‖(11)
因为r*(x)=0,则
r(xk)=r(xk)-r(x*)
=J(xk)(xk-x*)+∫10[J(xk+t(x*-xk))-J(xk)](xk-x*)dt
=J(xk)(xk-x*)+ο(‖xk-x*‖) (12)
此处可令ω(x)=ο(‖xk-x*‖),定义ρ(x)=‖ω(x)‖‖xk-x*‖,对(12)两边取范数,有:
‖r(x)‖≤2‖J(x*)‖‖xk-x*‖+ο‖xk-x*‖≤4‖J(x*)‖‖x-x*(13)
将(12)式代入(13)式,可得:
‖xk-pk-x*‖≤4‖J(x*)‖βηk‖βηk‖xk-x*‖+‖J(xk)-1‖‖ω(x)‖≤
(4‖J(x*)‖βηk+βρ(x))‖xk-x*‖(14)
若xk充分接近x*,使得ρ(x)≤14β,并且我们可以选取η=18‖J(x*)β‖,则(14)式可以进一步放大为:
‖xk+pk-x*‖≤34‖xk-x*‖(15)
故依定义可知,迭代序列{xk}收敛到x*,并且收敛是线性的。
定理2 设定理1的假设条件成立,假定非精确牛顿法产生的序列{xk}收敛到x*,那么当ηk→0,{xk}超收敛到x*。
证明:若ηk→0,则在(14)中,意味着小括号里的表达式也趋于0。
依超线性收敛的定义,可得{xk}超收敛到x*。
定理3 设定理1的假设条件成立,且J(x)满足Lipschitz条件和ηk=ο(‖rk‖),则{xk}二阶收敛到x*。
证明:如同(12)的讨论,将其改写为
r(xk)=r(xk)-r(x*)=J(xk)(xk-x*)+w(xk,x*) (16)
此处
w(xk,x*)=∫10[J(xk+t(x*-xk))](xk-x*)dt(17)
式(17)两端取范数,有:
‖∫10[J(xk+tp)-J(x)]pdt‖≤‖∫10‖J(x+tp)-J(x)‖p‖dt 同时,因为J(x)满足Lipschitz条件,得:
‖w(xk,x*)‖=O‖(xk-x*)‖2 (18) 式(16)两端同乘以J(xk)-1并利用(6)式,可得到:
-pk-(xk-x*)=J(xk)-1w*(xk,x*)
对式两端取范数且利用(18)式,可得:
‖xk+1-x*‖=O‖xk-x*‖2
定理证毕。
[参考文献]
[1] Nocedal J,Stephen R.Numerical Optimization[M].NewYork:springer,1999:88-102.
[2] Fletcher R,Freeman D.Amodified Newton method for minimization[J]. JOTA ,1977(23):57-72.
[3]袁亚湘,孙文渝.最优化理论与方法[M].北京:科学出版社,1997:121-136.
[4]费浦生,陈忠.改进无约束优化的BFGS算法[J].武汉大学学报,1994(3),1-8.
[5]周惠山.一个超线性收敛的既约梯度法[J].应用数学学报,1983,6(4):433-439.
[6]袁亚湘.非线性规划数值方法[M].上海:上海科学技术出版社,1992:243-257.。