再帰を使用して解決する必要があるという質問がありました。ニュートン法についてです。アルゴリズムは小さな数では問題なく動作しますが、突然大きな数を与えると、プログラムはループに陥ります。
これは、ニュートンの方法の説明として私が与えられたものです。
最初に =x から始めるように言われました
- |a*ax|<= イプシロンの場合、a は許容範囲内の x の平方根です。それ以外は
- a を (a*a+x)/(2*a) に置き換えて、ステップ 1 を繰り返します。
これは私のコードです: x は、平方根をオフにする必要がある数値であり、e は許容範囲です。
public static double sqrtR (int x, double e, int a) {
if (Math.abs(a * a - x) <= e) {
return a;
} else {
a = (a * a + x) / (2 * a);
return 1.0 *(sqrtR(x, e, a));
}
}