メインコンテンツへスキップ

ニュートン法:反復近似で素早く根を見つける

ニュートン法は、接線近似を用いて、閉じた形の解を持たない方程式の解に近づく反復型の根探索アルゴリズムです。
更新 2026年5月4日  · 11 分 読む

方程式の中には、きれいに代数的に解けないものがあります。

因数分解や代入をいくら頑張っても、閉じた形を持たない方程式が存在します。例えば、5次以上の多項式には一般的な代数解がありません。e^x = 3x のように指数関数と多項式が混在する関数も同様です。こうした場合は別のアプローチが必要です。

ニュートン法はそのための手法です。関数の接線に基づいて、より賢い推定値を繰り返し更新しながら数値的に根を見つけます。

この記事では、ニュートン法の背後にある公式、ステップごとの流れ、収束する場合としない場合を、理論が腑に落ちるよう具体例とともに解説します。

データサイエンティストとして知っておくべき他の数学トピックをお探しですか?金融、物理、情報科学への応用を解説した等比数列:公式、収束、例のブログ記事もご覧ください。

ニュートン法とは?

ニュートン法は、関数の根を求めるための反復的な手法です。根とは、関数の値がゼロになる入力値のことです。

この手順は初期推定から始めます。続いて、その点における関数の幾何学的性質を使って、より良い推定値を作ります。この操作を繰り返すと、各反復で実際の根に近づいていきます。

考え方はこれだけです。答えに収束する賢くて再現可能な更新則が必要になります。

ニュートン法の公式

ニュートン法の核は、根に十分近づくまで繰り返し適用する1つの更新則です。

公式は次のとおりです。

Newton’s method formula

ニュートン法の公式

各反復で、現在の推定値 x_n から、より良い推定値 x_{n+1} を得ます。結果が十分ゼロに近づくまで更新を続けます。

この公式は3つの要素から成ります。

  • x_n - 根の現在の推定値

  • f(x_n) - その推定値における関数の値

  • f'(x_n) - その推定値における関数の導関数(接線の傾きを表す)

f(x_n) が大きいほど根から遠いことを意味します。f'(x_n) が急であれば、関数の変化が速いので大きく進めます。比 f(x_n) / f'(x_n) が進むべき距離を正確に示し、それを現在の推定値から引くことで根に近づきます。

f'(x_n) がゼロ、またはゼロに近い場合、この公式はうまく機能しません。ゼロで割ることになり、次の推定値を計算できないためです。詳しくは制約事項のセクションで説明します。

ニュートン法の仕組み

ニュートン法は、各反復で同じ4つの手順を踏みます。

  1. 初期推定の選択:根の近くにある開始値 x_0 を選びます。正確でなくても構いません。その点の周りで関数が予測可能に振る舞う程度に「十分近い」ことが大切です。「十分近い」の意味は収束のセクションで説明します。

  2. 関数値の計算f(x_0) を評価します。現在の推定値で関数がゼロからどれだけ離れているかを示します。もし f(x_0) = 0 なら、根が見つかったので終了です。

  3. 導関数の計算f'(x_0) を評価します。これは x_0 における関数の傾き、すなわちその点での接線の傾きを与えます。

  4. 推定値の更新:前のセクションの公式に従って更新則を適用します。

以上です。

この新しい値 x_1 は、接線がx軸と交わる点です。幾何学的には、x_0 で曲線に接する直線を引き、それをx軸までたどります。その交点が次の、より良い推定値になります。

あとは繰り返します。x_1 をステップ2〜4に再投入して x_2、続いて x_3、という具合に進めます。各反復で更新点における新たな接線を引き、x軸との交点を見つけます。

f(x_n) が十分ゼロに近づいたところで終了します。典型的には、事前に定めた小さな閾値を下回った時点です。

ニュートン法の幾何学的解釈

グラフ上の曲線、これが関数 f(x) です。根はこの曲線がx軸と交わる場所です。その交点はまだ不明なので、まずx軸上のどこかに推定値 x_0 を置きます。

各ステップで、まず曲線上の点 (x_0, f(x_0)) を取り、その点での接線—曲線に接し、同じ傾きをもつ直線—を引きます。この接線は水平ではなく傾いており、下へたどるとどこかでx軸と交わります。これが次の推定値 x_1 です。

そして繰り返します。x_1 で新たな接線を引き、x軸との交点を求めます。これが x_2 です。各接線は局所的な線形近似であり、交点は実際の根にますます近づきます。

下の図は、f(x) = x^2 - 2 にニュートン法を適用し、x_0 = 2.5 から2回反復した様子を示しています。

Geometric interpretation chart

幾何学的解釈の図

これは、任意の点における接線が曲線の最良の直線近似であることによって機能します。根に近づくほど、接線は曲線そのものに近くなり、次のステップの精度が高まります。

実際には、推定値は根へじわじわ近づくだけでなく、素早く飛び込みます。反復ごとに正しい小数桁数がしばしば倍増します。

ニュートン法のステップ・バイ・ステップ例

f(x) = x^2 - 2 にニュートン法を適用してみましょう。この関数の根は x = sqrt(2) ≈ 1.4142、つまり2の平方根を計算することになります。

