Web教材一覧数値解析
(BOK大区分:1 基礎理論、中区分:2 アルゴリズムとプログラミング、中区分:2 アルゴリズム)

方程式の根(二分法、ニュートン法)

キーワード

数値解析、方程式の根、二分法、ニュートン法

参照:JavaScriptの計算プログラム


方程式 f(x)=0 の根を求める代表的な方法である二分法とニュートン法(ニュートン-ラフソン法)を説明します。
 双方とも、1つの実根を求める方法で、その根の大体の値を知っていることが前提になります。

二分法

方程式 x2-1=0 の根のうち、x=1 を求めることを例にします。

ステップ1
 f(x)=x2-1 のグラフは上左図のようになるので、おそらく xmin=0.5~xmax=1.9 の間に唯一の根があるだろうと想定できます。
 このように、f(x)の値が、一方では正、一方では負になり、その間に根が1つだけしかない2点、xminとxmaxを与えます(この場合は、グラフが右上がりなので、f(xmin)<0、f(xmax)>0になりますが、右下がりの場合は、f(xmin)>0、f(xmax)<0となるように与えます)。

ステップ2
 xminとxmaxの中点 x1=(xmin+x1)/2 を求めます。

ステップ3

 このように、xminとxmaxの幅を狭くしていくことにより、根が求められます。
 その経過を上右表に示しました。

ニュートン法

方程式 x2-1=0 の根のうち、x=1 を求めることを例にします。

ステップ1
 f(x)=x2-1 のグラフは上左図のようになるので、おそらく x0=0.3 の近傍に根があるだろうと想定できます。
このように、ニュートン法では、根の近傍の値を初期値x0として与えます。

ステップ2
 x0に対応する点Aにおける切線を引きます。その切線がx軸と交わる点をx1とします。
 さらに、x1に対応する点Bにおける切線がx軸と交わる点をx2として、x2に対応する点Bにおける切線を・・・と繰り返していく間に、根に近づきます。

その経過を上右表に示しました。ニュートン法は、二分法と比較して計算が面倒ですが、解に達するまでの繰り返し回数が少なくなります。

●ニュートン法の数学的説明
 ニュートン法は、方程式f(x)と、その微分の式を与える必要があります。
 f(x)の微分をg(x)とします(f(x)=x2-1のとき、g(x)=2xになります)。
点Aでの接線の勾配は、g(x0)ですから、接線は
   y=g(x0)(x-x0)+f(x0)
となります。
それで、x軸との交点x1は、
   x1=x0-f(x0)/g(x0)
となります。一般的には、
   xi+1=xi-f(xi)/g(xi)
として計算できます。


計算プログラム

f(x)はJavascript の形式で与えてください。
y=f(x)==0
min=max=
初期値:x0=

数値解析へ