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

概述




当迭代次数够多的时候,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次已经很精确了。


最后

以上就是开心柜子为你收集整理的【算法】牛顿迭代法的全部内容,希望文章能够帮你解决【算法】牛顿迭代法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部