牛顿法求平方根

本文介绍了牛顿法求平方根的原理,通过不断迭代更新逼近目标值,初始值为z,每次迭代根据z的平方与目标值x的差值和z的平方导数进行调整。牛顿法利用函数变化率来优化求解,是数值计算中的一个重要算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

牛顿法求平方根

公式

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)))
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值