
√自然数の形の無理数を極限に持つ漸化式を紹介します。
とりわけ√2を求めるのに優秀なアルゴリズムで、
√3なども指数関数の速さで計算できます。
式自体は簡単で
プログラムを組みやすいので
コンピュータで無理数を
数値計算してみたい人の入門にお勧めです。
目次[開く]
漸化式
2以上の自然数aについて
定理
漸化式
an+1=1an+(a−1)ana
は√aを極限に持つ。
ただし初項a1は任意の正の実数。
(できるだけ√aの近くにとる)
√2を求める
試しに√2を求めてみます。
漸化式は
an+1=1an+(2−1)an2=1an+an2
です。
√2に近い値として
a1=1
を初項に定めます。
順次、漸化式より
a2=11+12=32(=1.5)
a3=23+34=1712(≒1.4167)
a4=1217+1724=288408+289408=577408(≒1.4142)
のよう計算され次第に√2が求まります。
√3を求める
√3も求めてみます。
漸化式は
an+1=1an+(3−1)an3=1an+2an3
で、√3に近い値として
a1=2
を初項に定めます。
順次、漸化式より
a2=12+43=116(≒1.8333)
a3=611+119=5499+12199=17599(≒1.7677)
a4=99175+350297=9065351975(≒1.7442)
a5=5197590653+181306155925≒0.5733+1.1628=1.7361
√3が求まります。
収束する理由
なぜこの漸化式で求まるかと言うと
複素力学系で説明されます。
漸化式のanをxで置き換えた関数
f(x)=1x+(a−1)xa
において±√aは吸引不動点と呼ばれる物です。
吸引不動点は、その名の通り
近くの点をすべて引き寄せる性質を持つので
初項a1を√aの十分近くにとれば、
漸化式を施すにつれ
√aへ収束して行きます。
どれくらい近くの点を引き寄せるかは
吸引不動点によっていて
この場合は任意の正の実数が√aへ引き寄せられます。
証明
興味のある人向けに
±√aがf(x)の吸引不動点である事を証明します。
不動点である
x=1x+(a−1)xa
の解を考える。
x=0は明らかに不適なのでx≠0とする。
両辺にxを掛けると
x2=1+(a−1)x2a
両辺に自然数aを掛けて整理すると
x2=a
よって
x=±√a
はf(x)の不動点である。
吸引的である
f′(x)=−1x2+a−1a
なのでf(x)の√aにおける微分係数は
f′(√a)=−1a+a−1a=a−2a=1−2a
aは2以上の自然数なので
|1−2a|<1
微分係数の絶対値が1より小さいので吸引的である。
収束の速さ
吸引不動点への収束の速さは
微分係数の絶対値
すなわち
|f′(√a)|=|1−2a|
の大きさで決まります。
a=2の時
|f′(√2)|=0
絶対値は0なので
とても速く収束します。
(絶対値0の吸引不動点は超吸引不動点と呼ばれます)
a=3の時
|f′(√3)|=13
絶対値は1/3です。
これは漸化式を一回施すごとに
真の値との距離が約1/3に縮まることを意味します。
底が1/3の指数関数の速さ程で√3が求まります。
aが大きい時
一般にこの漸化式をアルゴリズムに使えば
底が(1-2/a)の指数関数の速さ程で
√aを求めてくれます。
弱点は
lima→∞(1−2a)=1
なので、
aが大きくなるに連れ動作が重くなります。
今のコンピュータのスペックなら
少なくとも√10まで求まるので
入門には向いていると思います。
まとめ
元の数の逆数と定数倍の足し算
という簡単なステップで
√自然数へと収束する漸化式を紹介しました。
特に√2は超吸引不動点なため求めやすく、
√3以降の数値計算にも
弱点はあるものの使えます。
ルートを自分の手で計算してみたい人にお勧めです。