Go实现牛顿迭代用于计算平方根
牛顿迭代计算平方根的数学原理这里不做解释,给出迭代公式: 要计算 x^2 = a 得到x的值。可以用以下公式进行迭代计算: 下面为Go语言实现版本,作为Golang学习练习。
package main
import (
"fmt"
"math"
)
func Sqrt(x
float64) float64 {
lim
:= 1e-8 #迭代精度
count
:= 100 #最大迭代次数
now_index
:= 0
z_old
:= x #初始化
z_new
:= x
/2
for (now_index
< count
) && math
.Abs(z_new
- z_old
) > lim
{
z_old
= z_new
z_new
= (z_old
*z_old
+ x
)/(2*z_old
) #迭代公式
now_index
= now_index
+ 1
}
return z_new
}
func main() {
fmt
.Println(Sqrt(2))
fmt
.Println(math
.Sqrt(2))
}
转载请注明原文地址:https://blackberry.8miu.com/read-31903.html