導関数は f'(x) = 2x なので、更新則は次のようになります。

Example (update rule)

例(更新則)

初期推定として x_0 = 2.5 から始めましょう。

反復1:

Example (iteration 1)

例(反復1)

反復2:

Example (iteration 2)

例(反復2)

反復3:

Example (iteration 3)

例(反復3)

わずか3回の反復で小数点以下4桁の精度に到達しました。誤差は x_0 の時点での 1.086 から x_30.0001 へ低下し、その後も各ステップで減少し続けます。

この推定値と誤差の推移を図で見ると次のとおりです。

Visual overview of estimate and error

推定値と誤差のビジュアル概要

左のパネルは、各推定値が sqrt(2) ≈ 1.4142 に近づいていく様子を示し、右のパネルは誤差が対数スケールで小さくなる様子を示しています。各反復でおおよそ精度が二乗されていきます。

ニュートン法の収束

ニュートン法は適切な条件下で非常に速く収束します。

初期推定が根に近く、その近傍で関数が滑らかであれば、方法は二次収束を示します。これは先ほどの例で見た現象の専門用語で、各反復で前回の誤差がおおよそ二乗されます。小数2桁の正確さが4桁に、4桁が8桁に、といった具合です。

このためには次の2条件が必要です。

  • 良い初期推定:x_0 が真の根に近いほど、収束は速くなります。遠すぎる地点から始めると、その点での接線が誤った方向へ導くことがあります。
  • 扱いやすい関数:根の近くで関数が滑らかで微分可能である必要があります。急激な折れ曲がりや平坦な領域は、接線近似を妨げます。

最も一般的な失敗要因は、導関数がゼロ付近になることです。

f'(x_n) がゼロに近いと、更新則で非常に小さな数で割ることになり、次の推定値が根から大きく外れてしまいます。最悪の場合、f'(x_n) = 0 で計算が破綻し、ゼロで割れないため続行できません。

不適切な開始点は、振動や発散を招くこともあります。根に近づくどころか、推定値が行き来したり、反復ごとに遠ざかったりします。

ニュートン法は、適切な準備に応えてくれます。妥当な初期推定と滑らかな関数さえあれば、速く収束します。

ニュートン法の利点

条件が整えば、ニュートン法は非常に強力です。

最大の利点は二次収束です。多くの数値解法は線形収束、つまり各反復で誤差が一定量ずつ減るのに対し、ニュートン法は誤差を二乗で減らすため、少ない反復で急速に高精度に到達します。

また汎用性も高いです。多項式、三角関数、指数関数など、幅広い関数に対して何も変えずに適用できます。そのため、工学シミュレーションから機械学習モデルの学習まで、多くの分野で用いられます。

ニュートン法の制約

そのスピードの代償として、ニュートン法にはいくつかの要件があります。注意すべき制約を挙げます。

  • 導関数が必要:少なくとも1回の反復を実行する前に、f'(x) の解析的な表式が必要です。導関数の計算が困難(または存在しない)な関数では、別の手法が必要です。

  • 初期推定に敏感:根から遠すぎる地点から始めると、誤った方向に導かれる可能性があります。

  • 収束しないことがある:関数に平坦な領域や急激な曲がりがあると、接線近似が有効に機能しません。

  • 発散や振動の可能性:悪いケースでは、推定値が収束せず、根から遠ざかったり、際限なく行き来したりします。

ニュートン法を使う前に、対象の関数をよく理解しておきましょう。

ニュートン法と他の根探索法の比較

根を見つける方法はニュートン法だけではありませんし、常に最適とも限りません。

よく取り上げられる他の2手法に、二分法と割線法があります。簡単に説明します。

二分法

二分法はこの3つの中で最も単純です。関数の符号が変わる区間 [a, b] から始めます。つまり、その内部のどこかに根が存在するということです。以後、その区間を半分に分割し、符号変化を含む方の半区間を残していきます。

確実に機能しますが、遅いです。誤差は各反復で半分になり、線形収束にとどまります。しかし、関数が連続で初期区間が根を挟んでいれば収束が保証されます。導関数は不要です。

割線法

割線法はニュートン法の近縁です。導関数を解析的に計算する代わりに、直前の2つの推定値を使って近似します。

Secant method formula

割線法の公式

導関数の計算が難しい場合に有効なアプローチです。その代償として収束速度は低下します。割線法は二分法より速いものの、ニュートン法よりは遅くなります。

ニュートン法の応用

ニュートン法は科学、工学、機械学習のあらゆる場面に現れます。具体的な使われ方を説明します。

方程式の数値解法

最も直接的な応用です。閉じた形の解がない関数に対して、ニュートン法で根を見つけます。科学技術計算では日常的に登場します。例えば、化学反応の平衡点の探索や、信号処理における超越方程式の解法などです。

最適化

関数 f(x) の最小値や最大値を求めることは、その導関数 f'(x) = 0 となる点を見つけることを意味します。これは根探索の問題なので、ニュートン法が適用できます。f(x) ではなく f'(x) に対してアルゴリズムを実行し、一次導関数の代わりに二次導関数 f''(x) を用います。

