牛頓法求平方根

牛頓法求平方根

公式

z -= (z * z - x) / (2 * z)
重複調用過程使得猜測結果越來越接近。
z的初始值爲x/2

上面z^ 2-x 是z^ 2到x的距離,除以的2z爲z^ 2的導數,我們通過z^ 2的變化速度來改變z的調整量。這種方法叫做牛頓法。

package main

import (
	"fmt"
)

func Sqrt(x float64) (int, float64) {
	z := x/2
	z_p := 0.0
	index := 0
	for {
		index ++
		if -0.0001 < z_p - z && z_p - z < 0.0001 {
			break
		}
		z_p = z
		z -= (z * z - x) / (2 * z)
	}
	return index,z
}

func main() {
	for x :=100000; x < 100100; x++{
		fmt.Println(Sqrt(float64(x)))
	}
}
發佈了61 篇原創文章 · 獲贊 53 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章