第2章: ニュートン法(ニュートン・ラフソン法)
Newton's Method (Newton-Raphson Method)
basic
公開日: 2026-03-27
1. 概要
ニュートン法(Newton's Method)は、非線形方程式 $f(x) = 0$ の根を数値的に求める反復法であり、数値解析における最も基本的かつ強力な手法の一つである。Isaac Newton と Joseph Raphson により独立に発見され、ニュートン・ラフソン法(Newton-Raphson Method)とも呼ばれる。
関数 $f$ を各点での接線(1次テイラー展開)で近似し、その接線と $x$ 軸の交点を次の近似値とする。適切な初期値から始めれば二次収束し、反復ごとに有効桁数がおよそ2倍になる。
2. アルゴリズム
ニュートン法の反復公式
$f$ が微分可能で $f'(x_n) \neq 0$ のとき、
手順は次の通りである。
- 初期値 $x_0$ を選ぶ。
- 反復式により $x_1, x_2, \ldots$ を順次計算する。
- $|x_{n+1} - x_n| < \varepsilon$ または $|f(x_n)| < \varepsilon$ となったら停止する。
3. 幾何学的解釈
点 $(x_n,\, f(x_n))$ における接線の方程式は
$$y = f(x_n) + f'(x_n)(x - x_n)$$であり、この接線が $x$ 軸($y=0$)と交わる点が $x_{n+1}$ である。
公式の導出
点 $(x_n, f(x_n))$ における接線の方程式は次のように書ける:
$$y - f(x_n) = f'(x_n)(x - x_n)$$この接線が $x$ 軸と交わる点($y = 0$)を求めると:
$$0 - f(x_n) = f'(x_n)(x - x_n)$$ $$x = x_n - \frac{f(x_n)}{f'(x_n)}$$これが次の近似値 $x_{n+1}$ である。すなわち、ニュートン法の反復公式は接線の $x$ 切片として自然に導かれる。
4. 二次収束
定理(二次収束)
$f$ が2回連続微分可能で、単根 $x^*$($f(x^*)=0$, $f'(x^*)\neq 0$)の十分近くに $x_0$ をとると、ニュートン法は二次収束する:
証明の骨子: $x^*$ の周りでテイラー展開すると
$$0 = f(x^*) = f(x_n) + f'(x_n)(x^* - x_n) + \frac{f''(\xi_n)}{2}(x^* - x_n)^2$$反復式 $x_{n+1} = x_n - f(x_n)/f'(x_n)$ を用いて整理すると
$$x_{n+1} - x^* = \frac{f''(\xi_n)}{2f'(x_n)}(x_n - x^*)^2$$が得られる。ここで $\xi_n$ は $x_n$ と $x^*$ の間の点である。
二次収束の意味
誤差が2乗で減少するため、正確な桁数が毎回約2倍になる。
例:$10^{-2} \to 10^{-4} \to 10^{-8} \to 10^{-16}$
5. 例: $\sqrt{2}$ の計算
$f(x) = x^2 - 2$ にニュートン法を適用
$f'(x) = 2x$ より、反復公式は次のようになる:
$$x_{n+1} = x_n - \frac{x_n^2 - 2}{2x_n} = \frac{1}{2}\!\left(x_n + \frac{2}{x_n}\right)$$初期値 $x_0 = 1$ から出発すると:
| $n$ | $x_n$ | 誤差 $|x_n - \sqrt{2}|$ | 正確な桁数 |
|---|---|---|---|
| 0 | 1.000000000 | 4.14 × 10⁻¹ | 0 |
| 1 | 1.500000000 | 8.58 × 10⁻² | 1 |
| 2 | 1.416666667 | 2.45 × 10⁻³ | 2 |
| 3 | 1.414215686 | 2.12 × 10⁻⁶ | 5 |
| 4 | 1.414213562 | 1.59 × 10⁻¹² | 11 |
わずか4回の反復で11桁の精度が得られる。正確な桁数が 0 → 1 → 2 → 5 → 11 とおよそ倍増していく様子が二次収束の威力を示している。
6. 多変数ニュートン法
非線形連立方程式 $\mathbf{f}(\mathbf{x}) = \mathbf{0}$($\mathbf{x} \in \mathbb{R}^n$)に対しては、反復式が
となる。ここで $J(\mathbf{x})$ はヤコビ行列
$$J(\mathbf{x}) = \begin{pmatrix} \dfrac{\partial f_1}{\partial x_1} & \cdots & \dfrac{\partial f_1}{\partial x_n} \\ \vdots & \ddots & \vdots \\ \dfrac{\partial f_n}{\partial x_1} & \cdots & \dfrac{\partial f_n}{\partial x_n} \end{pmatrix}$$である。実装上は逆行列を直接計算せず、線形方程式 $J(\mathbf{x}_n)\,\Delta\mathbf{x} = -\mathbf{f}(\mathbf{x}_n)$ を毎反復ごとに LU 分解等で解き、$\mathbf{x}_{n+1} = \mathbf{x}_n + \Delta\mathbf{x}$ とする($J(\mathbf{x}_n)$ が反復ごとに変わるため、LU 分解も毎回再計算が必要である)。
7. 収束条件と失敗例
収束が保証される十分条件
- $f(x^*) = 0$ かつ $f'(x^*) \neq 0$(単根)。
- $f$ が根の近傍で2回連続微分可能。
- 初期値 $x_0$ が根に十分近い。
失敗する場合
- 重根: $f'(x^*)=0$ のとき、収束が線形に劣化する。重複度 $m$ が既知ならば修正ニュートン法 $x_{n+1} = x_n - m\,f(x_n)/f'(x_n)$ で二次収束を回復できる。$m$ が未知の場合は、$u(x) = f(x)/f'(x)$ にニュートン法を適用する方法がある($u$ の根は単根となる)。
- 導関数がゼロ: 反復途中で $f'(x_n) \approx 0$ となると発散する。
- 周期的振動: 例えば $f(x) = x^3 - 2x + 2$ で $x_0 = 0$ とすると $x_0 \to 1 \to 0 \to 1 \to \cdots$ と振動する。
改良手法と実用上の対策
減衰ニュートン法($x_{n+1} = x_n - \alpha_n\, f(x_n)/f'(x_n)$、$\alpha_n$ はライン探索で決定)や、二分法との併用により大域的収束を保証できる。
実用上の対策
- 二分法で大まかな範囲を絞ってからニュートン法を適用する。
- $|f'(x_n)|$ が小さすぎる場合はステップを制限する。
- 反復回数の上限を設ける。
8. 二分法との比較
| 二分法 | ニュートン法 | |
|---|---|---|
| 収束速度 | 1次(線形) | 2次(二乗) |
| 必要な情報 | $f(x)$ のみ | $f(x)$ と $f'(x)$ |
| 収束の保証 | 必ず収束 | 初期値に依存 |
| 典型的な反復回数 | 20〜50回 | 5〜10回 |
9. まとめ
- ニュートン法の反復公式: $x_{n+1} = x_n - \dfrac{f(x_n)}{f'(x_n)}$
- 接線と $x$ 軸の交点を次の近似値とする幾何学的手法である。
- 二次収束: 正確な桁数が毎回約2倍に増加する。
- 導関数 $f'(x)$ の計算が必要である。
- 初期値の選択が重要であり、収束しない場合がある。
- 多変数への拡張ではヤコビ行列と線形方程式の求解が必要となる。
10. よくある質問
Q1. ニュートン法とは何ですか?
非線形方程式 $f(x)=0$ の根を接線近似により反復的に求める手法である。反復式は $x_{n+1} = x_n - f(x_n)/f'(x_n)$ で与えられる。
Q2. ニュートン法の収束速度はどのくらいですか?
単根の近傍では二次収束する。すなわち反復ごとに有効桁数がおよそ2倍に増加する。重根の場合は線形収束に劣化する。
Q3. ニュートン法が失敗する場合はありますか?
導関数がゼロに近い場合、初期値が根から遠すぎる場合、周期振動する場合等に失敗する。減衰ニュートン法や二分法との併用で対処可能である。
11. 参考資料
- Wikipedia「ニュートン法」(日本語版)
- Wikipedia「Newton's method」(英語版)
- R. L. Burden & J. D. Faires, Numerical Analysis, 10th ed., Cengage, 2016.
- J. Nocedal & S. J. Wright, Numerical Optimization, 2nd ed., Springer, 2006.