牛顿迭代法
牛顿迭代法
介绍
牛顿法是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。牛顿法常用来求解非线程方程近似根。牛顿法通过迭代的方式去逼近方程的解。
原理
如图所示,牛顿法通过迭代的方式去逼近方程的解,通过利用初始点的斜率去逼近方程的根。而点的斜率公式又可以通过方程的导数得出。我们在(x0,f(x0))
斜率做斜线f'(x0)
,求出与X
轴的交点x1
,重复以上过程直到f(xn)
无限接近于0即可。
设有一非线性方程f(x)
,为了求该方程的根,可以设一个初始值x0
,设该点的斜率方程为f'(x0)
,那么f'(x0)
和X轴有交点x1
。那么,可以得出x1=x0-f(x0)/f'(x0)
。求出x1
后就继续求x2
,x3
。直至f(xn)
接近于0,当然也可以用两个点xn
和xn-1
之间的差接近于0来代表迭代的结束;于是有以下公式:
x
n
+
1
=
x
n
−
f
(
x
n
)
f
′
(
x
n
)
x_{n+1}=x_{n}-\frac{f\left(x_{n}\right)}{f^{\prime}\left(x_{n}\right)}
xn+1=xn−f′(xn)f(xn)
例题
leetcode第69题.x的平方根
如题:
解题思路:
x 的平方根 - x 的平方根 - 力扣(LeetCode)
注意题目不允许使用任何内置指数函数和算符,例如 pow(x, 0.5)
或者 x ** 0.5
,去求要求的数的平方根
在解题中设待求平方根的数为C,那么求平方根的公式为
f
(
x
)
=
x
2
−
C
f(x)=x^{2}-C
f(x)=x2−C
然后根据上面的牛顿迭代公式:
x
n
+
1
=
x
n
−
f
(
x
n
)
f
′
(
x
n
)
x_{n+1}=x_{n}-\frac{f\left(x_{n}\right)}{f^{\prime}\left(x_{n}\right)}
xn+1=xn−f′(xn)f(xn)
可以得出:
x
i
+
1
=
1
2
(
x
i
+
C
x
i
)
x_{i+1}=\frac{1}{2}\left(x_{i}+\frac{C}{x_{i}}\right)
xi+1=21(xi+xiC)
然后题目设x0=C为初始值
x
0
=
C
x_{0}=C
x0=C
通过迭代去逼近方程中的其中的一个解,即是C的平方根
x
=
C
x=\sqrt{C}
x=C
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)