您的位置:首页 > 其它

牛顿开方法的算法及其原理

2016-02-13 21:10 337 查看
【牛顿迭代法】

假设方程 在 附近有一个根,那么用以下迭代式子:



依次计算、、、……,那么序列将无限逼近方程的根。

牛顿迭代法的原理很简单,其实是根据f(x)在x0附近的值和斜率,估计f(x)和x轴的交点,看下面的动态图:



【用牛顿迭代法开平方】



【go实现】

package main

import (
"fmt"
"math"
)

func Sqrt(x float64) float64 {
pre := 0.0
z := float64(1)
for math.Abs(z -pre) > 1e-10 {  //修改循环条件,使得当值停止改变(或改变非常小)的时候退出循环。
pre = z
z = z - (z*z-x)/(2*z)
}
return z
}

func main() {
fmt.Println(Sqrt(2))
fmt.Println(math.Sqrt(2))
}

输出结果:
1.4142135623730951 (尽然和math库中的精度一致,可以修改1e-10查看变化)
1.4142135623730951


[参考文献]

牛顿开方法及其原理 http://www.guokr.com/question/461510/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: