見出し画像

ニュートン法について考え方を簡単にまとめてみた

平方根は一体どうやって求めているのか?


平方根とは二乗したらその数になる数のことです。

例えば二乗して25になる数は5($${5^2=5\times5=25}$$)になるわけですが、二乗して2になる数は?と言われたらどうでしょう?
すぐに計算ができませんよね。

二乗して2になる数は$${\sqrt{2}=1.41421356\cdot\cdot}$$となります。

この数字って一体どういう計算で求めているのか気になりませんか?
その一つの方法がニュートン法と呼ばれる計算方法です。
ニュートン法は平方根の近似値を求める為の計算方法です。


この記事では、ニュートン法を使ってどのように平方根の近似値を求めるのか、考えた事をまとめました。

ニュートン法の考え方について


まず、平方根を求めたい数を$${k}$$としましょう。$${k}$$の平方根を$${x}$$とすると、次のように書くことができます。

$${x=\pm\sqrt{k}\hspace{120pt}(1)}$$

この式を等式変形します。

$${x^2=k\\x^2-k=0\hspace{120pt}(2)}$$

ここで

$${f(x)=x^2-k}$$として、$${f(x)}$$をグラフに描いてみましょう。グラフは図1のような形になります。

図1

求めたい$${k}$$の平方根は

$${x^2-k=0}$$を満たす$${x}$$の値と言うことになりますね。

図1のグラフでは、$${f(x)=0}$$になる点の$${x}$$(即ち点A)が求めたい$${k}$$の平方根と言うことになります。

次に、グラフ上で適当な座標を考え、その$${x}$$座標を$${x_0}$$とすると、$${y}$$座標は$${f(x_0)}$$と書くことができます(図2を参照)。

点$${(x_0,f(x_0))}$$における接線の方程式は次のように書くことができます。

$${y=f'(x_0)x+b\hspace{120pt}(3)}$$

図2

この接線の方程式の切片$${b}$$を求めるために、(3)式に座標

$${x=x_0,y=f(x_0)}$$

を代入すると

$${f(x_0)=f'(x_0)x_0+b}$$

等式変形して

$${b=f(x_0)-f'(x_0)x_0\hspace{120pt}(4)}$$

したがって接線の方程式は

$${y=f'(x_0)x+f(x_0)-f'(x_0)x_0\hspace{120pt}(5)}$$

この接線と$${x}$$軸との交点の$${y}$$座標は0なので

$${y=0}$$を代入し、この点の$${x}$$座標を$${x_1}$$とすると(図3)

$${0=f'(x_0)x_1+f(x_0)-f'(x_0)x_0\hspace{120pt}(6)}$$

等式変形して

$${\large 0=x_1+ \frac{f(x_0)}{f'(x_0)}-x_0}$$

$${\large x_1=x_0-\frac{f(x_0)}{f'(x_0)}\hspace{150pt}(7)}$$

図3

ここで、$${x_1}$$を最初の$${x_0}$$と同じように考えれば

同様にして

$${\large x_2=x_1-\frac{f(x_1)}{f'(x_1)}}$$

$${\large x_{n+1}=x_n-\frac{f(x_n)}{f'(x_n)}\hspace{120pt}(8)}$$

図4

ここまで書きましたが、分かりやすく説明すると、
(8)式において、$${x_1,x_2,\cdot\cdot\cdot x_n}$$と計算を繰り返すことにより、図4の様に、点A(求めたい平方根の値)に$${x_1,x_2,\cdot\cdot\cdot x_n}$$が近づいていくイメージです。

実際に計算してみよう


実際に2の平方根を求めてみましょう。
まずは計算に必要なパラメータを決めます。

今回は2の平方根を求めたいので$${k=2}$$です。

次に、適当な$${x}$$軸上の点$${x_0}$$を決めますが、今回は$${x_0=5}$$とします
(計算回数が増えるので、出来れば$${\sqrt{2}=1.41421356}$$に近い値が良いです)。

$${f(x)=x^2-k=x^2-2}$$
$${f'(x)=2x}$$

(8)式より

$${\large x_{n+1}=x_n-\frac{f(x_n)}{f'(x_n)}}$$

$${\large x_{n+1}=x_n-\frac{x_n^2-2}{2x_n}}$$

まず最初に$${x_1}$$を求めます。

$${\large\begin{array}{}x_1&=&x_0-\frac{x_0^2-2}{2x_0}\\[10pt]&=&5-\frac{5^2-2}{2\times5}\\[10pt]&=&2.7\end{array}}$$

$${\large\begin{array}{}x_2&=&x_1-\frac{x_1^2-2}{2x_1}\\[10pt]&=&2.7-\frac{2.7^2-2}{2\times2.7}\\[10pt]&=&1.72037037\end{array}}$$

$${\large\begin{array}{}x_3&=&x_2-\frac{x_2^2-2}{2x_2}\\[10pt]&=&1.72037037-\frac{1.72037037^2-2}{2\times1.72037037}\\[10pt]&=&1.441455368\end{array}}$$

$${\sqrt{2}=1.41421356}$$なので、$${{x_3}=1.441455368}$$と比べると、大分近づいてきた感じがしますよね?

この計算を繰り返すことにより、平方根表に記載されているような平方根の近似値を求めることが可能です。

ただし、電卓を使っても計算が非常に面倒なので(笑)、パソコンでプログラムを作れば簡単に計算ができます。

実際にニュートン法のアルゴリズムを使って平方根の近似値を求める簡易ツールを作成しましたので、興味があれば使ってみてください↓↓

https://megro-aquarius29.com/?p=1845

最後まで読んでいただき、ありがとうございます。

この記事が気に入ったらサポートをしてみませんか?