4

平方根の近似値を求める方法をたくさん紹介して、最速を決める。

167
2

平方根の近似値を求める方法をたくさん紹介して、最速を決める。

選手紹介

5を例にそれぞれ見ていきましょう。

操作の難易度を大まかに学年で表しています。

1.暗記する(小学生~)

語呂合わせで覚えてしまいしょう。
概念すら知らなくても暗記はできるので小学生でも可。
小数点以下数桁までなら最速です。
例)富士山麓オウム鳴く 5=2.2360679...

2.二分探索ごり押し(中学生~)

二乗して比較を繰り返し、範囲を半分に半分にしていきます。
10回やれば3桁求まる?
例)2<5<3
2+32=52>5より、2<5<52
同じ操作を繰り返す

3.開平法(中学生~)

みなさん聞いたことはあると思います。
計算すればするほど面倒になっていきます。
説明は長くなるので割愛します。

4.アナログに作図する(中学生~)

正確に90度が測れたり、長さを測る術があるのならばできないことはありません。
例)辺の長さが1,2,5の直角三角形を作図します。
メモリの最小単位の110まで見るのは理科の基本です。
5は大体2.21という結果を得ました。
mathlog内でアナログな画像はなかなか見ない mathlog内でアナログな画像はなかなか見ない

5.連分数表示(中学生~)

小数部分を求めるような形にして、分子の有理化を行うとできます。
例)52=12+5よって5=2+12+5
この式の右辺の5にまた式を代入すると
5=2+14+14+...となる。
途中で打ち切り2+14+14を計算すると
3817=2.2352941...

6.ニュートン法(高校生~)

f(x)=0の解が平方根となるグラフを描き
適当にx0(正の数で始めると、正の平方根が求まる)を決め、x=x0のグラフの接線とx軸との交点を次のx1とする、を繰り返していくと、xnは平方根に近づいていく。
Dを求めたいときf(x)=x2D
ニュートン法の定義はxn+1=xnf(xn)f(xn)なので、
xn+1=12(xn+Dxn)←これを繰り返す
例)D=5で√5を求める
x0=2とすると、x1=12(2+52)=94
x2=12(94+594)=16172=2.236111...
xnとおかずに既約分数anbnとおくとan+1bn+1=an2+Dbn22anbnとなる。

7.ペル方程式(高校生~)

整数x,yに対するx2Dy2=1なる不定方程式をペル方程式と呼びます。
式変形するとxy=D+1y2となり、整数解x,yを求めることによりDの近似値を求めることができます。
ペル方程式には面白い性質があり
x,yが自然数のうち最小の解を(x0,y0)とすると、
それより大きいx,yのすべての整数解はx+Dy=(x0+Dy0)nn=2,3,4,...を入れたものである。
例)D=5として求める。
x25y2=1を満たす最小の解(x0,y0)=(9,4)である。
(9+45)2=161+725より、(161,72)もまた、ペル方程式を満たす。
xy=16272=2.236111...
このままxn+1+dyn+1=(xn+dyn)2を行って計算を続ける場合、
xn+1yn+1=xn2+Dyn22xnynであり、ニュートン法の時と一致する。
平方根を求めるうえでは、同じものだと考えることができる。

8.マクローリン展開(高校生~)

f(x)=1+xを展開して求める。
5なら21+14に、7なら3129|x|<1となるように調整します。
展開すると、
1+x=1+x2x28+x316...
展開の時点で少しめんどくさいです。
...の部分の項から綺麗ではないので、代入しやすいのはここまでです。
例)5=21+14を求める。
x=14として、三次の項まで計算すると
2(1+181128+11024)=2.236328...

9.おまけ(フィボナッチ数列を用いて5のみ)

フィボナッチ数列の並んだ二項間比Fn+1Fnnが大きくなるにつれて
黄金数φ=1+52に近づいていく。
例)フィボナッチ数列を書き出す1,1,2,3,5,8,13,21,34,55,89,...
8955×21=2.23636...

最速は?

いろいろ自分の手で試した結果、
簡単な操作で値がすごい勢いで増えるニュートン法(ペル方程式)がよかったです。
ですが、これで終わりではありません

わざわざ下から積み重ねていくのは面倒だよね?
どうせなら一発で精度の高い近似を得たいよね?

さらにその先へ(改造)

ペルの方程式の最小解(x0,y0)は求まっているものとします。
a1=x0 b1=y0 an+1=an2+Dbn2 bn+1=2anbn
を解いていきます。
おぞましい漸化式ですが、ニュートン法やらの計算から
an+1+Dbn+1=(an+Dbn)2
an+1Dbn+1=(anDbn)2
から
an+Dbn=(x0+y0D)2n1anDbn=(x0y0D)2n1が得られ、公式を得る。

ペル方程式でn2乗した場合のan,bn

an=12((x0+y0D)2n1+(x0y0D)2n1)
bn=12D((x0+y0D)2n1(x0y0D)2n1)

...失敗しました。
こんなのに代入するぐらいなら、さっきの漸化式を使って進めていったほうがはるかに楽です。申し訳ございませんでした。

実践!!!!

5(nn)

ペル方程式ニュートン法と漸化式の合わせ技で解く。
初期値を2=21とすると、
a1=2b1=1となり、
an+1=an2+5bn2 bn+1=2anbnを用いると、

na_nb_n
121
294
316172
45184123184
553749785612403763488
65778078906241926144125840354427429161536

疲れたのでここまで、
anbnで近似できることは覚えていますか?
5778078906241926144125840354427429161536
=2.236067977499789696409173668731276235440953...
5
=2.236067977499789696409173668731276235440618...
39点といったところでしょうか?
ちなみにn=2,3,4,5の場合の点数は
それぞれ1,3,9,19点でした。
もう2回ぐらい頑張れば100点超えそうですね。

最後に

ここまで読んでくださりありがとうございました。
他にも近似の方法があったら教えてください。
精度が悪くても、特定の場合(9.おまけのフィボナッチ数列を用いた方法のような)のものでも大歓迎です!

投稿日:22日前
更新日:21日前
OptHub AI Competition

この記事を高評価した人

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

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

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

Spark
Spark
13
600
浪人生/数学バトルがあるとしたら県大会予選落ちレベル

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. 平方根の近似値を求める方法をたくさん紹介して、最速を決める。
  2. 選手紹介
  3. 最速は?
  4. さらにその先へ(改造)
  5. 実践!!!!
  6. 最後に