0

2のn乗根を近似する多項式

3
0
$$$$

こんにちは。また暖かくなってきて、天気はツンデレのようですね。
今回はニュートン法の利用のお話です。
スマホで見る方は横向きをお勧めします。

本題

ニュートン法

ある関数$f(x)$があり、$f(x)=0$となる$x$を見つけるとき、その値は次の式を繰り返し計算することで近似される。
\begin{align*} a_{n+1}&=a_n-\frac{f(a_n)}{f'(a_n)} \end{align*}

この記事では、$f(x)=x^n-2$として$n$について一般化をします。$n=1$から始め、$a_5$まで計算することにしました。では計算!

けーさん。

初期値$a_1=1$として計算を始めます。そして、$f$の部分を少し整理しましょう。
\begin{align*} -\frac{f(a_n)}{f'(a_n)}&=\frac{{a_n}^n-2}{({a_n}^n-2)'}\\ &=-\frac{{a_n}^n-2}{n{a_n}^{n-1}}\\ &=-\frac{a_n}{n}+\frac{2}{n}a_n^{-n+1} \end{align*}
こうした方がいいですね。では始めましょう!
\begin{align*} a_2&=a_1-\frac{a_1}{n}+\frac{2}{n}a_1^{-n+1}\\ &=1-\frac{1}{n}+\frac{2}{n}\\ &=\frac{n+1}{n} \end{align*}
\begin{align*} a_3&=\frac{n+1}{n}-\frac{1}{n}\frac{n+1}{n}+\frac{2}{n}\left(\frac{n+1}{n}\right)^{-n+1}\\ &=\frac{n^2-1}{n^2}+\frac{2}{n}\frac{n^{n-1}}{(n+1)^{n-1}}\\ &=\frac{1}{n^2}(x+1)(x-1)+\frac{2n^{n-2}}{(n+1)^{n-1}} \end{align*}
すこしごちゃついてきましたね。まだまだやっていきます。
\begin{align*} a_4&=\frac{1}{n^2}(x+1)(x-1)+\frac{2n^{n-2}}{(n+1)^{n-1}}-\frac{1}{n}\left\{\frac{1}{n^2}(x+1)(x-1)+\frac{2n^{n-2}}{(n+1)^{n-1}}\right\}\\ &\quad+\frac{2}{n}\left\{\frac{1}{n^2}(x+1)(x-1)+\frac{2n^{n-2}}{(n+1)^{n-1}}\right\}^{-n+1}\\ &=\frac{1}{n^3}(n+1)(n-1)^2+\frac{2n^{n-3}}{(n+1)^{n-1}}(n-1)\\ &\quad+\frac{2}{n}\left\{\frac{1}{n^2}(x+1)(x-1)+\frac{2n^{n-2}}{(n+1)^{n-1}}\right\}^{-n+1} \end{align*}
最後!
\begin{align*} a_5&=\frac{1}{n^3}(n+1)(n-1)^2+\frac{2n^{n-3}}{(n+1)^{n-1}}(n-1)+\frac{2}{n}\left\{\frac{1}{n^2}(n+1)(n-1)+\frac{2n^{n-2}}{(n+1)^{n-1}}\right\}^{-n+1}\\ &\quad-\frac{1}{n}\left[\frac{1}{n^3}(n+1)(n-1)^2+\frac{2n^{n-3}}{(n+1)^{n-1}}(n-1)+\frac{2}{n}\left\{\frac{1}{n^2}(n+1)(n-1)+\frac{2n^{n-2}}{(n+1)^{n-1}}\right\}^{-n+1}\right]\\ &\quad+\frac{2}{n}\left[\frac{1}{n^3}(n+1)(n-1)^2+\frac{2n^{n-3}}{(n+1)^{n-1}}(n-1)+\frac{2}{n}\left\{\frac{1}{n^2}(n+1)(n-1)+\frac{2n^{n-2}}{(n+1)^{n-1}}\right\}^{-n+1}\right]^{-n+1}\\ &=\frac{1}{n^4}(n+1)(n-1)^4+\frac{2n^{n-4}}{(n+1)^{n-1}}(n-1)^2+\frac{2}{n^2}(n-1)\left\{\frac{1}{n^2}(n+1)(n-1)+\frac{2n^{n-2}}{(n+1)^{n-1}}\right\}^{-n+1}\\ &\quad+\frac{2}{n}\left[\frac{1}{n^3}(n+1)(n-1)^2+\frac{2n^{n-3}}{(n+1)^{n-1}}(n-1)+\frac{2}{n}\left\{\frac{1}{n^2}(n+1)(n-1)+\frac{2n^{n-2}}{(n+1)^{n-1}}\right\}^{-n+1}\right]^{-n+1} \end{align*}

よって、次のことがわかる。

$\sqrt[n]{2}\quad n\ne0$は次の多項式で近似できる。
\begin{align*} \sqrt[n]{2}&\risingdotseq\frac{1}{n^4}(n+1)(n-1)^4+\frac{2n^{n-4}}{(n+1)^{n-1}}(n-1)^2+\frac{2}{n^2}(n-1)\left\{\frac{1}{n^2}(n+1)(n-1)+\frac{2n^{n-2}}{(n+1)^{n-1}}\right\}^{-n+1}\\ &\quad+\frac{2}{n}\left[\frac{1}{n^3}(n+1)(n-1)^2+\frac{2n^{n-3}}{(n+1)^{n-1}}(n-1)+\frac{2}{n}\left\{\frac{1}{n^2}(n+1)(n-1)+\frac{2n^{n-2}}{(n+1)^{n-1}}\right\}^{-n+1}\right]^{-n+1} \end{align*}

こんなものわかってしまったら、計算するしかないですよね!実際に計算しましょう。

$n=2$

代入してとても頑張って計算すると、
\begin{align*} \sqrt{2}&=\frac{665857}{470832} \end{align*}
という分数を得られます。これの値は
\begin{align*} \frac{665857}{470832}&\risingdotseq1.414213562374689910626...\\ \sqrt{2}&\risingdotseq1.414213562373095048801... \end{align*}
小数点以下11桁という高精度の近似を得られましたね。
ちなみに自分のスマホにこんな近似式が眠ってました。
\begin{align*} \sqrt{2}&\risingdotseq\frac{886731088897}{627013566048}\\ &=1.414213562373095048801689623...\\ \sqrt{2}&=1.414213562373095048801688724... \end{align*}
小数点以下23桁とかいう化け物分数です。おそらく、過去の自分がこのニュートン法を$a_6$まで計算して得たものだと思います。今回の一般化では$a_6$までやると流石に長くなりすぎるので止めました。別に計算したくなかったとかではないですよ?()

$n=3$

こちらもめっちゃ頑張って計算すると、
\begin{align*} \sqrt[3]{2}\risingdotseq\frac{2146097524939083451}{1703358734191174242} \end{align*}
という分数が得られます。これを小数で表示すると、
\begin{align*} \frac{2146097524939083451}{1703358734191174242}&\risingdotseq1.25992105001776977372930109...\\ \sqrt[3]{2}&=1.25992104989487316476721060... \end{align*}
なんでこんないかつい見た目して7桁しか合わねえんだ?こいつ。なんか憤りを感じます。正直nが大きければ大きいほど精度はよくなると予想していたので、裏切られてなんか悲しいです。$n>3$の結果は、近似値のみ載せます。

$n=10$までの結果

\begin{align*} n=1&\rightarrow2\quad\quad\quad\quad\quad\quad\quad\quad\quad(\text{完全一致})\\ n=2&\rightarrow1.4142135623746...\quad(\text{11桁一致})\\ n=3&\rightarrow1.2599210500177...\quad(\text{7桁一致})\\ n=4&\rightarrow1.1892071156761...\quad(\text{9桁一致})\\\ n=5&\rightarrow1.14869835662...\quad\quad(\text{8桁一致 なぜかこれだけGeoGebraが13桁しか表示してくれなかった。})\\ n=6&\rightarrow1.1224620510405...\quad(\text{7桁一致})\\ n=7&\rightarrow1.1040895174857...\quad(\text{8桁一致})\\ n=8&\rightarrow1.0905077374375...\quad(\text{8桁一致})\\ n=9&\rightarrow1.0800597444737...\quad(\text{7桁一致})\\ n=10&\rightarrow1.0717734687766...\quad(\text{8桁一致})\\ \end{align*}

やったね!

最初の11桁のインパクトが強すぎて、後半がしょぼく見えてしまいますね。まあ、実際あんなに分母分子がでかい分数になるくせにこの程度の近似だとしょぼいの部類に入ってしまいますね。一応、前から気になっていたことなので今回できてなんとなく満足です。ほな、さいなら!

投稿日:6時間前
数学の力で現場を変える アルゴリズムエンジニア募集 - Mathlog served by OptHub

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。

投稿者

いつの間にか高校生になった翁です。 書きたくなったことを適当に書いていきます。 注意:ミス多いです。見つけたら指摘のコメントをしていただけると助かります。自分でも努力してます_(_×-×)_

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中