数値計算(numerical computation)
ニュートン法(Newton's method), ニュートン・ラフソン法(Newton-Raphson method)
非線型方程式の反復的な数値解法の一つ。
もう少し詳しい説明はニュートン法 - Wikipedia。
初期値を与えて、を収束するまで(例えば、増分が小さくなる()まで)繰り返す。初期値によっては、収束するとは限らないので、最大反復数を決めておいて、それを超えると打ち切るようにしたほうがいい。
は点の接線と軸との交点の座標になっている。
static interface Function { public double f(double x); public double fp(double x); } static double Newton(double x0, int N_MAX, Function func) throws Exception{ double x = x0; for(int i = 0; i < N_MAX; ++i){ double delta = func.f(x)/func.fp(x); x -= delta; if(equal(delta, 0)) return x; } throw new Exception(); }