122.ネイピア数、再び
学生時代、物理の勉強のため、「ファインマン物理学」を読みかかったことがあるが、難しいというよりテーマが多種多様で、何を足掛かりにしてすべてを構築していくべきか良くわからず、途中で読むのをやめてしまった。「ランダウ・リフシッツ理論物理学教程」の記述スタイルの方がしっくりきた。
のちに、一通りの物理の基礎を勉強し終えてからファインマン物理学を読むと、極めて面白く読めてしまった。一回、物理をやってから読むべき本だなぁと思ったものだ。
その「ファインマン物理学」の力学編に、代数学の章があり、説明うまいなぁと感じ入ったので、著作権の問題もあろうかとも思うが、備忘しておきたい。
いや、すでに第 28 回「対数」の最初のところはファインマン物理から採っていた。
対数自身については第28回「対数」または第 83 回「対数表」を見てもらおう。
電卓で計算するのだが、まずは電卓が無いとして、平方根を求めてみよう。実に収束性の良い式がある。Xの平方根、√X を求めたいときには、2 乗したら X になりそうな適当な数 a1 をとって、
a2 = (a1 + X / a1 ) / 2
を計算する。この a2 を改めて a1 と思い、また上の式に代入する。具体的に書くと
a3 = (a2 + X / a2 ) / 2
で a3 を求める。この操作を繰り返すと、やがて X の平方根が得られる。要するに、適当な初項 a1 から初めて、数列
an+1 = (an + X / an ) / 2 ・・・(1)
計算して行けというわけだ。これがXの平方根になることは、an がある値 a に近づいたと思って、an = an+1 = a とすると(1)は
a = ( a + X / a ) / 2
なので、両辺 2a をかけて整理すると
X = a2
になるので、a は √X というわけだ。
X=2 としてやってみよう。2 乗して 2 になりそうなのは 1.5 より少し小さいと見積もれる。1.5×1.5 = 2.25 だから。a1 = 1.5 と置いてやってみよう。(1)式で
a2 = (1.5 + 2 / 1.5 ) / 2 = 1.416666・・・
a3 = (1.416667 + 2 / 1.416667 ) / 2 = 1.4142156・・・
a4 = (1.414216 + 2 / 1.414216 ) / 2 = 1.41421356・・・
もうすでに、たった 3 回で「人世(ひとよ1.4)人世(1.4)に(2)人(1)見(3)ごろ(56)」と、知っている桁まで得られた。
平方根を手計算する方法を手に入れたので、10 から始めて、次々に平方根をとっていこう。平方根は 101/2 とかくので、次々に平方根をとるというには、
(101/2)1/2 = 101/4
((101/2)1/2 )1/2= 101/8
(((101/2)1/2 )1/2 )1/2= 101/16
・・・
を計算するということ。表にしておこう。
s 10s
-----------------------------------------------------
1 10
1/2 3.16227766・・・
1/4 1.77827941・・・
1/8 1.333531432・・・
1/16 1.154781985・・・
1/32 1.074607828・・・
1/64 1.036632928・・・
1/128 1.018151722・・・
1/256 1.009035045・・・
1/512 1.004507364・・・
1/1024 1.002251148・・・
1/2048 1.001124911・・・
1/4096 1.000562313・・・
1/8192 1.000281117・・・・
1/16384 1.000140549・・・
1/32768 1.000070272・・・
--------------------------------------------------------
ここまでする必要もないが、計算はできるというわけだ。最初の方はそうも見えないのだが、s が小さくなるにつれ、10s の小数点以下の部分は、一つ前の s のときの半分になっているように見える。例えば、s=1/512 の時には小数点以下は 0.004507364 だが、これを半分にして 1 を足すと、1.002253682 となり、s=1/1024 のときの 10s に近い。ほかのところも確かめられる。ということは、おそらく、10 p /32768 として、p=1、1/2、1/4・・・と次々計算して行かなくとも、おそらく
10 p /32768 ≒ 1 + 0.000070272 × p
と近似できそうだ。数値を少しいじると、上の式は
10 p /32768 = 1 + ( 2.3026… / 32768 ) × p
のようにも書ける。s = 32768 まで計算するのは実用的ではないので、10 p /1024 くらいまでにとどめておいて、上の式と同様に
10 p /1024 ≒ 1 + ( 2.3026… / 1024 ) × p ・・・(2)
という近似式を用意しておこう。p = 1/2で 、この近似式では
10 1 /2048 = 1 + ( 2.3026… / 1024 ) × ( 1/2 ) = 1.001124・・・
が得られ、・・・の前の桁までは正しい。p=1/4 では
10 1 /4096 = 1 + ( 2.3026… / 1024 ) × ( 1/4 ) = 1.000562・・・
まぁ、良しとしよう。
ここまで準備すると、底が 10 の対数がそこそこ計算できる。例えば、log10 2 を計算してみよう。表を見て、10s が初めて 2 より小さくなるところを見てみよう。s=1/4 の1.77827941 だ。2 をこの数で割っておく
2/1.77827941 = 1.12467336・・・
でてきた 1.12467336 より初めて小さくなる s は、表から 1/32、つまり 1.074607828 なので、またこの数で割っておく。
1.12467336 / 1.074607828 = 1.046589584・・・
今度は s = 1/64 だ。
1.046589584 / 1.036632928 = 1.009604804・・・
次は s=1/256。
1.009604804 / 1.009035045 = 1.000564657・・・
つぎは s=1/4096 だが、しんどいのでそろそろやめよう。最後に得られた 1.000564657は、近似式(2)を使うと
1.000564657 = 1 + ( 2.3026… / 1024 ) × p
->
p = 0.25111・・・
よって、
1.000564657 = 100.25111/1024
何をしてきたかというと、2を次々割り算していったので、逆に得られた割り算の結果、つまり商を掛け算していくと 2 に戻るというわけだ。
2 = 1.77827941×1.12467336
= 1.77827941×( 1.074607828×1.046589584)
= 1.77827941× 1.074607828×( 1.036632928×1.009604804)
= 1.77827941× 1.074607828× 1.036632928×1.009035045×1.000564657
さて、最後の行の各数字は、表から 10s と得られていたので、
2 = 1.77827941× 1.074607828× 1.036632928×1.009035045×1.000564657
= 101/4 ×101/32 × 101/64 × 101/256 × 100.2511/1024
= 10(1/4 + 1/32 + 1/64 + 1/256 + 0.2511/1024)
= 100.30102
が得られる。両辺、底が 10 の対数をとれば
log102 = 0.3010・・・
と、求まるというわけだ。
話を転回して、近似式(2)を見てみよう。再掲すると
10 p /1024 ≒ 1 + ( 2.3026… / 1024 ) × p ・・・(2)
ここで、p / 1024 = ε と書くことにすると、ε はごく小さい値を持っていて、上式の近似式は、両辺、底が 10 の対数をとることで
ε ≒ log10 ( 1 + 2.3026ε)
となっている。逆に、2.3026 ε を改めて ε と思うと(ε’ にした方が紛らわしくないかもしれないが)
ε / 2.3026 = log 10 (1 + ε) ・・・(3)
とも書いてよい。
いつも出てくる 2.3016 何某が鬱陶しいので、ある数 e を底にとって
ε= log e (1 + ε ) ・・・・(4)
と簡単になる e を探そう。対数の規則(第 28 回参照)から
loge ( 1 + ε) = log 10 ( 1 +ε) / log 10 e
が成り立つので、(3)と(4)から、上式は
ε= ( ε / 2.3026 ) / log 10 e
両辺 ε で割ると
log 10 e = 1 / 2.3026
だから、e が求まり
e = 101/2.3026 = 2.7182・・・
という数値が得られる。
近似をしたので数値的に正確ではなかったが、実は、この e は前回の「ネイピア数」そのものだ。