牛顿平方根Java程序
我写这个程序是为了展示牛顿求平方根的方法,然后运行数学函数来求平方根,然后把它们都打印出来。数学部分工作得很好,但是我创建的循环没有给出牛顿法的正确平方根。有什么想法吗?提前谢谢
package newton_sqrt;
import java.util.Scanner;
public class Newton_sqrt {
public static void main(String[] args) {
double guess, new_guess, last_guess, accuracy, n, x, absolutex;
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter in N for Newton: ");
n = keyboard.nextDouble();
last_guess = n / 2;
do {
new_guess = ((n/last_guess) + last_guess)/2;
x = new_guess - last_guess;
if(x>=0)
absolutex=x;
else
absolutex=-x;
} while(absolutex < .000001);
System.out.println("Newton = " +new_guess);
double mth = Math.sqrt(n);
System.out.println("Math.sqrt = " +mth);
}
}
# 1 楼答案
反转循环条件。当
absolutex
比epsilon大时,您希望循环,而不是当它小时。当它足够小时,您希望停止# 2 楼答案
看起来数学部分需要一些调整,循环条件也是如此。试试看,它很管用