ニュートン-ラフソン法の計算方法は?公式や手順も!(反復計算:初期値の選び方:漸化式など)
ニュートン-ラフソン法は、方程式の解を数値的に近づけていく代表的な反復計算法です。微分を利用して次の近似値を更新するため、うまく条件を整えれば少ない計算回数で精度の高い解を求められます。
一方で、初期値の置き方や関数の形によっては計算が発散したり、望まない解へ進んだりすることもあります。公式を暗記するだけではなく、接線の考え方、漸化式の意味、停止条件まで順に理解することが大切です。
ニュートン-ラフソン法の結論と全体像

それではまずニュートン-ラフソン法の結論と全体像について解説していきます。
方程式の解を接線で近似する考え方
ニュートン-ラフソン法は、方程式 f(x)=0 の解を直接求めにくいときに使う方法です。ある近似値の位置で関数に接線を引き、その接線が x 軸と交わる点を次の近似値として採用します。
曲線そのものではなく、近似値の近くでは曲線に似ている直線を利用する点が特徴です。接線は微分係数によって傾きが決まるため、関数値と導関数の値の二つが計算の中心になります。
真の解の近くから始められた場合、誤差が急速に小さくなりやすいことが魅力です。二分法のように必ず範囲を半分にする方法と比べると、適切な条件下では非常に効率的でしょう。
基本公式と漸化式
現在の近似値を x_n とすると、次の近似値 x_(n+1) は次の漸化式で表せます。
x_(n+1)=x_n-f(x_n)÷f'(x_n)
f(x_n) は現在位置での関数値であり、f'(x_n) はその位置での微分係数です。関数値が正なら補正量の向きを考え、負なら反対向きに進む形になります。
この式の分数部分は、現在のずれを接線の傾きで割って x 軸方向の補正量に換算したものです。つまり、ニュートン-ラフソン法は補正量を毎回更新する反復計算と捉えると分かりやすくなります。
使える場面と注意が必要な場面
平方根、三乗根、対数を含む方程式、三角関数を含む方程式など、解析的に解きにくい問題で活用されます。工学計算、数値解析、シミュレーション、最適化計算の途中にも登場する重要な手法です。
ただし、導関数が 0 または 0 に近い位置では大きすぎる補正が発生しやすくなります。初期値が解から離れすぎている場合にも、計算結果が振動したり、別の解へ移ったりする可能性があります。
ニュートン-ラフソン法で最も重要なのは、公式に代入することだけではありません。
関数のグラフの形を意識し、解に近い初期値を選び、導関数が小さくならない範囲で反復することが成功の鍵です。
計算公式と導出の流れ
続いては計算公式と導出の流れを確認していきます。
接線の式から公式を導く手順
現在の近似値を x_n とし、その点での関数の値を f(x_n) とします。点 x_n における接線は、一次関数として近似できます。
接線の傾きは f'(x_n) ですから、接線は現在の位置からの変化量に応じて上下します。この接線が x 軸と交わる位置を x_(n+1) と置けば、次の関係が成り立ちます。
0=f(x_n)+f'(x_n)×(x_(n+1)-x_n)
この式を x_(n+1) について整理すると、ニュートン-ラフソン法の漸化式が得られます。接線の y 座標を 0 にするという操作が、次の近似値を求める意味そのものです。
公式を見たときは、単に引き算をする式ではなく、接線と x 軸の交点を機械的に求める式だと理解すると応用しやすくなります。
反復計算で用いる記号の読み方
添字の n は反復回数を表します。x_0 は最初に設定する初期値であり、x_1 は一回目の計算結果、x_2 は二回目の計算結果です。
n を一つ増やすたびに、前回の近似値を使って新しい近似値を作ります。したがって、表計算ソフトやプログラムでは、前のセルや前の変数を参照する構造になります。
| 記号 | 意味 | 計算での役割 |
|---|---|---|
| x_0 | 初期値 | 反復計算の出発点 |
| x_n | n 回目の近似値 | 現在の計算位置 |
| f(x_n) | 関数値 | 解からのずれの目安 |
| f'(x_n) | 導関数の値 | 接線の傾き |
| x_(n+1) | 次の近似値 | 補正後の計算位置 |
解に近づくほど f(x_n) の絶対値は通常小さくなります。ただし関数値だけでは十分でない場合もあるため、近似値の変化量も併せて確認すると安心です。
停止条件の決め方
反復計算は理論上いつまでも続けられますが、実務では精度目標に達した時点で止めます。よく使われる基準は、関数値の絶対値と、前回との差の絶対値です。
|f(x_n)| が十分に小さい
|x_(n+1)-x_n| が十分に小さい
例えば小数第六位まで必要なら、許容誤差を 0.000001 程度に設定する考え方があります。ただし、必要な精度は問題の単位や用途によって変わるため、一律に決めるものではありません。
また、最大反復回数も決めておくべきです。収束しない計算を無限に続けないための安全策として、十回、二十回、百回などの上限を事前に置きます。
具体例による反復計算
続いては具体例による反復計算を確認していきます。
平方根を求める問題設定
ここでは √2 をニュートン-ラフソン法で求めます。√2 は x^2=2 を満たす数なので、f(x)=x^2-2 と置けば f(x)=0 の解を探す問題に変わります。
導関数は f'(x)=2x です。よって漸化式に代入すると、次の更新式になります。
x_(n+1)=x_n-(x_n^2-2)÷(2x_n)
x_(n+1)=(x_n+2÷x_n)÷2
後者は平方根を求める反復公式としても知られています。初期値は 1.5 とし、√2 に近い値へどのように変化するかを見ていきます。
計算結果の表と読み取り方
初期値 x_0=1.5 を使うと、最初の計算では 1.416666… が得られます。さらに同じ式に代入すると、値は 1.414213… に急速に近づきます。
| 反復回数 | 近似値 | f(x)=x^2-2 の値 | 状態 |
|---|---|---|---|
| 0 | 1.500000 | 0.250000 | 初期値 |
| 1 | 1.416667 | 0.006944 | 大幅に接近 |
| 2 | 1.414216 | 0.000006 | 高精度の近似 |
| 3 | 1.414214 | ほぼ 0 | 停止候補 |
わずか数回で精度が大きく改善していることが分かります。解の近くで始めた場合に誤差が急激に小さくなる性質は、二次収束と呼ばれることがあります。
ただし、毎回必ずこの速さになるわけではありません。関数の滑らかさ、重解の有無、初期値と解の距離などによって、収束速度は大きく変化します。
手計算を間違えにくくする順序
手計算では、まず関数 f(x) と導関数 f'(x) を別に書き出すと整理しやすくなります。その後で初期値を決め、関数値、導関数値、補正量、次の近似値の順に計算します。
途中で分数のまま扱える部分は、できるだけ分数で残す方法も有効です。早い段階で小数を丸めすぎると、反復を重ねたときの誤差が読み取りにくくなるためです。
手計算では、各回の x_n、f(x_n)、f'(x_n)、x_(n+1) を横並びで記録すると計算ミスを見つけやすくなります。
特に分母となる f'(x_n) の符号と、補正後の値が想定した方向へ動いているかを確認しましょう。
初期値の選び方と収束条件
続いては初期値の選び方と収束条件を確認していきます。
グラフから初期値を見積もる方法
初期値は、方程式の解がありそうな位置を大まかに見積もって決めます。可能であれば関数のグラフを描き、x 軸との交点付近を確認する方法が分かりやすいでしょう。
表を作って複数の x に対する関数値を調べ、符号が正から負へ変わる区間を探す方法も使えます。この区間に解がある可能性が高いため、その中央付近を初期値の候補にできます。
初期値は正解を当てるための値ではなく、収束しやすい出発地点です。厳密な値を最初から求める必要はありません。
初期値によって失敗する代表例
導関数が 0 に近い場所を初期値にすると、分母が小さくなって補正量が極端に大きくなることがあります。接線がほぼ水平になるため、x 軸との交点が遠くへ飛ぶためです。
また、関数に複数の解がある場合、初期値によって到達する解が変わります。欲しい解が正の範囲にあるのに負の側から始めると、別の根に収束することも珍しくありません。
| 状況 | 起こりやすい問題 | 対処の考え方 |
|---|---|---|
| 導関数が小さい | 更新値が大きく飛ぶ | 初期値を移動する |
| 解が複数ある | 別の解に収束する | グラフで収束先を確認する |
| 初期値が遠い | 振動や発散が起こる | 二分法で範囲を絞る |
| 重解の近く | 収束が遅くなる | 停止条件を慎重に設定する |
二分法と組み合わせる考え方
初期値の決定に不安があるときは、二分法で解の区間を先に絞り込んでからニュートン-ラフソン法へ切り替える方法が実用的です。二分法は収束が比較的遅い一方、条件を満たせば解を挟み込みやすい長所があります。
区間が十分に狭くなった段階で、中央付近の値をニュートン-ラフソン法の初期値に使います。こうすると、二分法の安定性とニュートン法の速さを組み合わせられます。
初期値を一つに決め打ちできない問題では、最初からニュートン-ラフソン法だけに頼る必要はありません。
符号変化を確認しながら安全な区間を作り、その後に反復公式を使う流れが有効です。
漸化式の扱いと実装時の注意点
続いては漸化式の扱いと実装時の注意点を確認していきます。
漸化式を表計算ソフトで使う方法
表計算ソフトでは、列ごとに反復回数、近似値、関数値、導関数値、次の近似値を並べると見やすくなります。次の行では前の行の近似値を参照し、漸化式をそのままセルの式として入力します。
計算値の表示桁数は多めに設定しておくと、収束の様子を確認しやすくなります。表示だけを丸めることと、計算自体を丸めることは異なるため、その点にも注意が必要です。
関数値の絶対値を別列に表示すれば、停止条件を満たした行を探しやすくなります。更新量と関数値を同時に監視する構成にすると、実務上の判断がしやすくなります。
プログラムでの反復処理
プログラムでは、初期値を変数 x に代入し、関数値と導関数値を計算した後に x を更新します。この一連の処理を繰り返し、許容誤差に達したら終了します。
実装では導関数の絶対値が小さすぎないかを確認する分岐が重要です。小さな値で割り算を続けると、数値が不自然に大きくなったり、計算不能になったりする恐れがあります。
最大反復回数を設け、収束しなかった場合にはその事実を返す設計も必要です。計算結果だけを出すのではなく、収束したかどうかを判定することで信頼性が高まります。
誤差評価と有効数字
近似値の差が小さいからといって、常に真の解に近いとは限りません。更新が停滞しているだけの可能性もあるため、f(x_n) の値も確認します。
反対に、関数値が小さくても、導関数や問題のスケールによっては x の誤差が無視できないことがあります。求めたい物理量や設計公差に応じて、どの程度の有効数字が必要かを先に考えることが大切です。
停止条件は一種類だけで決めず、関数値、近似値の変化量、最大反復回数を併用すると安定します。
数値計算では、答えの桁数だけでなく、その答えに到達した過程を確認する姿勢も重要です。
ニュートン-ラフソン法の活用場面
続いてはニュートン-ラフソン法の活用場面を確認していきます。
非線形方程式の数値解法
多項式、指数関数、対数関数、三角関数が混ざる非線形方程式は、式変形だけで厳密解を出せない場合があります。そのような場面でニュートン-ラフソン法は有力な選択肢になります。
例えば、ある値を満たす温度、速度、圧力、時間を逆算する問題では、方程式を f(x)=0 の形に整理して反復計算を行います。解析解がない問題でも、必要な精度の近似解を得られる点が利点です。
最適化問題との関係
最適化では、関数の最小値や最大値を探すために微分を利用します。一変数関数で極値を探す場合、導関数 f'(x)=0 を解く問題になるため、ニュートン-ラフソン法の考え方を応用できます。
この場合は導関数を新たな関数として扱い、その導関数をさらに微分します。つまり二階微分が登場することもあり、数値の安定性をより慎重に確認する必要があります。
多変数へ広げる場合には、接線の代わりに接平面や行列を用いる考え方へ発展します。基礎となる一変数の漸化式を理解しておけば、数値最適化の学習にもつながるでしょう。
学習で押さえたい比較ポイント
ニュートン-ラフソン法を学ぶときは、二分法、割線法、固定点反復法との違いを比較すると理解が深まります。必要な情報、収束の速さ、初期値への敏感さが主な比較項目です。
| 手法 | 必要な情報 | 特徴 | 向いている状況 |
|---|---|---|---|
| 二分法 | 関数値 | 安定しやすい | 解を挟む区間が分かる場合 |
| ニュートン-ラフソン法 | 関数値と導関数 | 速く収束しやすい | 良い初期値を選べる場合 |
| 割線法 | 二点の関数値 | 導関数を明示しなくてよい | 微分が面倒な場合 |
| 固定点反復法 | 変形した更新式 | 式の作り方が重要 | 収束条件を確認できる場合 |
導関数を求められるなら、ニュートン-ラフソン法は強力です。ただし速さと引き換えに初期値への配慮が必要という性質を忘れないようにしましょう。
ニュートン-ラフソン法のまとめ
ニュートン-ラフソン法は、方程式 f(x)=0 の解を接線によって近似し、漸化式で更新していく数値計算法です。基本公式は x_(n+1)=x_n-f(x_n)÷f'(x_n) であり、関数値と導関数を使って次の近似値を求めます。
計算方法を身につけるには、関数と導関数を正しく設定し、初期値を選び、関数値と更新量を確認しながら反復する流れを押さえることが重要です。初期値が収束の成否を左右するため、グラフや値の表を使って解の位置を見積もるとよいでしょう。
導関数が小さい位置や、解から遠い初期値には注意が必要です。必要に応じて二分法と組み合わせ、停止条件と最大反復回数を設定すれば、より安全に数値解を求められます。
公式の意味を接線の交点として理解しておけば、平方根の計算から複雑な非線形方程式まで応用の幅が広がります。