WIIS

1変数関数の微分

ニュートン法を用いた近似値計算

目次

Mailで保存
Xで共有

ニュートン法の目的と手順

実数空間\(\mathbb{R} \)もしくはその部分集合\(X\)を定義域とし、実数を値としてとる1変数関数\begin{equation*}f:\mathbb{R} \supset X\rightarrow \mathbb{R} \end{equation*}が与えられれば、そこから方程式\begin{equation*}
f\left( x\right) =0
\end{equation*}を定義できます。この方程式の(root)とは、以下の条件\begin{equation*}
f\left( c\right) =0
\end{equation*}を満たす実数\(c\in X\)です。これは、関数\(f\)のグラフと\(x\)軸の交点の\(x\)座標でもあります。

方程式\(f\left( x\right) =0\)に解が存在することが判明しているものの、解の正確な値\(c\)が不明であるような状況を想定します。ただし、真の解\(c\)が入り得るおおよその範囲は分かっており、なおかつ、真の解\(c\)の周辺には他に解が存在しないものとします。つまり、関数\(f\)のグラフが\(x\)軸と交わっており、周辺に他の交点が存在しないことを確認できるものの、交点の\(x\)座標が正確には分からない状況を想定するということです。以上の条件に加えて、関数\(f\)が微分可能である場合には、ニュートン法(Newton’s Method)と呼ばれるアルゴリズムを利用することにより、真の解\(c\)の近似値を特定できます。具体的には以下の通りです。

方程式\(f\left( x\right) =0\)の解の正確な値\(c\)は不明であるものの、\(c\)がとり得るおおよその範囲は分かっている状況を想定しているため、まずは、その範囲に属する点を任意に選び、それを、\begin{equation*}x_{0}
\end{equation*}で表記します。仮に、\begin{equation*}
f\left( x_{0}\right) =0
\end{equation*}が成り立つのであれば\(x_{0}\)は真の解\(c\)に他ならず、話はここで終了です。そこで以降では、\begin{equation*}f\left( x_{0}\right) \not=0
\end{equation*}である状況、すなわち\(x_{0}\)が真の解\(c\)ではない状況を想定します。

関数\(f\)が微分可能である状況を想定しているため、関数\(f\)のグラフ上の点\(\left( x_{0},f\left( x_{0}\right) \right) \)における接線の方程式が、\begin{equation*}y=f^{\prime }\left( x_{0}\right) \left( x-x_{0}\right) +f\left( x_{0}\right)
\end{equation*}として得られます。この接線と\(x\)軸の交点の\(x\)座標を、\begin{equation*}x_{1}
\end{equation*}で表記します。このとき、\begin{equation*}
0=f^{\prime }\left( x_{0}\right) \left( x_{1}-x_{0}\right) +f\left(
x_{0}\right)
\end{equation*}が成り立ちます。特に、\(f^{\prime }\left( x_{0}\right) \not=0\)である場合には、これを\(x_{1}\)について解くことにより、\begin{equation*}x_{1}=x_{0}-\frac{f\left( x_{0}\right) }{f^{\prime }\left( x_{0}\right) }
\end{equation*}を得ます。

関数\(f\)が微分可能である状況を想定しているため、関数\(f\)のグラフ上の点\(\left( x_{1},f\left( x_{1}\right) \right) \)における接線の方程式が、\begin{equation*}y=f^{\prime }\left( x_{1}\right) \left( x-x_{1}\right) +f\left( x_{1}\right)
\end{equation*}として得られます。この接線と\(x\)軸の交点の\(x\)座標を、\begin{equation*}x_{2}
\end{equation*}で表記します。このとき、\begin{equation*}
0=f^{\prime }\left( x_{1}\right) \left( x_{2}-x_{1}\right) +f\left(
x_{1}\right)
\end{equation*}が成り立ちます。特に、\(f^{\prime }\left( x_{1}\right) \not=0\)である場合には、これを\(x_{2}\)について解くことにより、\begin{equation*}x_{2}=x_{1}-\frac{f\left( x_{1}\right) }{f^{\prime }\left( x_{1}\right) }
\end{equation*}を得ます。

