Newton-Raphson 法


Newton(-Raphson) 法 (Newton の反復法) というのは, 方程式 f(x) = 0 の近似解を求める方法の一つである。 どちらかというと補遺で扱うような内容であるが, 「微分 3」 自体が非常に小さい block であるから, 別建てせずに書いてしまうことにした。

x = α を真の解, 即ち f(α) = 0 とする。 α の適当な近傍 I で, f ∈ C2(I) (つまり f''(x) までは存在して I で連続),  f'(x) ≠ 0 on I, f''(α) ≠ 0 を仮定しておく。 x0 ∈ I を十分 α に近い値に採れるならば, 初期条件 x0 の元で漸化式

xn+1 = xn - f(xn)/f'(xn)

が定める数列 {xn} は α に収束する。 これを Newton-Raphson 法 (又は Newton の反復法) という。

先ず I を α の h 近傍としておこう, 即ち I = [α - h, α + h], h > 0. h の大きさは後で考えるとする。 x ∈ I  に関し

f(α) - f(x) = ∫01f'(x + t(α - x))(α - x)dt

であることはすぐに分かる。 簡単の為に F(x) = x - f(x)/f'(x) とすると (仮定により I 上では well-defined で)

F(x) - F(α) = x - f(x)/f'(x) - (α - f(α)/f'(α)) = x - α - f(x)/f'(x)
= -(α - x) + (f(α) - f(x))/f'(x) = (1/f'(x))(f(α) - f(x) - f'(x)(α - x))
= (1/f'(x))∫01(f'(x + t(α - x)) - f'(x))(α - x)dt.

更に, 平均値の定理から

f'(x + t(α - x)) - f'(x) = t(α - x)f''(x + θt(α - x)), 0 < θ < 1

となる θ が存在する。 そこで I 上 |f''(x)| ≦ M となる M を採り (それは C2 だから存在する), |1/f'(x)| ≦ K となる K を採る (f'(x) ≠ 0 on I だから存在する) とすると

|F(x) - F(α)| ≦ |1/f'(x)|∫01|(f'(x + t(α - x)) - f'(x))(α - x)|dt
≦ K∫01 tM(α - x)2 dt = KM(α - x)2 [t2/2]01 = KM(α - x)2/2 ≦ (KM/2)h2.

だから最初から h ≦ 2/(KM) としておけば |F(x) - α| = |F(x) - F(α)| ≦ h なので, F は I から I への写像 (函数) である。 つまり, 漸化式は初期条件 x0 が I から採られている限り, その後の全ての数 xn を I の中の数として定める。 更に

F'(x) = 1 - (f'(x)2 - f(x)f''(x))/f'(x)2 = f(x)f''(x)/f'(x)2

であるから, K と M の定め方によって

|F'(x)| ≦ MK2|f(x)|.

Weierstrass の定理により, 閉区間 I 上で |f(x)| は最大値を採るので, それを Ah と置くと, 仮定によって (f(α) = 0 だから) Ah → 0 (as h → 0) であるから, h を充分小さく採れば r = MK2Ah < 1 と出来る。 即ち

|F'(x)| ≦ MK2|f(x)| ≦ MK2Ah = r < 1.

従って, 再び平均値の定理により x, y ∈ I に対し

|F(x) - F(y)| = |F'(y + θ(x - y))||x - y| ≦ r|x - y|.

これはつまり, 最初に与えた漸化式が Cauchy 列であることを示している。

実際: x = xn, y = xm とすると|xn+1 - xn| ≦ rn|x1 -x0| が示せるので, |xn - xm| ≦ |xn - xn-1| + |xn-1 - xn-2| + … +  |xm+1 - xm| ≦ (rn-1 + rn-2 + … + rm)|x1 -x0| ≦ (rm/(1 - r))|x1 -x0| であるから。

又, 極限値を x とすると x = x - f(x)/f'(x) であるから f(x) = 0 でなければならない。□

さて, 上記の証明中に

|F(x) - F(α)| ≦ KM(α - x)2/2

という式が表れているが, これから |xn+1 - α| ≦ (KM/2)|xn - α|2 であることが分かる。 これを右辺の |xn - α|2 に因んで二位の収束をする (或いは二次収束をする) という。 これは誤差が自乗の level で小さくなっていくことを示している。 即ち, この方法の収束はかなり速い。

尚, この方法を n 元連立非線型方程式にも拡張できる。 又 Kantorovich はこの方法で解を求められる初期条件 x0 の条件と収束測度の評価を与えている (1948)。


実際に Newton-Raphson 法を用いるのに, 何でも良いが, 例えば a > 0 として √a を求める式を考えてみよう。

f(x) = x2 - a とすれば, これの解の一つが √a であり, f'(x) = 2x, f'''(x) = 2 だから, 例えば, [1, 3/2] 位のところでやれば, 多分条件を満たしているであろう。 このとき

xn+1 = xn - f(xn)/f'(xn) = xn - (xn2 - a)/(2xn) = (2xn - xn + a/xn)/2 = (xn + a/xn)/2.

(これは漸化式の定義の例の 8 に掲げたものである)

実は円周率を computer で何億桁も計算するのに用いられる方法のうち J. M. Borwein, P. B. Borwein 兄弟の公式や Ramanujan の公式, Salamin-Brent の algorithm 等では √2 を Newton-Raphson method で求めておく必要がある。 但し, 上記の方法ではなくて f(x) = 1/x2 - a にこれを適用した xn+1 = xn(3−axn4)/4 から 1/√a を求めておいて, a = a×(1/√a) で計算するそうである。


参考文献:

山本哲朗: 方程式と不動点 --- 特集 不動点から何が見えるか, 数学セミナー (2), 2002.


次へ
微分 3 の目次