概述
当迭代次数够多的时候,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次已经很精确了。
最后
以上就是开心柜子为你收集整理的【算法】牛顿迭代法的全部内容,希望文章能够帮你解决【算法】牛顿迭代法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复