牛顿法 Newton法
针对无约束优化问题
minf(x)min f(x)minf(x)
想法:对函数f(x)f(x)f(x)在某xkx_kxk值处Taylor展开,可在xkx_kxk附近拟合该函数f(x)f(x)f(x),有:
f(x)=f(xk)+f′(xk)(x−xk)+f′′(xk)(x−xk)22+of(x)=f(x_k)+ f'(x_k)(x-x_k)+f''(x_k)\frac{(x-x_k)^2}2+of(x)=f(xk)+f′(xk)(x−xk)+f′′(xk)2(x−xk)2+o
即
f(x)≈g(x)=f(xk)+∇f(xk)(x−xk)+∇2f(xk)(x−xk)22f(x)\approx g(x)=f(x_k)+ \nabla f(x_k)(x-x_k)+\nabla ^2f(x_k)\frac{(x-x_k)^2}2f(x)≈g(x)=f(xk)+∇f(xk)(x−xk)+∇2f(xk)2(x−xk)2
此时,用g(x)g(x)g(x)近似f(x)f(x)f(x),转化为求g(x)g(x)g(x)的极值点,使g′(x)=0g'(x)=0g′(x)=0,求x即可,顺着这个想法
∇g(x)=∇f(xk)+∇2f(xk)(x−xk)\nabla g(x)= \nabla f(x_k)+\nabla ^2f(x_k)(x-x_k)∇g(x)=∇f(xk)+∇2f(xk)(x−xk)
令∇g(x)=0\nabla g(x)=0∇g(x)=0
∇f(xk)+∇2f(xk)(x−xk)=0\nabla f(x_k)+\nabla ^2f(x_k)(x-x_k)=0∇f(xk)+∇2f(xk)(x−xk)=0
可得
x=xk−∇f(xk)[∇2f(xk)]−1x=x_k-\nabla f(x_k)[\nabla ^2f(x_k)]^{-1}x=xk−∇f(xk)[∇2f(xk)]−1
得到了拟合函数g(x)g(x)g(x)在xkx_kxk附近的最小值点,
回到函数f(x)f(x)f(x),相当于对x进行了迭代,更新为xk+1x_{k+1}xk+1,可继续进行迭代。
方向为 pk=−∇f(xk)[∇2f(xk)]−1p_k=-\nabla f(x_k)[\nabla ^2f(x_k)]^{-1}pk=−∇f(xk)[∇2f(xk)]−1,步长为αk=1\alpha_k=1αk=1
回头看,要求海塞矩阵是正定的,不然无法求逆,无法进行迭代。
Newton算法
设定控制误差ϵ>0\epsilon>0ϵ>0
- 选取初始点xkx_kxk,令k=0k=0k=0
- 计算 梯度∇f(xk)\nabla f(x_k)∇f(xk)
- 若∣∣∇f(xk)∣∣≤ϵ||\nabla f(x_k)||\leq\epsilon∣∣∇f(xk)∣∣≤ϵ,则x∗=xkx^*=x_kx∗=xk,迭代停止;
否则,计算海塞矩阵并求逆[∇2f(xk)]−1[\nabla ^2f(x_k)]^{-1}[∇2f(xk)]−1,构造牛顿方向pk=−∇f(xk)[∇2f(xk)]−1p_k=-\nabla f(x_k)[\nabla ^2f(x_k)]^{-1}pk=−∇f(xk)[∇2f(xk)]−1 - 令xk+1=xk+pk,k=k+1x_{k+1}=x_{k}+p_k, k=k+1xk+1=xk+pk,k=k+1,转2
2915

被折叠的 条评论
为什么被折叠?



