2019.05.22

数学

ニュートン法

ニュートン法、またはニュートン・ラフソン法)は、関数f(x)が与えられたときf(x)=0となるxを数値計算の反復によって求めるアルゴリズムの1つです。

f(x)=0のxは?

それでは、ニュートン法の考え方を説明します。

はじめに、f(x)=0となるxと予想値x0(任意)を決めて、その値x0でf(x0)の接線を求めます。

次に、接線とx軸の交点の座標(x1,0)を計算し、f(x1)の接線を求めます。

さらに、接線とx軸の交点の座標(x2,0)を計算し、f(x2)の接線を求めます。

以後、接線とx軸の交点を繰り返し計算し、交点のx座標xnの値が変化しなくなれば(収束)、そのx座標xnが求めるxとなります。ただし、関数f(x)=0となるxが存在しない場合は、正しいxは求められません。また、関数f(x)=0となるxが複数存在する場合は、初期値x0の値にって求まるxが変わります。

ニュートン法の考え方

上の図は、接線とx軸の交点を繰り返し計算していく様子を示しています。計算した値が、求めたいxに近づいている様子が確認できます。

f'(x)はf(x)をxで微分したものでf(x)の傾きを表しています。

ここから、ニュートン法を実現するための式について説明していきます。

f(xn)をxnで微分すると、xnの接線の傾きf'(xn)を求めることができます。その傾きf'(xn)をxの増加分⊿x、yの増加分⊿yを使って以下のようにおくと、

ニュートン法 接線の傾き

この接線とx軸との交点は、

ニュートン法 計算式

で求められます。(下図)

ニュートン法 xnの求め方

接線の傾きf'(xn)を⊿y/⊿xとおくと、xn+1は、xnからf(xn)×(⊿x/⊿y)を引いた値になります。

最後に、⊿xと⊿yをf'(xn)に置き換えてニュートン法の漸化式にします。

ニュートン法 漸化式

次のコンテンツ

関数f(x)が与えられたときf(x)=0となるxを数値計算の反復によって求める方法を詳しく解説しています。

2019.05.22

関連コンテンツ

数学に関係するJavaのメソッドやソースコードなどを紹介しています。

2022.10.25

画像フォーマット形式・色・大きさ・傾きなどの変更、特定の図形(文字・記号など)を見つけたり、取り出したりする画像処理について詳しく解説。

2015.11.29

関数f(x)が与えられたときf(x)=0となるxを数値計算の反復によって求める方法を詳しく解説しています。

2019.05.22

基本的な計算である足し算(加法)/引き算(減法)/掛け算(乗法)/割り算(除法)を行うプログラム作成。

2020.03.23

平面上の位置を表す座標系の1つXY座標系について詳しく解説。

2020.03.23

JavaのMath.sqrtメソッドを使わない平方根の計算方法を解説。ソースコードを使って詳しく解説しています。

2022.12.16

数値微分を使ったニュートン法で平方根を計算する方法を紹介しています。興味のあるかたは是非ご覧ください。

2019.05.23

反復計算の回数の上限があるニュートン法の解法ソースコードを紹介しています。

2019.05.24

広告