牛顿迭代法求一个数的立方根、平方根
2017-04-21 16:17
183 查看
// 不调用原有的库函数,求一个数的立方根、平方根 ------牛顿迭代法,不得不说牛顿太伟大了!
我们现在先求平方根: 设函数 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;
}
我们现在先求平方根: 设函数 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;
}
相关文章推荐
- 求一个数的平方根—牛顿迭代法
- 牛顿迭代法应用——求数的平方根和立方根
- 不用sqrt库函数求一个整数的平方根(牛顿迭代法)
- 牛顿迭代法求一个数的平方根
- 一个求实数立方根的C语言函数(牛顿迭代法)
- 编写一个程序,要求用户输入下限整数和一个上限整数,然后,依次计算从下限到上限的每一个整数的平方的加和,最后显示结果
- 谷歌面试题:判断一个自然数是否是某个数的平方
- 一个计算平方根的简单算法
- 编写一个程序打印一个表,表的每一行都给出一个整数、它的平方以及它的立方
- JAVA BigInteger 类用例 1:求一个大整数的平方根的整数部分 (SGU 111)
- 判断一个自然数是否是某个数的平方
- 构造一个四位数,前两位和后两位分别相等,但不完全相等,且该数是一个数的平方
- 625这个数字很特别,625的平方等于390625,刚好其末3位是625本身。除了625,还有其它的3位数有这个特征吗?还有一个!该数是:_____________
- 一个用神奇的数 - 0x5f3759df 来求平方根的方法!
- 简单题-不用库函数,求解一个数字的平方根
- 判断一个自然数是否是某个数的平方。当然不能使用开方运算—谷歌
- 求一个数的平方
- 在新建Word文档后,复制某处的文字,并在新的WORD里面粘贴,出现一个图标:m2(m平方)!【解决办法】
- 用牛顿迭代法求浮点数的平方根
- 求一个范围内的所有整数的平方和