ニュートン法(Newton's method)は、非線形方程式の解を求めるための数値解法の1つであり、微積分学に基づいたアルゴリズムである。

例えば、方程式 f(x)=0f(x) = 0 の解 xx^* を求める場合を考える。解析的に解を求めることが困難な場合、ニュートン法は以下のように解を近似的に求める。

  1. 初期値 x0x_0 を設定する。
  2. f(x)f(x) の一次近似式 y(x)y(x) を求める。y(x)y(x) は、x0x_0 における f(x)f(x) の接線の式である。
  3. y(x)y(x) の解 x1x_1 を求める。
  4. x1x_1 に対して、2-3を繰り返すことで、xx^* に収束する。

具体的には、xnx_n における f(x)f(x) の接線の式は以下のようになる。

y(x)=f(xn)+f(xn)(xxn)y(x) = f(x_n) + f'(x_n)(x-x_n)

ここで、f(xn)f'(x_n)f(x)f(x)xnx_n における微分係数であり、y(x)y(x) の解は以下のように求められる。

xn+1=xnf(xn)f(xn)x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)}

この式を反復的に計算することで、解 xx^* に収束することが期待される。

ただし、ニュートン法は初期値によっては解に収束しない場合があるため、収束性の保証が必要である。また、微分が求められない、微分が不連続な場合には適用できないため、注意が必要である。

例えば、方程式 f(x)=x22f(x) = x^2 - 2 の解を求める場合、f(x)=2xf'(x) = 2x であるため、ニュートン法の式は以下のようになる。

xn+1=xnxn222xn=xn2+1xnx_{n+1} = x_n - \frac{x_n^2 - 2}{2x_n} = \frac{x_n}{2} + \frac{1}{x_n}

初期値を x0=2x_0 = 2 とすると、以下のように反復計算することで、解 x=2x^* = \sqrt{2} に収束することが確認できる。

x1=x02+1x0=54x2=x12+1x1=2920x3=x22+1x2=69614920x10=x92+1x91.4142\begin{aligned} x_1 &= \frac{x_0}{2} + \frac{1}{x_0} = \frac{5}{4} \\ x_2 &= \frac{x_1}{2} + \frac{1}{x_1} = \frac{29}{20} \\ x_3 &= \frac{x_2}{2} + \frac{1}{x_2} = \frac{6961}{4920} \\ \cdots \\ x_{10} &= \frac{x_9}{2} + \frac{1}{x_9} \approx 1.4142 \cdots \\ \end{aligned}

以上が、ニュートン法の基本的なアルゴリズムである。今日では、多くの数値計算ソフトウェアに実装されており、非線形方程式の解を求めるために広く用いられている。

リンク

Newton's method[EN]