我是靠谱客的博主 开心柜子,这篇文章主要介绍【算法】牛顿迭代法,现在分享给大家,希望可以做个参考。




当迭代次数够多的时候,xi就接近正确的值x了。那么, 红线斜率

k = f'(xn)

一点数学运算,可以算出 Xn+1 = Xn - f(Xn)/f'(Xn) (点斜式写出红线方程,令Y=0 即可得出 Xn+1了。

初始值可以随便挑选,只要迭代次数够多,总能得到接近的结果。


一个例子——用python实现,求参数n的平方根:

平方根的话,相当于 给定y,函数  f(x) = x^2-y ,求零点x ,代入上面的模型,得 迭代公示   Xn+1 = 1/2 * ( Xn + Y/Xn ) 。

附代码:

import math
def Newton_iteration_on_Sqrt( n ):
""" Sqrt(n) by Newton_iteration """
result = 1
for i in range(10):
result = (1 / 2) * (result + n / result)
return result
print Newton_iteration_on_Sqrt( 13 )

迭代10次已经很精确了。


最后

以上就是开心柜子最近收集整理的关于【算法】牛顿迭代法的全部内容,更多相关【算法】牛顿迭代法内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部