c#牛顿跌用牛顿迭代法求根号17平方根

迭代是一种数值方法,具体指從一个初始值一步步地通过迭代过程,逐步逼近真实值的方法
与之相对的是直接法,也就是通过构建解析解一步求出问题的方法。

通常情况下我们总是喜欢一步得到问题的结果,因此直接法总是优先考虑的
但是,当遇到复杂的问题时特别在未知量很多,方程非線性时无法得到直接解法(例如五次方程并没有解析解)。
这时候我们需要使用迭代,一步步逼近得到问题的答案。

牛顿迭代法求解如下问题的根x

方法中,迭代变量是根x 迭代关系式如上,迭代终止条件是:

牛顿迭代法需要满足的条件是:
f(x) 是连续的并且待求的零点x 是孤立的。
那么在零点x 周围存在一个区域,只要初始值x0 位于这个邻域内那么牛顿法必然收敛。
并且如果f(x) 不为0,那么牛顿法将具有平方收敛的特性也就是,每迭代一次其结果的有效倍数将增加一倍。


Sedgewick的《Algorithm》第一章有一段使用牛顿迭玳法计算平方根的代码开始没理解代码的意思,上网查阅资料后搞清楚了原理并整理了自己的思路。

要求 c c 的平方根

2 ? c 的斜率为:

通过上述步骤便得到了 xn+1

0

  1. rem 原理来源于牛顿迭代法只能计算1-214748,保留两位小数

    • 还可以就是精度差了点技术 + 1

我要回帖

更多关于 用牛顿迭代法求根号17 的文章

 

随机推荐