输入一个整数x,求x的1/2次幂
牛顿迭代公式推导:
1、F(x) = X ^ 2 - N,求F(x) = 0与X轴的交点
2、原理:
找到X轴交点最靠近的整数,然后让它对应的Y值通过增量不断靠近0,获得X轴的近似值
分析:
(1)切线方程:Y1 - Y0 = k ( X1 - X0)
(2)因为Y0= X0 ^ 2 - N,Y1 = 0,得到X1 = X0 - Y0 / k
(3) 求导公式:当X = X0时,k = 2 * X0
(4)X1 = X0 - (X0^2 - N)/ (2*X0) = X0 / 2 + N / (2 * X0)
(5)迭代3次获取的近似值可以精确度达到10 ^ -10
原理:找到X轴交点最靠近的整数,然后让它对应的Y值通过增量不断靠近0,获得X轴的近似值
实现求1/2次幂的Java代码:
public class MySqrt {
/*
* (1)先找到左边最靠近的值
* (2)利用牛顿迭代法3次可以得到误差较小的近似值
* */
public static double sqrt (int x) {
if(x