【摘要】:在点xk处,f的泰勒展开式为令,可得我们希望式中产生的点x是f的最小点x*,否则令x=xk+1,作为x*一个新的近似点,方向称为牛顿方向,使用公式建立的迭代算法为牛顿法,其计算步骤如下:步骤1:选择初始点x0,误差ε>0,令k=0;步骤2:计算,停止计算。定理3.1.6 设f在Rn的开集D上二阶连续可微,其Hesse矩阵满足Lipschitz条件,即存在常数L>0,对所有i,j,成立。阻尼牛顿法在MATLAB中的程序实现如下所示:程序3.2
牛顿法对于一点xk,将目标函数f(x)在点xk处做泰勒展开至二次项,略去高次项,以展开式近似代替f(x),求其最小值点,从而得到牛顿法的迭代计算公式。
在点xk处,f(x)的泰勒展开式为
令,可得
我们希望式(3.1.7)中产生的点x是f(x)的最小点x*,否则令x=xk+1,作为x*一个新的近似点,
方向称为牛顿方向,使用公式(3.1.16)建立的迭代算法为牛顿法,其计算步骤如下:
步骤1:选择初始点x0,误差ε>0,令k=0;
步骤2:计算,停止计算。xk为近似最优解;
步骤3:由计算得到dk;(www.xing528.com)
步骤4:,转回步骤2。
定理3.1.6(牛顿法的收敛性) 设f(x)在Rn的开集D上二阶连续可微,其Hesse矩阵满足Lipschitz条件,即存在常数L>0,对所有i,j,
成立。
该定理给出了牛顿法的局部收敛性,当迭代点充分接近x*时,方可保证牛顿法的收敛性,方法以二阶收敛速度收敛。牛顿方法的收敛性依赖于初始点的选择。当初始点接近极小点时,迭代序列收敛于极小点,且收敛很快;否则就会出现迭代数列收敛到鞍点或极大点的情形,或者在迭代过程中出现矩阵不正定或奇异的情形,使线性方程组不能求解,导致迭代失败。即使其Hesse矩阵正定,也不能保证{fk}单调下降。且每一步都需要求解Hesse矩阵和一个线性方程组,计算量较大。
上述牛顿法中步长为1,为改善牛顿法的局部收敛性质,保证f(x)的单调下降性,可以用线性搜索来求步长αk,这种方法称为阻尼牛顿法。
阻尼牛顿法在MATLAB中的程序实现如下所示:
程序3.2 (阻尼牛顿法)
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。