まだ黄金比:再帰性
★まだ続きをやってます。私は結構しつこいな。
この図の1式、これを解いて、(1+√5)/2という値を求めたのでした。
で、いちいち書くのが面倒ですので
(1+√5)/2=φ(ファイ)
と文字で置き換えておきます。
このφは①式の解なのですから、当然、xに代入すれば②式が成立しています。
★②式を変形して③式にします。
③式の右の下にあるφに、もう一回③式そのものを代入すると、④式が得られます。
ちょっと変な気分がするかもしれません。
φの式が、φを使って書かれています。
同義反復(トートロジー)じゃないの?
トートロジーは何も生み出しませんよ。
いえいえ、こういう考え方を「再帰的」というのです。
自分で自分を使うんですね。
で、数学の「おそろしさ」というのはこの先です。
④式ができてしまえば、④式の右下にあるφにまた③式を代入できます。
以下同文。
卒業式で校長先生が「以下同文」なんて言っても、まぁ、大事件にはなりませんが。
数学で「以下同文」と言ってしまうと、大事件。
もう止まりません。止まるべき条件がないですから。
そうすると「無限」が登場してくるんですね。
「無限」は恐ろしい。
私のような凡人には扱いかねます。
で、眺めるだけ。
★同じように、
②式を変形して⑤式にします。
すると、⑤式の右辺のφにまた⑤式そのものを代入して⑥式ができますね。
以下同文。
また無限が出てきました。
★
もうちょっと、無限っぽく書くとこうなります。
上のほうは「連分数」という形式です。
高校までの数学ではあまりお目にかかりませんが、面白いものです。
下の方に「・・・」がありますね。これが曲者。
以下無限に続く、ということを表しています。
下の表記はほとんど見ないでしょう。
名前もあるのかないのか。
{「極」「私」的には「連分数」のまねをして「連根」と呼んでおりますが。これは全くどこの世界でも通用しませんからご注意ください。}
★さて、私が数式を書くときに使っている「カルキングJ」というソフトには、式を評価して値を計算してくれるという機能があります。
それを使ってみました。
ずら~っと連なった式を適当なところで打ち切って、「計算実行」をかけますと
ご覧のような数値が得られます。
φ=1.618033989・・・
ですので確かにφに近づいて行っていることが分かります。
再帰的な定義式で、「1」しか登場していないのに、続けていくとφに近づいて行く。
不思議な感覚にとらわれませんか?
妙な感じでしょうが、実際にφに近づいて行くのですからしょうがない。
こういうのって、数学的に美しいなぁ、すごいなぁ、不思議だなぁ、と感じ入るわけですね。
φの不思議さですね。
★そういうソフトがないと計算できないんですか?
いえいえ、エクセルでできますよ。
これです。
まずセルに1を書きこみます。
その下のセルに「=SQRT(1+(上のセル))」と計算式を書けばいいのです。
で、その式を下に連続コピーすればいい。
連分数の方は、1を書きこんだセルの下のセルに
「=1+1/(上のセル)」と計算式を書けばいいのです。
で、下へ向かってコピーしてください。
ただ、エクセルで扱えるのは倍精度実数までですので、それ以上の精度は出ません。
★プログラム
手元にフリーソフトの「十進BASIC」というのがあります。
標準的なBASICですが、1000桁モードというのを持っているのが面白い。
1000桁モードで、φを計算させると
1.
61803398874989484820458683436563811772030917980576
28621354486227052604628189024497072072041893911374
84754088075386891752126633862223536931793180060766
72635443338908659593958290563832266131992829026788
06752087668925017116962070322210432162695486262963
13614438149758701220340805887954454749246185695364
86444924104432077134494704956584678850987433944221
25448770664780915884607499887124007652170575179788
34166256249407589069704000281210427621771117778053
15317141011704666599146697987317613560067087480710
13179523689427521948435305678300228785699782977834
78458782289110976250030269615617002504643382437764
86102838312683303724292675263116533924731671112115
88186385133162038400522216579128667529465490681131
71599343235973494985090409476213222981017261070596
11645629909816290555208524790352406020172799747175
34277759277862561943208275051312181562855122248093
94712341451702237358057727861600868838295230459264
78780178899219902707769038953219681986151437803149
9741106926088674296226757560523172777520353613936
こうなります。
もちろん無理数なんですから、無限にとまらないのですが、1000桁までの値です。
--------------------------
LET n = 1
FOR i = 1 TO 30
LET m = Sqr(1 + n)
PRINT m
LET n = m
NEXT i
END
--------------------------
これが最もシンプルに書いた、十進BASICの(連根)プログラム。30回のループで打ち切っていますが、もっと回数を多く回すこともできます。
途中経過を書かせたり、φとの差を出力させたりもできますが、省略しました。
--------------------------
LET n = 1
FOR i = 1 TO 30
LET m =1 + 1/(n)
PRINT m
LET n = m
NEXT i
END
--------------------------
こちらが連分数プログラム。
これらを1000桁モードで実行すると、数字がずら~っと並んで、壮観です。
--------------------------
Option Explicit
Sub Phi()
Dim i As Integer
Dim n As Double
Dim m As Double
Const MAX = 30
n = 1
For i = 1 To MAX
m = Sqr(1 + n)
Cells(i, 1).Value = m
n = m
Next i
End Sub
--------------------------
これは、(連根)プログラムをエクセルのVBAで書いたもの。
実行するとセルに値がずらっと書き込まれます。
でも、倍精度実数までが限界です。
★昔は私、プログラムを書くのが好きで、CとかJavaとかBASICとかいろいろやったのですが、今はまるっきり言語処理系を持ってません。
Javaができる方は、多倍長計算ができますので挑戦して下さい。
★大阪大学のサイトで本格的な話を見つけました。
関心がおありでしたらどうぞ。
http://www.math.sci.osaka-u.ac.jp/~konno/kogi/goldsect.pdf
「黄金比と循環連分数」
「理科おじさん」カテゴリの記事
- 化学の日(2022.10.26)
- 秒速→時速(2022.09.01)
- 風速75メートル(2022.08.31)
- 「ウクライナで生まれた科学者たち」(2022.05.31)
- 反射光(2022.05.09)
コメント