« フランスでのテロ事件で | トップページ | ツマグロキンバエ »

2015年1月16日 (金)

√2 の話:その9:黄金数・白銀数・貴金属数の続き

http://yamada-kuebiko.cocolog-nifty.com/blog/2015/01/post-1fac.html
2015年1月13日 (火)「√2 の話:その8:黄金数・白銀数・貴金属数」
↑話はここまできてまして、だらだらと、その続き。

★さて、Φの場合
x^2 -x-1=0
これはもちろん知ってました。
xはゼロではないので両辺をxで割り、移項して
x=1+1/x
とします。
右辺のxのところに「1+1/x」を代入して
さらにまた「1+1/x」を代入して・・・
Goldennum
こうなっていくことは、以前に何かで読んだことがありますし、私のこのブログでも「黄金分割」の話をしたときに書いたはずです。
でも、これが貴金属数として一般化できることには気づいてなかった。
x^2-nx-1=0
これを同じように変形すれば

x=n+1/x

ですね。
すると
Metallicnum
こうなりますね。
ナルホドねぇ。

xを定義するのに、右辺でxを使っているものですから、その右辺のxにまた定義を書き込んで・・・と続いてしまうのですね。
これ「再帰的定義」というのでした。
下の十進BASICプログラムで、「MetallicNum(LVL, m)」という関数がその再帰的関数です。
黄金数や白銀数に対応できるように、この関数には「n」を与えます。
同時に、再帰の深さをどこまでやるかを「LVL」で与えます。
----------------------------------------
DECLARE EXTERNAL FUNCTION MetallicNum

!n=1; (1+Root(5))/2 = 1.6180339887498948482045868343656
!n=2; 1+Root(2) = 2.4142135623730950488016887242097
!n=3; (3+Root(13))/2 = 3.3027756377319946465596106337352

LET n = 1
FOR level = 0 TO 20
   PRINT level;" :";
   PRINT MetallicNum(level, n)
NEXT level
END

EXTERNAL FUNCTION MetallicNum(LVL, m)
IF LVL = 0 THEN
   LET MetallicNum = m
ELSE
   LET MetallicNum = m + 1/MetallicNum(LVL-1, m)
END IF 
END FUNCTION
----------------------------------------
n=1 で実行してみると
0  : 1
1  : 2
2  : 1.5
3  : 1.66666666666667
4  : 1.6
5  : 1.625
6  : 1.61538461538462
7  : 1.61904761904762
8  : 1.61764705882353
9  : 1.61818181818182
10  : 1.61797752808989
11  : 1.61805555555556
12  : 1.61802575107296
13  : 1.61803713527851
14  : 1.61803278688525
15  : 1.61803444782168
16  : 1.61803381340013
17  : 1.61803405572755
18  : 1.61803396316671
19  : 1.6180339985218
20  : 1.61803398501736
再帰のレベルが深まるにつれてよい値になっていくのがわかります。

n=2 では
0  : 2
1  : 2.5
2  : 2.4
3  : 2.41666666666667
4  : 2.41379310344828
5  : 2.41428571428571
6  : 2.41420118343195
7  : 2.41421568627451
8  : 2.41421319796954
9  : 2.41421362489487
10  : 2.41421355164605
11  : 2.41421356421356
12  : 2.41421356205732
13  : 2.41421356242727
14  : 2.4142135623638
15  : 2.41421356237469
16  : 2.41421356237282
17  : 2.41421356237314
18  : 2.41421356237309
19  : 2.4142135623731
20  : 2.41421356237309
ナルホド。1+√2にちゃんと近づいていますね。
一般的に、再帰的に、Metallic Numberを求める道具が出来上がりました。
あ~面白かった。
だからといって、何か生産的なことができるようになったわけではありませんけど。
頭の中に作った論理を、プログラムの形に書いて、コンピューターにやらせて、考えた通りにちゃんと動く、というのが最高の楽しみなのです。

« フランスでのテロ事件で | トップページ | ツマグロキンバエ »

理科おじさん」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« フランスでのテロ事件で | トップページ | ツマグロキンバエ »

2021年5月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
サイト内検索
ココログ最強検索 by 暴想
無料ブログはココログ