2014年11月11日火曜日

数の正体をあばく

3.14 という数字を見たら
「円周率」
とわかる.

1.414
という数ならは,我々世代にとって,
「一夜一夜に・・・,だから√2」
とわかる.

これらは暗記しているから見抜けると言える.

暗記していない
「0.9672131」

「4.8989794」
は,わかるまいw

もちろん,
0.9672131=9672131/100000000
4.8989794=48989794/100000000=24494897/50000000
ではあるが,気が利いていないw

こういう数の正体を簡単にあばくのに,古代(たぶん文明が発達する以前)から用いられているのが連分数である.
連分数(れんぶんすう、英: continued fraction)とは、分母に更に分数が含まれているような分数のことを指す。分子が全て 1 である場合には特に正則連分数(英: regular continued fraction)ということがある。単に連分数といった場合、正則連分数を指す場合が多い。>Wikipedia

連分数は,もともと最大公約数を突き止めるユークリッドの互除法であるともいえる.>以前の記事
1173 と 1311
1311 - 1173 = 138
1173 - 138 × 8 = 69
138 - 69 × 2 = 0
より,最大公約数 69.

これを分数
1173 / 1311の約分
と考える.

素因数分解しようとして,共通因数 3 はすぐわかる.
ところが,23を見つけるのは,かなり大変だが,ユークリッドの互除法で 69 を見つけるのはたやすい(3回の割り算の余りから見つかる).

ユークリッドの互除法は,
「真分数の逆数をとって,帯分数にする」
という手順と同値でもあり,これを全体としてみたとき,連分数となる.(帯分数とは2+(3/4) のような整数+真分数で,真分数とは 3/4 のような分子<分母である分数)

1173 / 1311 の逆数 1311 / 1173 = 1 + 138/1173
真分数 138/1173 の逆数 1173 / 138 = 8 + 69/138 = 8 + 1/2

最後に 69 で約分したが,それが最大公約数なので,69で元の分数が約分できるといえる.

この,「真分数の逆数をとって,帯分数にする」を一つの数式にしたものが,「連分数」なのである.

このワザはユークリッドの互除法と言われるが,もちろんユークリッドが発明したのではなく,古代からおこなわれていたワザをユークリッドが証明して書物にしたのが最初なのだろう.
こんなことは,古代の人にとっては常識的な計算方法で,円周率の近似分数(22/7 = 3.142857 や 355/113 = 3.1415929)などは連分数から求めたはずである.

1173 / 1311 を連分数にしてみる.
\(\frac{1173}{1311}=\frac{1}{\frac{1311}{1173}}=\frac{1}{1+\frac{138}{1173}}\\=\frac{1}{1+\frac{1}{\frac{1173}{138}}}=\frac{1}{1+\frac{1}{8+\frac{69}{138}}}=\frac{1}{1+\frac{1}{8+\frac{1}{2}}}\)
元の式を 69 で割ってもよいが,最後の式からもとに戻すと,
\(\frac{1}{1+\frac{1}{8+\frac{1}{2}}}=\frac{1}{1+\frac{1}{\frac{17}{2}}}=\frac{1}{1+\frac{2}{17}}=\frac{1}{\frac{19}{17}}=\frac{17}{19}\)
を得る.
これを[0; 1, 8, 2]と書く.


さて,
0.8947368
はどんな数だろう.もちろん有限小数だから,
8947368 / 10000000 =1118421 / 1250000
だけれども気が利いていないw

ここで連分数を用いる.(100円ショップの電卓での計算を想定)

0.8947368 の 逆数 1.1176471
小数部分の 0.1176471 の逆数 8.499997
小数部分の 0.499997 の逆数 2.000012
0.000012 は電卓が少数7桁で切り捨てた誤差なので,
\(0.8947368=\frac{1}{1.1176471}=\frac{1}{1+0.1176471}\\=\frac{1}{1+\frac{1}{8.499997}}=\frac{1}{1+\frac{1}{8+0.499997}}\\=\frac{1}{1+\frac{1}{8+\frac{1}{2.000012}}}\simeq \frac{1}{1+\frac{1}{8+\frac{1}{2}}}\)

ということで,0.8947368 は,これは先ほどの,17÷19 を電卓で計算した小数であった.

小数を分数に直すワザですぐ思いつく方法は2つ.
ひとつは,有限小数と考えて,気の利いていない
8947368 / 10000000 =1118421 / 1250000
とする方法.
もう一つは循環小数を分数に直す方法がある.
0.123123123・・・=123/999 = 41/333

しかし,17÷19 の循環節の長さは,18桁.
17/19 =0.894736842105263157 894736842105263157 894736842105263157・・・
0.8947368 が 18桁の循環の最初の8桁だったなどとは8ケタの電卓で見抜くのは不可能.
それを「小数部分の逆数を取る」という操作を3回行って連分数にするだけで元の分数が見抜けるというわけだ.
ちなみに,0.000012 を誤差と考えなければ,最終的に有限小数である気の利いていない 1118421 / 1250000 を得る.

「0.9672131」はどんな数か.
冒頭の小数である.
0.9672131 の 逆数 1.0338983
0.0338983 の 逆数 29.500004
0.500004 の 逆数 1.999984 はほぼ 2
と考えれば,
\(0.9672131=\frac{1}{1+0.0338983}\\=\frac{1}{1+\frac{1}{29+0.500004}}\\=\frac{1}{1+\frac{1}{29+\frac{1}{2}}}\)
[0; 1, 29, 2]