この変種は最適化におけるニュートン法と呼ばれ、滑らかで扱いやすい関数に対しては勾配降下法より速く収束します。

機械学習

機械学習では、モデルの学習は損失関数の最小化に相当します。ここでニュートン法やその変種がいくつかの場面で利用されます。

L-BFGS(Limited-memory Broyden-Fletcher-Goldfarb-Shanno)は、二次導関数を直接計算せずに近似する準ニュートン法の最適化手法です。ロジスティック回帰などの凸問題で標準的に使われます。また、統計モデルの当てはめ(一般化線形モデルなど)で用いられるNewton-Raphson更新も、ニュートン法に基づいています。

物理・工学

ニュートン法はシミュレーションや設計の至る所で使われます。エンジニアは、物理システムを表す非線形方程式系を解くために用います。例えば構造物の応力解析や流体力学です。いずれも、方程式群がゼロになる点を見つける問題に還元されます。

ニュートン法でよくあるミス

ニュートン法に関する多くの誤りは、次の4つに集約されます。順に見ていきましょう。

  • 根から遠すぎる地点から始める:不適切な初期推定は、発散や振動の最も一般的な原因です。根のおおよその位置に見当がつかない場合は、まず関数をプロットしてください。開始地点の目安になります。

  • 導関数を間違える:更新則は f'(x) に依存します。計算ミスや実装ミスによる誤った導関数は、最初の反復から誤った推定を生み、反復とともに誤差が蓄積します。

  • ゼロ割のチェックをしない:もし f'(x_n) がゼロ、あるいは非常にゼロに近ければ、更新ステップは機能しません。実装にはガードを入れてください。導関数が所定の小さな閾値を下回ったら停止して失敗を報告し、無意味な結果を出さないようにします。

  • 早すぎる停止:収束前に反復を打ち切ると、一見近いようで実は不十分な答えになります。停止条件は実際の誤差、すなわち |f(x_n)| または |x_{n+1} - x_n| が、任意の固定反復回数ではなく、意図して選んだ閾値を下回ることに設定してください。

まとめ

ニュートン法は数値計算で最も有用な道具のひとつです。単一の更新則を繰り返すだけで、わずかな反復で任意精度に近い根を見つけられます。

その速さには条件が伴います。良い初期推定、平坦すぎない関数、スパイク的でない関数、そしてゼロでない導関数が必要です。これらの条件を理解していれば、ニュートン法を使うべき場面と、(二分法や割線法のような)別の手法を使うべき場面を見極められます。

この直感を磨く最良の方法は、簡単な例で練習することです。f(x) = x^2 - 2 から始め、さまざまな開始点を試して挙動を観察してください。複数の根や平坦な領域を持つ関数にも進み、どこで手法が破綻するかを確かめましょう。

反復による最適化の考え方が気に入ったなら、勾配降下法も必見です。機械学習モデルの最適化の仕組みを学ぶには、勾配降下法(Gradient Descent)の徹底解説をご覧ください。

FAQs

ニュートン法は何に使われますか?

ニュートン法は、関数の根—すなわち f(x) = 0 となる x の値—を見つけるための数値的手法です。代数的にきれいな解がない方程式に対して、科学、工学、機械学習のあらゆる場面で使われます。代表的な用途には、非線形方程式の解法、統計モデルの当てはめ、L-BFGS のような最適化アルゴリズムの基盤などがあります。

ニュートン法は収束までに何回反復が必要ですか?

関数や初期推定によりますが、条件が整えばニュートン法は通常ごく少ない反復で収束します。二次収束のおかげで、正しい小数桁が各ステップでおおよそ倍増します。実務では、数回の反復で機械精度に達することもしばしばです。

ニュートン法が収束しない場合はどうなりますか?

初期推定が根から遠すぎたり、開始点付近で関数が平坦だったりすると、収束せず発散や振動が起こることがあります。導関数がゼロ近傍になることが典型的な原因で、次の推定値が大きく外れてしまいます。こうした場合は、より安定な二分法に切り替えるか、初期推定を改善すると解決することが多いです。

ニュートン法と割線法の違いは何ですか?

両者は中核となる更新の考え方は同じですが、ニュートン法は解析的な導関数 f'(x) を必要とするのに対し、割線法は直前の2つの推定値から導関数を近似します。導関数の計算が難しいときに割線法は有効ですが、収束はニュートン法よりやや遅くなります。

ニュートン法における二次収束とは何を意味しますか?

二次収束とは、各反復の誤差が前回の誤差の二乗におおよそ比例することを意味します。平たく言えば、小数2桁の正確さが次の反復で4桁に、さらに8桁に、と増えていきます。これが、各回で誤差を半分にするだけの二分法などと比べて、ニュートン法が非常に速い理由です。

トピック

DataCampで学ぶ

Courses

Python で学ぶ線形分類器

4時間
66K
このコースでは、logistic regression や SVM などの線形分類器の詳細を学びます。
詳細を見るRight Arrow
コースを開始
もっと見るRight Arrow