牛顿迭代法

牛顿迭代法

求近似解

概念

牛顿法又称为牛顿-拉弗森方法,它是一种在实数域和复数域上近似求解方程的方法。方法使用函数f(x)的泰勒级数的前面几项来寻找方程f(x)=0的根。

注意:牛顿法只能逼近解,不能计算精确解。

原理

利用泰勒公式,在x0处展开,展开到一阶,即:

(1)f(x)=f(x0)f(x0)(xx0)

f(x)=0,就是我们要找的方程的解,即:

(2)x1=x0f(x0)f(x0)

同理,在x1处展开,则:

(3)x2=x1f(x1)f(x1)

依次计算,最终的根将无线逼近方程的解:

(4)xn+1=xnf(xn)f(xn)

开二次方

要求常数a的近似解,我们可以构造函数,f(x)=x2af(x)=2x,则原来的牛顿迭代式为:

(5)xn+1=xnxn2a2xn=12(xn+a/xn)

给方程一个迭代初始值,x0=a,然后依次迭代求得方程近似解。

注意:初始化为负数可能会出现负数。

代码

public static double static sqrt(double a){ if(a<0) return Double.NAN; double e=1e-7; double t=a; while(Math.abs(t*t-a)>e) { t=(a/t+t)/2.0; } return t; }

拓展

牛顿法开k次方,构造函数f(x)=xkaf(x)=kxk1,则牛顿迭代式为:

(6)xn+1=xnxnkakxnk1=k1kxn+akxnk1

(1) 牛顿法

优化算法

除了经常被提起的梯度下降法,牛顿法也是机器学习中用的比较多的一种优化算法,牛顿法的速度很快,而且能高度逼近最优值。

求解优化函数f(x),转化为求f(x)=0的解。

xk点进行泰勒展开,具体展开到二阶:

(7)f(x)=f(xk)+f(xk)(xxk)+12f(xk)(xxk)2

函数两边同时对x求导,并令f(x):

(8)f(x)=f(xk)+f(xk)(xxk)=0

(9)x=xkf(xk)f(xk)

公式(9)就是牛顿迭代更新公式。


__EOF__

本文作者libraxionghao
本文链接https://www.cnblogs.com/libraxionghao/p/16167467.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   LibraXiong  阅读(986)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
点击右上角即可分享
微信分享提示