ニュートン・ラフソン法とは:関数の零点を求める反復法の定義と原理

ニュートン・ラフソン法の定義と原理を図解と数式で解説。初期推定から収束までの反復手順と注意点・応用例をわかりやすく紹介。

著者: Leandro Alegsa

ニュートン法は、関数のゼロを求める代表的な反復法です。アルゴリズム名は、アイザック・ニュートン卿とジョセフ・ラプソンにちなんで「ニュートン・ラフソン法(Newton–Raphson 法)」とも呼ばれます。

定義と基本原理

ニュートン法は、関数の微分を利用して近似解を漸進的に改善する方法です。初期推定値 x0 を与え、次の反復式を繰り返します。

反復式: xn+1 = xn − f(xn)/f'(xn)

x n + 1 = x n - f ( x n ) f ′ ( x n ) {\displaystyle x_{n+1}=x_{n}-{\frac {f(x_{n})}{f'(x_{n})}}}}}}}}}}}}}}。 {\displaystyle x_{n+1}=x_{n}-{\frac {f(x_{n})}{f'(x_{n})}}}

ここで xn は現在の推定値、xn+1 は次の推定値です。直感的には、点 (xn, f(xn)) における関数の接線をとり、その接線が x 軸と交わる点の x 座標を次の推定値とします。接線の方程式を使うことで上の反復式が導かれます。

アルゴリズムの手順(概略)

  • 1. 初期値 x0 を選ぶ。
  • 2. n = 0, 1, 2, ... として、f'(xn) ≠ 0 を確認する。
  • 3. xn+1 = xn − f(xn)/f'(xn) を計算する。
  • 4. 収束判定(例:|xn+1 − xn| < ε または |f(xn+1)| < ε)を満たせば終了、満たさなければ n ← n+1 に戻る。

収束性と注意点

  • 局所二次収束: 解 α に対し f(α) = 0 かつ f'(α) ≠ 0 であれば、初期値を十分に近くとることで反復は二次収束(誤差がほぼ二乗で減る)します。これは非常に高速です。
  • 初期値依存性: 初期値が遠いと発散したり、別の根に収束したり、周期解に陥ったりすることがあります。
  • 導関数が零の場合: ある xn で f'(xn) = 0 になると式が使えず失敗します。多重根(重根)の場合も通常のニュートン法は収束が遅くなる(線形収束)ことがあります。
  • 関数の評価コスト: f と f' の評価が重い問題では各反復のコストが高くなります。その場合は導関数不要の割線法(Secant 法)や準ニュートン法が検討されます。

停止基準の例

  • |xn+1 − xn| < tol のとき
  • |f(xn+1)| < tol のとき
  • 反復回数が最大回数を超えたとき(タイムアウト)

実装上の工夫・変法

  • 緩和(ダンパー)付きニュートン法: xn+1 = xn − λ (f(xn)/f'(xn))(0 < λ ≤ 1)で、λ を行列探索やバックトラッキングで選ぶことで発散を抑えられます。
  • 多重根対策: 根の重複度 m が分かっていれば、修正式 xn+1 = xn − m f(xn)/f'(xn) を使うと良いことがあります。
  • 導関数が得られない場合: 割線法(Secant)や数値差分で導関数を近似する方法を用います。
  • 多変数への拡張: 方程式系 F(x) = 0(x, F ベクトル値)の場合はヤコビ行列 J を用いることで多変数ニュートン法となり、反復は x_{n+1} = x_n − J(x_n)^{-1} F(x_n) または線形系の解を用いて行います。

簡単な例:平方根の計算

平方根を求める問題 f(x) = x^2 − A = 0 にニュートン法を適用すると、

x_{n+1} = x_n − (x_n^2 − A)/(2 x_n) = (x_n + A / x_n) / 2

となり、これは古典的な「バビロニア法(牛の乳出し法)」に一致します。初期値を A/2 や 1 に取れば高速に収束します。

まとめ

  • ニュートン法は局所的に非常に速い(通常二次)反復法で、多くの数値計算で標準的に用いられます。
  • ただし、初期値選び、導関数ゼロ、多重根、評価コストといった問題点があり、これらに対する工夫(ダンピング、修正式、代替法)を組み合わせて使うことが重要です。
関数(青)はxnでの接線(赤)の傾きを計算するために使われています。Zoom
関数(青)はxnでの接線(赤)の傾きを計算するために使われています。

ニュートン法の問題点

ニュートンの方法は、推測値が目的の根元に十分に近いところから始まる場合には、素早く解を見つけることができます。しかし、最初の推測値が近くない場合や、関数によっては、ニュートンの方法では答えを見つけるのが遅かったり、全く見つからなかったりすることがあります。

続きを読む

  • フェルナンデス、J. A. E.、&ベロン、M. Á.H. (2017).ニュートンの方法。カントロヴィッチの理論の更新されたアプローチ。バークヘーザー.
  • Peter Deuflhard, Newton Methods for Nonlinear Problems.アフィン不変と適応アルゴリズム、第2版。シリーズ 計算数学 35, シュプリンガー (2006)
  • 山本俊哉 (2001) 「ニュートン法とニュートンライク法の収束解析の歴史的展開」."ニュートン法とニュートンライク法の収束解析の歴史的展開".Brezinski, C.; Wuytack, L. (eds.).数値解析:20 世紀の歴史的発展.241-263 頁。

も参照してください。

  • カントロヴィッチの定理レオニード・カントロヴィッチによって発見されたニュートンの方法の収束に関する声明

権限管理 Edit this at Wikidata

質問と回答

Q:ニュートン法とは何ですか?


A:ニュートン法とは、関数の実ゼロを求めるためのアルゴリズムである。関数の導関数を用いて根を計算し、ゼロの位置の初期推測値を必要とします。

Q:この方法を開発したのは誰ですか?


A:アイザック・ニュートン卿とジョセフ・ラフソンによって開発されたので、ニュートン・ラフソン法と呼ばれることもあります。

Q:このアルゴリズムはどのように動作するのですか?


A:このアルゴリズムは、初期推測値(xn)を取り込み、新しい推測値(xn+1)を計算する公式を繰り返し適用することで動作します。このプロセスを繰り返すことで、推測値は関数のゼロに近づいていきます。

Q:このアルゴリズムを使用するために必要なものは何ですか?


A:このアルゴリズムを使うには,与えられた関数の微分に関する知識だけでなく,ゼロの位置に関する最初の「推測値」が必要である.

Q:ニュートン法をどのようにグラフで説明すればよいのですか?


A:ニュートンの方法は,接線とX軸の交点を見ることで説明できます.まず、xnにおけるfの接線を求めます。次に、この接線とx軸との交点を求め、そのx位置を次の推測値-xn+1として記録します。

Q: ニュートン法を使用する際に、何か制限はありますか?


A:はい、最初の推測値が実際のルートから離れすぎている場合、ルート付近で振動したり、ルートから発散したりして、ルートに向かって収束するのに時間がかかったり、失敗したりすることがあります。


百科事典を検索する
AlegsaOnline.com - 2020 / 2025 - License CC3