同様のプロセスを繰り返します。一般に、それぞれの\(n\in \mathbb{N} \)について、関数\(f\)のグラフ上の点\(\left( x_{n},f\left( x_{n}\right)\right) \)における接線の方程式は、\begin{equation*}y=f^{\prime }\left( x_{n}\right) \left( x-x_{n}\right) +f\left( x_{n}\right)
\end{equation*}として得られるため、この接線と\(x\)軸の交点の\(x\)座標を、\begin{equation*}x_{n+1}
\end{equation*}と表記するのであれば、\begin{equation*}
0=f^{\prime }\left( x_{n}\right) \left( x_{n+1}-x_{n}\right) +f\left(
x_{n}\right)
\end{equation*}が成り立ちます。特に、\(f^{\prime }\left( x_{n}\right) \not=0\)である場合には、これを\(x_{n+1}\)について解くことにより、\begin{equation*}x_{n+1}=x_{n}-\frac{f\left( x_{n}\right) }{f^{\prime }\left( x_{n}\right) }
\end{equation*}を得ます。

以上のプロセスを繰り返すことにより、関数\(f\)のグラフの接線と\(x\)軸の交点の\(x\)座標からなる数列\begin{equation*}x_{0},x_{1},x_{2},\cdots ,x_{n},\cdots
\end{equation*}すなわち、\begin{equation*}
\left\{ x_{n}\right\}
\end{equation*}が得られますが、後ほど証明するように、\(n\)が大きくなるにつれてこの数列の項\(x_{n}\)は方程式\(f\left( x\right) =0\)の真の解\(c\)へ近づいていきます。先のプロセスを繰り返すほど、近似の精度は高くなるということです。また、究極的には、\begin{equation*}\lim_{n\rightarrow \infty }x_{n}=c
\end{equation*}が成り立ちます。つまり、数列\(\left\{ x_{n}\right\} \)は方程式\(f\left( x\right) =0\)の真の解へ収束します。以上がニュートン法の具体的な手続きです。

例(ニュートン法)
以下の方程式\begin{equation*}
-x^{4}+8x^{2}+4=0
\end{equation*}の実数解の近似値を求めます。それぞれの\(x\in \mathbb{R} \)に対して、\begin{equation*}f\left( x\right) =-x^{4}+8x^{2}+4
\end{equation*}を定める関数\(f:\mathbb{R} \rightarrow \mathbb{R} \)を定義すれば、与えられた方程式は、\begin{equation*}f\left( x\right) =0
\end{equation*}と表現されます。\(f\)は微分可能であり、導関数\(f^{\prime }:\mathbb{R} \rightarrow \mathbb{R} \)はそれぞれの\(x\in \mathbb{R} \)に対して、\begin{eqnarray*}f^{\prime }\left( x\right) &=&-4x^{3}+16x \\
&=&-4x\left( x^{2}-4\right) \\
&=&-4x\left( x+2\right) \left( x-2\right)
\end{eqnarray*}を定めます。\(f^{\prime }\left( x\right)=0\)を解くと\(x=0,2,-2\)を得るため、以下の増減表が得られます。

$$\begin{array}{cccccccc}
\hline
x & \cdots & -2 & \cdots & 0 & \cdots & 2 & \cdots \\
\hline
f^{\prime }\left( x\right) & + & 0 & – & 0 & + & 0 & – \\
\hline
f\left( x\right) & \nearrow & 20 & \searrow & 4 & \nearrow & 20 & \searrow \\ \hline
\end{array}$$

