// 不调用原有的库函数,求一个数的立方根、平方根 ——牛顿迭代法,不得不说牛顿太伟大了!
我们现在先求平方根: 设函数 f(x) = x^2 – a ,那么求 a 的平方根等价于求 f(x) = 0 , 由牛顿迭代公式有:
x = x0 – f(x0)/f `(x0) ( f `(x) 为函数 f(x) 的一阶导数 f `(x) != 0)
进行迭代:
x1 = x0 –f(x0)/f `(x0)
x2 = x1 – f(x1)/f `(x1)
x3 = x2 – f(x2)/f `(x2)
……
xk+1 = xk – f(xk)/f `(xk) (k = 0,1,2,3……)
同样道理,求立方根时 我们设函数 f(x) = x^3 – a, 那么求 a 的立方根等价于求 f(x) = 0
具体代码:
//迭代法求立方根
public double getCube(double input){
double x = 1;
double x1 = x - (x*x*x - input) / (3*x*x);
while(x - x1 >0.000000001 || x - x1 < -0.000000001){
//判断精度
x = x1;
x1 = x - (x*x*x - input) / (3*x*x);
}
return x1;
}
//迭代法求平方根
public double getSqrt(double input){
double x = 1;
double x1 = x - (x*x - input)/(2*x);
while(x - x1 > 0.00000001 || x - x1 < -0.00000001){
x = x1;
x1 = x - (x*x - input)/(2*x);
}
return x1;
}
今天的文章牛顿迭代法求一个数的立方根,平方根_用牛顿迭代法计算根号19的平方根[通俗易懂]分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/88744.html