Java计算N的平方根(牛顿迭代法)

本文介绍了如何使用牛顿迭代法求解平方根问题,通过逐步逼近并利用切线方程,实现了一个Java函数newton(),并揭示了迭代公式背后的数学逻辑。关键步骤包括设置初始猜测值、计算平方根迭代和递归终止条件。
摘要由CSDN通过智能技术生成

设平方根为x,则N=x²
f(x)=x²-N
f’(x)=2x,切线斜率为2x
则在f(x)在点Xn的切线方程为f(x)-(Xn²-N)=2Xn(x-Xn)
f(x)=0时
x=(Xn+N/Xn)/2

public static int newton(int x) { if(x==0) return 0; return ((int)(sqrts(x,x))); }public static double sqrts(double i,int x){ double res = (i + x / i) / 2; if (res == i) { return i; } else { return sqrts(res,x); } }

假设平方根是 i ,则 i 和 x/i 必然都是x的因子,而 x/i 必然等于 i ,推导出 i + x / i = 2 * i,得出 i = (i +x / i) / 2
由此得出解法,i 可以任选一个值,只要上述公式成立,i 必然就是x的平方根,如果不成立, (i + x / i) /2得出的值进行递归,直至得出正确解

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值