方程式\(f\left( x\right) =0\)の解は\(f\)のグラフと\(x\)軸の交点であるため、増減表より、解の1つは\(2\)より大きい何らかの値であることが推察できます。そこで、ニュートン法を用いてその解の近似値を求めます。初期値として、\begin{equation*}x_{0}=\frac{5}{2}
\end{equation*}を採用します。次の近似値\(x_{1}\)は、\begin{eqnarray*}x_{1} &=&x_{0}-\frac{f\left( x_{0}\right) }{f^{\prime }\left( x_{0}\right) }
\\
&=&\frac{5}{2}-\frac{f\left( \frac{5}{2}\right) }{f^{\prime }\left( \frac{5}{2}\right) } \\
&=&\frac{5}{2}-\frac{-\left( \frac{5}{2}\right) ^{4}+8\left( \frac{5}{2}\right) ^{2}+4}{-4\left( \frac{5}{2}\right) ^{3}+16\left( \frac{5}{2}\right)
} \\
&=&\frac{5}{2}+\frac{239}{360} \\
&=&\frac{1139}{360} \\
&\approx &3.1639
\end{eqnarray*}となり、次の近似値\(x_{2}\)は、\begin{eqnarray*}x_{2} &=&x_{1}-\frac{f\left( x_{1}\right) }{f^{\prime }\left( x_{1}\right) }
\\
&=&\frac{1139}{360}-\frac{-\left( \frac{1139}{360}\right) ^{4}+8\left( \frac{1139}{360}\right) ^{2}+4}{-4\left( \frac{1139}{360}\right) ^{3}+16\left(
\frac{1139}{360}\right) } \\
&=&\frac{1139}{360}-\frac{270\,794724241}{1277555067360} \\
&=&\frac{1257082519441}{425851689120} \\
&\approx &2.9519
\end{eqnarray*}となります。

 

ニュートン法の根拠

関数\(f:\mathbb{R} \supset X\rightarrow \mathbb{R} \)から定義される方程式\begin{equation*}f\left( x\right) =0
\end{equation*}に解\(c\in X\)が存在することは判明している一方で、その正確な値が不明である状況を想定します。また、\(c\)の周辺に他に解は存在しないものとします。点\(c\)の周辺にある点\(x_{0}\in X\)を任意に選びます。関数\(f\)が点\(c\)の周辺の任意の点\(x\)において微分可能であるとともに、そのような任意の点\(x\)において、\begin{equation*}f^{\prime }\left( x\right) \not=0
\end{equation*}が成り立つ場合には、以下の条件\begin{equation*}
x_{n+1}=x_{n}-\frac{f\left( x_{n}\right) }{f^{\prime }\left( x_{n}\right) }\quad \left( n\in \mathbb{Z} _{+}\right)
\end{equation*}を満たす数列\(\left\{ x_{n}\right\} \)が定義可能です。ニュートン法とは、この数列\(\left\{ x_{n}\right\} \)の項を具体的に特定することを通じて方程式\(f\left(x\right) =0\)の真の解\(c\)の近似値を特定するアルゴリズムです。ニュートン法が有効であることを保証するためには、\begin{equation*}\lim_{n\rightarrow \infty }x_{n}=c
\end{equation*}が成り立つことを確認しておく必要があります。

命題(ニュートン法の根拠)
点\(c\in \mathbb{R} \)と正の実数\(\delta >0\)に加えて関数\(f:\mathbb{R} \supset \left[ c-\delta ,c+\delta \right] \rightarrow \mathbb{R} \)が与えられているものとする。ただし、\begin{equation*}f\left( c\right) =0
\end{equation*}であるとともに、\(f\)は\(\left[ c-\delta ,c+\delta \right] \)上で\(C^{2}\)級であり、さらに、任意の\(x\in \left[ c-\delta ,c+\delta \right] \)において、\begin{equation*}f^{\prime }\left( x\right) \not=0
\end{equation*}が成り立つものとする。\(x_{1}\in \left[ c-\delta ,c+\delta \right] \)を任意に選んだ上で、数列\(\left\{ x_{n}\right\} \)を、\begin{equation*}x_{n+1}=x_{n}-\frac{f\left( x_{n}\right) }{f^{\prime }\left( x_{n}\right) }\quad \left( n\in \mathbb{Z} _{+}\right)
\end{equation*}と再帰的に定義する。\(k\in \left( 0,1\right) \)を任意に選んだとき、それに対して十分小さい\(\delta >0\)を選べば、\begin{equation*}\left\vert x_{n+1}-c\right\vert \leq k^{n+1}\left\vert x_{0}-c\right\vert
\end{equation*}が成り立つ。したがって、十分小さい\(\delta >0\)のもとでは、\begin{equation*}\lim_{n\rightarrow \infty }x_{n}=c
\end{equation*}が成り立つ。

証明

プレミアム会員専用コンテンツです
ログイン】【会員登録

 

ニュートン法を用いた近似値計算

ある値\(c\in \mathbb{R} \)を方程式\(f\left( x\right) =0\)の解として表現できる場合には、ニュートン法を用いることにより\(c\)の近似値を求めることができます。