\(\frac{1}{1+\frac{1}{29+\frac{1}{2}}}=\frac{1}{1+\frac{1}{\frac{59}{2}}}=\frac{1}{1+\frac{2}{59}}=\frac{1}{\frac{61}{59}}=\frac{59}{61}\)
つまり,「0.9672131」は 59 ÷ 61 を電卓で計算した数です.
÷61 が割り切れないときの循環節の長さは60桁.0.9672131 が60桁の循環小数のスタートである.


「4.8989794」はどんな数か.
0.8989794 の 逆数 1.1123725
0.1123725 の 逆数 8.8989743
0.8989743 の 逆数 1.1123788
0.1123788 の 逆数 8.8984755
0.8984755 の 逆数 1.1129964
0.1129964 の 逆数 8.8498394

あれれ,整数部は,1 と 8 が繰り返している.
[4; 1, 8, 1, 8, ...]
これを循環連分数という.平方根(とその加減乗除)は循環連分数となることが知られている.
つまり,これはある数の平方根を含む可能性がある.

たとえば,
1+√2 = 2+1/(2+1/(2+1/(2+...
[2; 2, 2, 2, ...]
であるので、
√2 = 1+1/(2+1/(2+1/(2+...
[1; 2, 2, 2, ...]
である.

もっとも単純な循環連分数
1+1/(1+1/(1+1/(1+1/(1+...
[1; 1, 1, 1, ...]
は黄金比 (-1+√5)/2 となるのは,偶然ではあるまい.


\(4.8989794=4+0.8989794=4+\frac{1}{1+0.1123725}\\=4+\frac{1}{1+\frac{1}{8+0.8989743}}\\=4+\frac{1}{1+\frac{1}{8+\frac{1}{1+0.1123788}}}\\=4+\frac{1}{1+\frac{1}{8+\frac{1}{1+\frac{1}{1+\frac{1}{8+\frac{1}{1+\cdots}}}}}}\)

であるから,p=4.8989794 とすれば,p+4=8.8989794 は
\(8.8989794=8+\frac{1}{1+\frac{1}{8+\frac{1}{1+\frac{1}{1+\frac{1}{8+\frac{1}{1+\cdots}}}}}}\)

8.8989794 = x とすれば,
\(x=8+\frac{1}{1+\frac{1}{x}}\)
である.
\(x=8+\frac{1}{1+\frac{1}{x}}=8+\frac{1}{\frac{x+1}{x}}=8+\frac{x}{x+1}=\frac{8x+8+x}{x+1}\\=\frac{9x+8}{x+1}\)
分母を払って,
\(x(x+1)=9x+8\)
\(x^2-8x-8=0\)
これを解いて,
\(x=4\pm2\sqrt{6}\)

\(x=4\pm2\sqrt{6}\)

で,xはプラスだから, x=4+2√6

p+4=8.8989794 = 4+2√6
より,
4.8989794 =2√6

つまり,4.8989794 は電卓で√6 を計算して2倍した数とわかる.

このように,連分数「小数の正体をあばく」のに,便利な手法といえる.





さらに,無理数の非常に良い分数の近似値を与えるのも連分数である.
円周率 3.1415926
電卓で計算すると,次の通り.
\(3.1415926=3+\frac{1}{7+0.0625159}\\=3+\frac{1}{7+\frac{1}{15+0.99593}}\\=3+\frac{1}{7+\frac{1}{15+\frac{1}{1+0.0040866}}}\\=3+\frac{1}{7+\frac{1}{15+\frac{1}{1+\frac{1}{244.7021974}}}}\)
1/244 は小さい数だから,誤差と考えると,
\(3.1415926=3+\frac{1}{7+\frac{1}{15+\frac{1}{1+0}}}\\=3+\frac{1}{7+\frac{1}{16}}=3+\frac{1}{\frac{113}{16}}=3+\frac{16}{113}=\frac{355}{113}\)

1/15 以下が誤差と思えば,
3+1/7 = 22/7 =3.142857
実際の,円周率の連分数展開は
3, 7, 15, 1, 292, ・・・
つまり
3+1/(7+1/(15+1/(1+1/(292+・・・
[3; 7, 1, 15, 1, 292, ...]
やはり 244 は切り捨て誤差が大きかった.292 のようである.

円周率の連分数に規則性はないようだが,自然対数の底(ネイピア数)2.718281828459 という無理数の連分数は,もちろん循環はしないけれど、規則性はありそう.
2+1/(1+1/(2+1/(1+1/(1+1/(4+1/(1+1/(1+1/(6+1/(1+1/(1+1/(8+1/(1+1/(10+...
[2; 1, 2, 1, 1, 4, 1, 1, 6, 1, 1, 8, 1, 1, 10, ...]


練習問題 スーパーカブのギア比を簡単な整数比で表わせ.
(1) 1次減速比 4.058

(2) 2次減速比 2.428

(3) 変速比 1速 2.615

(4) 変速比 2速 1.555

(5) 変速比 3速 1.136

(6) 変速比 4速 0.916


こんな記事を書いたのは,スーパーカブのギア比を連分数で簡単な整数比にしてみたからであるw
4.058 = 4058/1000 = 2029/500
だが,スーパーカブのような小さなギアボックスでギアの歯数が2029 などはありえない.
もっと小さな整数比であるはずで,それを連分数を使うとたちどころに見抜けるというわけだ.

0 件のコメント:

コメントを投稿

スパム対策のため,コメントは,承認するまで表示されません。
「コメントの記入者:」は「匿名」ではなく,「名前/URL」を選んで,なにかニックネームを入れてください.URL は空欄で構いません.