求一个数的立方根

Java中求立方根需要了解牛顿迭代法,具体证明过程略,最终推导得出的结论如下:

f(x)=x^3-y, 求f(x)=0时的解x,即为y的立方根。 根据牛顿迭代思想,x_{n+1}=x_{n}-f(x_n)/f'(x_n)x=x-(x^3-y)/3x^2=(2x+y/x/x)/3;

 

牛顿迭代法:

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        double a = in.nextDouble();
        double b = getLFG(a);
        System.out.print(b);
    }
    
    public static double getLFG(double num){
        if(num == 0 || num==1 || num == -1){
            return num;
        }
        double p = num;
        double q = (2*p+num/(p*p))/3;
        while(Math.abs(p-q)<0.0001){
            p = q;
            q = (2*p+num/(p*p))/3;
        }
     return q; } }

 

 

 

 

Over...

 

posted @ 2021-01-27 20:26  额是无名小卒儿  阅读(273)  评论(0编辑  收藏  举报