例(ニュートン法を用いた近似値計算)
\(\sqrt{2}\)の近似値をニュートン法を用いて特定します。\(\sqrt{2}\)は以下の方程式\begin{equation*}x^{2}=2
\end{equation*}すなわち、\begin{equation*}
x^{2}-2=0
\end{equation*}の正の解に他なりません。それぞれの\(x\in \mathbb{R} \)に対して、\begin{equation*}f\left( x\right) =x^{2}-2
\end{equation*}を定める関数\(f:\mathbb{R} \rightarrow \mathbb{R} \)を定義した上で、以下の方程式\begin{equation*}f\left( x\right) =0
\end{equation*}について考えます。この方程式には2つ解\(\sqrt{2},-\sqrt{2}\)が存在しますが、今は\(\sqrt{2}\)の近似値を問題にしています。\(\sqrt{2}\)は\(1\)より大きく\(2\)より小さい何らかの値です。そこで、初期値として、\begin{equation*}x_{0}=1
\end{equation*}を採用します。関数\(f\)は微分可能であり、導関数\(f^{\prime }:\mathbb{R} \rightarrow \mathbb{R} \)はそれぞれの\(x\in \mathbb{R} \)に対して、\begin{equation*}f^{\prime }\left( x\right) =2x
\end{equation*}を定めることを踏まえると、次の近似値\(x_{1}\)は、\begin{eqnarray*}x_{1} &=&x_{0}-\frac{f\left( x_{0}\right) }{f^{\prime }\left( x_{0}\right) }
\\
&=&1-\frac{f\left( 1\right) }{f^{\prime }\left( 1\right) } \\
&=&1-\frac{1^{2}-2}{2\cdot 1} \\
&=&\frac{3}{2} \\
&=&1.5
\end{eqnarray*}となり、次の近似値\(x_{2}\)は、\begin{eqnarray*}x_{2} &=&x_{1}-\frac{f\left( x_{1}\right) }{f^{\prime }\left( x_{1}\right) }
\\
&=&\frac{3}{2}-\frac{\left( \frac{3}{2}\right) ^{2}-2}{2\cdot \frac{3}{2}} \\
&=&\frac{17}{12} \\
&=&1.41666…
\end{eqnarray*}となり、次の近似値\(x_{3}\)は、\begin{eqnarray*}x_{3} &=&x_{2}-\frac{f\left( x_{2}\right) }{f^{\prime }\left( x_{2}\right) }
\\
&=&\frac{17}{12}-\frac{\left( \frac{17}{12}\right) ^{2}-2}{2\cdot \frac{17}{12}} \\
&=&\frac{577}{408} \\
&=&1.414215686…
\end{eqnarray*}となります。\(\sqrt{2}\)の正確な値は、\begin{equation*}\sqrt{2}=1.414213562373095048801….
\end{equation*}であるため、\(x_{3}\)の時点でも十分な精度が得られています。

 

演習問題

問題(ニュートン法)
以下の方程式\begin{equation*}
x^{3}-3x-3=0
\end{equation*}の解の近似値をニュートン法を用いて求めてください。

解答を見る

プレミアム会員専用コンテンツです
ログイン】【会員登録

問題(ニュートン法)
\(\sqrt{3}\)の近似値をニュートン法を用いて求めてください。
解答を見る

プレミアム会員専用コンテンツです
ログイン】【会員登録

関連知識

Mailで保存
Xで共有

質問とコメント

プレミアム会員専用コンテンツです

会員登録

有料のプレミアム会員であれば、質問やコメントの投稿と閲覧、プレミアムコンテンツ(命題の証明や演習問題とその解答)へのアクセスなどが可能になります。

ワイズのユーザーは年齢・性別・学歴・社会的立場などとは関係なく「学ぶ人」として対等であり、お互いを人格として尊重することが求められます。ユーザーが快適かつ安心して「学ぶ」ことに集中できる環境を整備するため、広告やスパム投稿、他のユーザーを貶めたり威圧する発言、学んでいる内容とは関係のない不毛な議論などはブロックすることになっています。詳細はガイドラインをご覧ください。

誤字脱字、リンク切れ、内容の誤りを発見した場合にはコメントに投稿するのではなく、以下のフォームからご連絡をお願い致します。

プレミアム会員専用コンテンツです
ログイン】【会員登録