Newton法(Newton's method)とは、方程式 $f(x)=0$ の解(零点)を近似的に求める反復計算法であり、初期値 $x_0$ から漸化式 $x_{n+1}=x_n-f(x_n)/f'(x_n)$(多変数では $x_{n+1}=x_n-Df(x_n)^{-1}f(x_n)$)によって数列を定める。関数を接線(1 次の Taylor 近似)で置き換えて線形方程式を解く方法であり、$f$ が $C^2$ 級で零点 $x^*$ において $f'(x^*)\neq0$ ならば、$x^*$ に十分近い初期値から出発した数列は $|x_{n+1}-x^*|\le C|x_n-x^*|^2$ を満たして収束する(2 次収束、反復ごとに有効桁数がほぼ倍増する)。初期値が遠いと周期点に陥ったり発散したりし、重根では線形収束にとどまる。Newton–Raphson 法とも呼ばれる。
$I\subset\mathbb{R}$ を開区間、$f\colon I\to\mathbb{R}$ を微分可能な関数とする。初期値 $x_0\in I$ から出発し、
$$
x_{n+1}:=x_n-\frac{f(x_n)}{f'(x_n)}\qquad(n=0,1,2,\ldots)
$$
によって数列 $(x_n)$ を定める反復計算法を、方程式 $f(x)=0$ に対する Newton 法(Newton's method)という。$f'(x_n)=0$ となった時点で数列は定義されない。写像
$$
N\colon\{x\in I\mid f'(x)\ne0\}\to\mathbb{R},\qquad N(x):=x-\frac{f(x)}{f'(x)}
$$
を $f$ の Newton 写像といい、$x_{n+1}=N(x_n)$ である。
より一般に、$U\subset\mathbb{R}^d$ を開集合、$f\colon U\to\mathbb{R}^d$ を微分可能な写像とし、$x$ における $f$ の Jacobi行列 $Df(x)\in\mathbb{R}^{d\times d}$ が正則行列であるとき、
$$
x_{n+1}:=x_n-Df(x_n)^{-1}f(x_n)
$$
で定める反復計算法を(多変数の)Newton 法という。さらに $X$ を Banach空間、$f\colon X\to X$ を Fréchet微分可能な写像とし、$Df(x)$ が有界な逆作用素をもつときも同じ式で Newton 法が定義される。
代数方程式の求根に限って Newton–Raphson 法、一般の関数について Newton–Raphson–Simpson 法と呼ばれることもあるが、本記事では単に Newton 法と呼ぶ。以下、主に 1 変数の場合を扱い、多変数の場合は thm-newton-method-multivariable で言明する。
方程式 $f(x)=0$ の解($f$ の零点)を閉じた式で書き下せないとき、適当な初期値から出発して逐次的に真の解へ近づく反復計算法が用いられる。もっとも単純な二分法は零点を含む区間を半分ずつ狭めるので常に収束するが、1 回の反復で得られる有効桁数の増分はほぼ一定(10 進数で 1 桁未満、およそ 3 回の反復で 1 桁)にとどまる(線形収束。反復ごとの誤差の減り方を測る収束次数が $1$ の場合にあたる)。
Newton 法は、点 $(x_n,f(x_n))$ における $f$ のグラフの接線 $y=f(x_n)+f'(x_n)(x-x_n)$ と $x$ 軸の交点を次の近似値 $x_{n+1}$ とする方法である。すなわち $f$ をその 1 次の Taylor 近似で置き換え、線形方程式を解いて更新する。零点の近くでは 1 次近似の誤差が誤差の 2 乗の程度なので、十分よい初期値のもとでは反復のたびに有効桁数がほぼ倍増する(thm-newton-method-quadratic-convergence)。この「2 次収束」が Newton 法の際立った速さの正体である。一方で、接線が $x$ 軸とほぼ平行な点($f'(x_n)\approx0$)では次の近似値が遠くへ飛ばされ、初期値が悪いと収束しない(rem-newton-method-counterexamples)。
$f(x)=x^2-2$($x>0$)の零点は $\sqrt2$ であり、$f'(x)=2x$ は $x>0$ で $0$ でない。Newton 法の漸化式は
$$
x_{n+1}=x_n-\frac{x_n^2-2}{2x_n}=\frac12\left(x_n+\frac{2}{x_n}\right)
$$
となる。$x_0=1$ から出発すると
$$
x_1=\frac32=1.5,\quad x_2=\frac{17}{12}=1.41666\ldots,\quad x_3=\frac{577}{408}=1.41421568\ldots,\quad x_4=\frac{665857}{470832}=1.41421356237468\ldots
$$
であり、$\sqrt2=1.41421356237309\ldots$ と比べると、正しい桁数が $1,3,6,12$ 桁とほぼ倍々に増えている。この漸化式は古代バビロニアの開平法として知られる。
$a>0$ に対し $f(x)=\dfrac1x-a$($x>0$)の零点は $1/a$ であり、$f'(x)=-1/x^2$ から漸化式は
$$
x_{n+1}=x_n-\frac{1/x_n-a}{-1/x_n^2}=x_n(2-ax_n)
$$
となる。除算を使わずに逆数が計算できるので、計算機の除算回路に用いられる。$e_n:=1-ax_n$ とおくと $e_{n+1}=1-ax_n(2-ax_n)=(1-ax_n)^2=e_n^2$ であり、$0< x_0<2/a$(すなわち $|e_0|<1$)なら $e_n=e_0^{2^n}\to0$ で、2 次収束が厳密な等式として見える。
連立方程式 $x^2+y^2=1$、$y=x^2$ の第 1 象限の解を求める。$f(x,y)=(x^2+y^2-1,\ y-x^2)$ とおくと $Df(x,y)=\begin{pmatrix}2x & 2y\\ -2x & 1\end{pmatrix}$ であり、$(x_0,y_0)=(1,1)$ から出発すると $Df(1,1)^{-1}=\frac16\begin{pmatrix}1 & -2\\ 2 & 2\end{pmatrix}$、$f(1,1)=(1,0)$ より $(x_1,y_1)=(1,1)-\frac16(1,2)=(5/6,\,2/3)$ である。真の解は $y=(\sqrt5-1)/2=0.6180\ldots$、$x=\sqrt y=0.7862\ldots$ であり、1 回の反復で誤差(Euclidノルム)が $0.44$ 程度から $0.07$ 程度に減っている。
以下では、$f$ が $C^2$ 級(C^2級、2 回微分可能で $f''$ が連続関数)であるとき、Lagrangeの剰余項をもつ Taylor の定理を用いる。すなわち $a,x\in I$ に対し、$a$ と $x$ の間のある $\xi$ が存在して
$$
f(x)=f(a)+f'(a)(x-a)+\frac{f''(\xi)}{2}(x-a)^2
$$
が成り立つ。この定理の証明は Taylor展開 の記事および Rud76 Theorem 5.15 に譲る。
$f\colon I\to\mathbb{R}$ を開区間 $I$ 上の $C^2$ 級の関数とし、$x^*\in I$ が $f(x^*)=0$ かつ $f'(x^*)\ne0$ を満たすとする。このとき $\delta>0$ と定数 $C\ge0$ が存在して、$|x_0-x^*|\le\delta$ を満たす任意の初期値 $x_0$ について次が成り立つ。
$f'$ は連続で $f'(x^*)\ne0$ なので、$\delta_0>0$ を、閉区間 $J_0:=[x^*-\delta_0,x^*+\delta_0]$ が $I$ に含まれ、$J_0$ 上で $|f'(x)|\ge m:=|f'(x^*)|/2>0$ となるようにとれる。$f''$ は連続だから、最大値の定理により $M:=\max_{x\in J_0}|f''(x)|<\infty$ である。$C:=M/(2m)$ とおき、$\delta>0$ を $\delta\le\delta_0$ かつ $C\delta<1$ となるようにとる($C=0$ のときは $\delta=\delta_0$ でよい)。$J:=[x^*-\delta,x^*+\delta]$ とおく。
$x\in J$ とし、$e:=x-x^*$ とおく。$f'(x)\ne0$ なので $N(x)$ が定まる。Taylor の定理を $a=x$、点 $x^*$ に適用すると、$x$ と $x^*$ の間の $\xi$ が存在して
$$
0=f(x^*)=f(x)+f'(x)(x^*-x)+\frac{f''(\xi)}{2}(x^*-x)^2
$$
であるから、$f(x)=f'(x)e-\dfrac{f''(\xi)}{2}e^2$ である。したがって
$$
N(x)-x^*=e-\frac{f(x)}{f'(x)}=e-\frac{f'(x)e-\frac12f''(\xi)e^2}{f'(x)}=\frac{f''(\xi)}{2f'(x)}\,e^2
$$
となり、$\xi\in J\subset J_0$ から $|N(x)-x^*|\le\dfrac{M}{2m}|e|^2=C|x-x^*|^2$ を得る。$x\ne x^*$ のときは $|x-x^*|\le\delta$ と $C\delta<1$ から
$$
|N(x)-x^*|\le C|x-x^*|^2\le C\delta\cdot|x-x^*|<|x-x^*|\le\delta
$$
であり、$x=x^*$ のときは $e=0$ より $N(x^*)-x^*=\dfrac{f''(\xi)}{2f'(x^*)}\cdot0^2=0$、すなわち $N(x^*)=x^*$ である。いずれの場合も $N(x)\in J$ であるから $N(J)\subset J$ である。
$x_0\in J$ とすると、上の議論を繰り返して、すべての $n$ について $x_n\in J$、$f'(x_n)\ne0$、$x_{n+1}=N(x_n)$ が定義され、$|x_{n+1}-x^*|\le C|x_n-x^*|^2$ が成り立つ。これで 1 と 2 が示された。3 について、$\varepsilon_n:=C|x_n-x^*|$ とおくと 2 は $\varepsilon_{n+1}\le\varepsilon_n^2$ であり、帰納的に $\varepsilon_n\le\varepsilon_0^{2^n}$ である。$\varepsilon_0=C|x_0-x^*|\le C\delta<1$ だから $\varepsilon_n\to0$、すなわち $x_n\to x^*$ である($C=0$ のときは $x_1=x^*$ である)。$\square$
不等式 $\varepsilon_{n+1}\le\varepsilon_n^2$ は「$x_n$ が有効数字 $k$ 桁正しければ $x_{n+1}$ はおよそ $2k$ 桁正しい」ことを意味する。$C$ は零点の近くでの $|f''|/(2|f'|)$ の大きさで決まり、$f$ が零点の近くで直線に近いほど($f''$ が小さいほど)収束が速い。
$f$ を thm-newton-method-quadratic-convergence と同じ仮定を満たす関数とする。
1 は $N(x)-x=-f(x)/f'(x)$ から明らかである($N(x)=x$ を満たす点を $N$ の不動点という)。2 は商の微分法により
$$
N'(x)=1-\frac{f'(x)^2-f(x)f''(x)}{f'(x)^2}=\frac{f(x)f''(x)}{f'(x)^2}
$$
であり、$f(x^*)=0$ から $N'(x^*)=0$ である。3 を示す。$N'$ は $x^*$ の近くで連続なので、$\rho>0$ を $K:=[x^*-\rho,x^*+\rho]\subset I$ かつ $K$ 上で $f'\ne0$ かつ $|N'(x)|\le\frac12$ となるようにとれる。$x,y\in K$ に対し平均値の定理により $x$ と $y$ の間の $\eta$ が存在して $|N(x)-N(y)|=|N'(\eta)||x-y|\le\frac12|x-y|$ である。とくに $y=x^*$ とすると、1 により $N(x^*)=x^*$ だから $|N(x)-x^*|\le\frac12|x-x^*|\le\rho$ であり $N(K)\subset K$ である。したがって $x_0\in K$ から出発した数列は $|x_n-x^*|\le2^{-n}|x_0-x^*|\to0$ を満たす。$\square$
この命題は、Newton 法の収束を「$N$ が零点の近くで縮小写像である」ことから導く見方であり、Banachの不動点定理(縮小写像の原理)の枠組みに乗る。$N'(x^*)=0$ は、単なる縮小(線形収束)を超えて 2 次収束が起こる理由の別の表現である。逆に、零点の存在を仮定せずに $N$ に不動点定理(Brouwerの不動点定理や Schauderの不動点定理 でもよい)を適用することで、$f$ の零点が存在するための十分条件を調べることもできる。これを定量的に完成させたのが Newton–Kantorovich の定理である(thm-newton-method-multivariable の後の注意)。
$U\subset\mathbb{R}^d$ を開集合、$f\colon U\to\mathbb{R}^d$ を $C^2$ 級の写像とし、$x^*\in U$ が $f(x^*)=0$ を満たし、Jacobi 行列 $Df(x^*)$ が正則であるとする。このとき $\delta>0$ と $C\ge0$ が存在して、$\|x_0-x^*\|\le\delta$ を満たす任意の初期値について Newton 法の列 $(x_n)$ は矛盾なく定義され、$\|x_{n+1}-x^*\|\le C\|x_n-x^*\|^2$ かつ $x_n\to x^*$ が成り立つ。
証明は OR00 Theorem 10.2.2(Newton attraction theorem)に譲る。筋道は 1 変数の場合と同じで、Taylor の定理の代わりに $\|f(x^*)-f(x)-Df(x)(x^*-x)\|\le\frac{L}{2}\|x^*-x\|^2$ という 2 次の評価($Df$ の Lipschitz 連続性から従う)を使い、$Df(x)^{-1}$ が $x^*$ の近くで一様に有界であること(逆行列の連続性)を用いる。仮定を $C^2$ 級から「$Df$ がLipschitz連続」に弱めても同じ結論が成り立つ。Banach 空間上の写像については、零点の存在を仮定する代わりに初期値での $\|Df(x_0)^{-1}f(x_0)\|$ と $Df$ の Lipschitz 定数の積が十分小さいことを仮定して零点の存在と収束を同時に保証する Newton–Kantorovich の定理(Newton–Kantorovichの定理、OR00 Theorem 12.6.2)がある。
Newton 法は各反復で導関数(多変数では Jacobi 行列とその逆行列、すなわち連立1次方程式の求解)を必要とする。導関数を差分商 $\dfrac{f(x_n)-f(x_{n-1})}{x_n-x_{n-1}}$ で置き換えたものが割線法(収束次数は黄金比 $1.618\ldots$)、Jacobi 行列を毎回計算せずに初期値のものを使い続けたり近似的に更新したりするものが簡易 Newton 法・準Newton法である。零点が重根であるときは、重複度 $m$ が分かっていれば $x_{n+1}=x_n-m f(x_n)/f'(x_n)$ とすることで 2 次収束が回復する。大域的な収束を得るには、rem-newton-method-counterexamples のような発散を避けるための刻み幅の制御(減速 Newton 法)や、二分法との併用が用いられる。複素多項式に対する Newton 法で初期値ごとの収束先を色分けした図は、Julia集合の代表的な例であり、Newton 法の大域的な振る舞いが単純でないことを示している。
Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する