ネイピアと自然対数

2015/10/11

    

 以前から、自然対数 e=約2.718 が出てきた歴史的な経緯・背景に興味があった。

 そんな中、「数学という学問 I 〜 概念を探る」(志賀 浩二 著、筑摩書房 2011年)を読んでいたら、「第2部 概念の誕生と数学の流れ」 「第6章 対数と小数」のところに手がかりになる解説があった。対数表を作り出したネイピアの考えたことを、現在の数学を適宜 用いて解説している。

 とはいえ、残念ながら素人の私にはその解説がすんなりとは頭に入ってこない。そこで、自分なりに咀嚼を試みた。以下は、そのメモ書き。

    

 まず、ネイピア(1550〜1617、スコットランド・エディンバラ生まれ)は、天文学にかかわる掛け算を簡単に行えるようにすることを考えたらしい。掛け算は難しいが、それに比べて足し算は簡単だ。掛け算を足し算に置き換えることができれば、計算が飛躍的に楽になる。

 たとえば、常用対数を用いると、掛け算を足し算に置き換えられる。

 10を2乗すれば100、10を3乗すれば1000、2+3=5だが、10を5乗すると 100000 となる。これは100×1000 つまり 10の2乗×10の3乗=10の5乗である。

 常用対数の表があれば、100×1000を計算するのに、まず 100の対数を調べ(結果は2)、それから 1000の対数を見る(結果は3)。そして、2+3=5を計算して、対数の値が5になるものを探る。結果、100000を得る。

 ネイピアが生きた16世紀から17世紀は、既に大航海時代に入っている。地球規模で航海する船乗りにとって、天文学に基づく船の正確な位置の測定は死活問題だった。大きな数の掛け算などをなるべく簡単に計算することは、とても重要なことだったに違いない。

    

 さて、ネイピアがどのように考えたかである。常用対数ではなく自然対数に即した計算を考えたらしい。というよりも、滑らかでバランスの取れた点の運動で対数を考えたら、結果的に自然対数に立脚したものになっていたということだろう。

 直線上を移動する二つの点PとQがあるとき、その対応関係を考える。

 とてつもない速度だが、秒速10の7乗メートル(1千万メートル)でスタートする点Pがあるとする。この点Pは、滑らかに徐々に速度を落としながら最終的には1千万メートルを走破する。最後は速度0になる。

 途中の速度は、残りの距離に等しい。つまり、ちょうど半分の500万メートルの位置では秒速500万メートル、残り100万メートルの位置では秒速100万メートル、残り1メートルのところでは秒速1メートルである。

 一方、秒速1千万メートルで等速度運動する点Qを考える。こちらは、1秒後の位置が1千万メートル、2秒後の位置は2千万メートルだ。

 この二つの点PとQの対応を見ると、実は対数の関係になっており、掛け算を足し算に変換する手がかりになる。

    

 二つの点を結びつけるのは、スタートからの経過時間だ。同じ経過時間の時に、それぞれの点がどの位置にいるかを調べる。

 しかし、点Qの方は簡単だが、点Pの方は難しい。微分・積分の概念がまだ明確に定式化されていない時代である。それどころか、数直線、関数といった概念も未だ明確な形になっていなかったという。

 ネイピアが、なぜこのような二つの点の関係を対数と考えたのか、私にはよく分からない。その時代までに蓄積された数学の知見があったのはもちろんだろうが、ネイピアの数学的センスが新しい概念を生み出したという面があったと思う。

    

 二つの点の関係について、私なりに咀嚼すると次のようになる。

 点Pについては、曲線的に滑らかに減速すると考えるのは難しいので、階段状に変化するものとして計算する。

 初速度が秒速1千万メートルで、最初の距離1メートルはその速度で進む。そして、1メートル進んだら秒速999万9999メートルに減速する。その速度で1メートル進んだら、また秒速1メートル分減速する。さいごの距離1メートルは、秒速1メートルで進む。このように階段状に考えれば、微分・積分を知らなくても経過時間の近似値を求めることができる。

 といっても、コンピュータを使わずにこれを手計算で求めるのは大変だ。ネイピアがこの近似値計算を採用したとは思えないが、とりあえずそこには目をつぶることにする。

    

 距離を速度で割ると時間が算出される。1メートルごとに経過時間を算出して、それらを足し合わせれば、点Pがすべての距離を走破するまでの経過時間が求められる。その計算式は下のとおり。

 1÷1千万 + 1÷999万9999 + 1÷999万9998 + …… + 1÷2 + 1÷1

 これは、無限に続く調和級数を1千万のところで中断させたものである。全部の距離を走破する時間をこの方法で計算すると、約16.695秒となる。この間に点Qが進む距離は、この秒数に秒速1千万メートルを掛ければよい。

 ここで述べた点Pに関する計算は、曲線的でなく階段状なので近似値である。曲線的に計算した場合よりも小さい秒数(経過時間)が算出されるはずだ。最初の1メートルを秒速1千万メートルで進むものとして計算したが、実際には瞬間ごとに徐々に減速するのだから、本当の秒数(経過時間)は僅かながら大きくなる。

    

 ちょっと横道にそれるが、近似値をもう少し精度のいいものにするため、平均速度を考えてみる。

 最初の1メートルに焦点を当てると、出だしの速度は秒速1千万メートル、最後の速度は秒速9999万9999メートルだ。この平均速度は、秒速9999万9999.5メートルとなる。この平均速度に基づいて計算すると、速度0になるまでの経過時間は 約16.082秒である。これも近似値であり、曲線的に計算した場合の値とは異なる。

 そもそも、曲線的に計算する場合は、最後の1メートルを走り通す経過時間の算出は困難だ。残りの距離は短くなるが、速度も同じだけゆっくりになる。速度が遅いということは、それだけ時間がかかってしまうことを意味する。かかる時間がどんどん増えていく。

    

 点Pと点Qの対応関係に話を進めよう。

 点Pの秒速をxとする。これは、残りの距離の値と一致する。一方、点Qが進んだ距離をyとしよう。

 時間が経過するにつれて、xは徐々にに小さくなる。それに対し、yの方は次第に大きくなる。また、xの小さくなる幅がどんどん小幅になっていくのに対し、yが大きくなる幅は常に均等だ。つまり、大小が逆の関係にあり、しかも、減り方と増え方の勢いも違う。

 大小が逆の関係というのを考えると、単純な変換ルールは引き算と割り算である。

    y = 1千万 - x  (引き算)
    y = 1千万 / x  (割り算)

 上のどちらの式も、xが小さくなるにつれてyが大きくなる。他にも三角関数のサインとコサインなど大小逆の関係のものがあるが、ここでは、とりあえず割り算の方に注目してみよう。

 単純な割り算(逆比例)では二つの点の関係を示すことができないのは明らかだ。たとえば、xが1になったとき、つまりスタート時点から焼く16秒経過した時に、yが1千万になるかというと、そうはならない。yは1億6千万になっている。大きく食い違う。

 ここで対数の関係が登場する。

    

 経過時間をtとすると、実は、xとtの関係は次の式になる。1千万(10の7乗)をten7と表記する。

    t = log(ten7 / x)

 tに1千万を掛けるとyになるので、xとyの関係は次のようになる。

    y = ten7 * log(ten7 / x)

 ここで log() は自然対数である。もちろん、ネイピアが今でいうところの自然対数を明確に意識していたわけではないだろう。当時の理論、経験則、直感、実証的計算等から、二つの点PとQの関係を洞察した。それが今でいうところの自然対数になっている、といったことだと思う。

 xが1千万のとき(つまりスタート時点)、log() の括弧内は1になる。log(1) は0なので、yは0だ。つじつまは合う。log(1)=0, e^0=1 の意味合いの一面を文章化するなら、「掛け算では1を掛けても変わらない。足し算では0を足しても変わらない」である。

 また、xが分母にくるので0にすることはできないが、1にした場合の値(残りの距離が僅か1メートルとなった時のスタートからの経過秒数)は、log(ten7) = 約16.118 である。点Pが走破するのにかかる秒数の近似値 16.082 とそれほど違わない。

    

 しかし、この log(ten7/x) という計算式は、xが分数の分母になっているので使いにくい点がある。

 対数の特徴は、下の関係が成り立つところにある。

    log(a) + log(b) = log(a*b)

 仮に a=20, b=30 の場合であれば次のようになる。

    log(20) + log(30) = log(600)

 ここで log(ten7/x) を振り返ってみよう。x1=20, x2=30 だとすると、次の式が成り立つだろうか。

    log(ten7 / 20) + log(ten7 / 30) = log(ten7 / 600)

 残念ながら上の式は成り立たない。右辺の括弧内が ten7/600 にならない。ten7^2/600 になってしまうからだ。

 なので、log(ten7/x) を関数 f(x) と置いた場合は次のように計算しなければならない。

    f(a) + f(b) = f(a * b / ten7)

 対数では割り算が引き算に置き換えられるので、上の式は次のように書くことができる。

    f(a) + f(b) = f(a * b) - f(1)

 上の f(1) は、log(ten7/1) のことである。これは定数なので、上の式のままでも足し算と掛け算の変換は行えるが、どうせなら引き算を交えない単純な変換の方がいい。

    

 運動する二つの点の対応関係によって対数を定義したわけだが、上の対数関数のままだと、掛け算と足し算がダイレクトに結びつかない。そこで、もう少し工夫が必要になる。ネイピアの思考の過程は分からないが、私なりの咀嚼を書くと下のようになる。

 今度は点Pの速度(すなわち残りの距離)であるxを算出する形を考えてみる。スタート当初の1メートルに着目すれば、点Pの速度の減速がほとんどないので、近似的にはyが1増える間にxが1だけ減る。それを示す最も単純な式は次のとおり。

    x = ten7 - y = ten7 * (1 - y/ten7)

 しかし、この式だと、xの減少率が徐々に加速するという条件を満たさない。そこで、下の式を考えてみる。

    x = ten7 * (1 - 1/ten7)^y

 上の式にある (1 - 1/ten7) は、1より僅かに小さい。なので、それを何度も掛け合わせると、徐々に小さくなる。しかも、小さくなる勢いが次第に加速していく。点PとQの関係を示していそうな感じがする。ネイピアは、「感じがする」といったことではなく、もっとちゃんとした根拠に基づいて発想したのだと思うが、ともあれ前掲書の「志賀2011」によれば、ネイピアは、上の式を基盤にしたらしい。

    

 この式を対数の形に変形する場合、どのようにしたらいいだろうか。「志賀2011」の解説をたどると次のようになる。

    x/ten7 = (1 - 1/ten7)^(ten7 * y/ten7)

 ここで a=x/ten7, b=y/ten7 と置くと、下のように表現できる。

    a = ((1 - 1/ten7)^ten7)^b

 上の (1 - 1/ten7)^ten7 は定数だが、この値を底とする対数 Nlog() を考えると、下の単純な式になる(Nlogはネイピア対数のつもり)。

    b = Nlog(a)

    

 では、底の値 (1 - 1/ten7)^ten7 は、どのような値になるのだろうか。

 実は、ten7を定数でなく変数と考えて、無限に大きくしていくと、次第に自然対数eの逆数 1/e に近づいていく。そして、ten7 つまり1千万は相当に大きな数なので、実質的に 1/e と考えてもよい。つまり、Nlog() は、1/eを底とする対数である。

 ちなみに、Nlog() は log() の底を逆数にしたものなので、Nlog(x) = -1*log(x) という関係にある。

    

 余談だが、1/e の大雑把な値を比較的簡単に算出する方法について書いてみたい。

 1/e がどんな値か分からないので、とりあえずzとする。すると、xとyの関係式は次のように書ける。

    x/ten7 = z^(y/ten7)

 y/ten7 は、点PとQが移動する経過時間(秒数)に相当するので、tと置くことにする。

    x/ten7 = z^t

 前述したように、経過時間tの近似値は調和級数を使って求められる。そこで、スタート時点でなく到達時点から逆算して、最後の500メートルを移動する経過時間を調べてみよう。

 0のところからではなく、残り1メートルのところから逆算することにする。また、多少でも精度を上げるため、1メートルを移動する速度を平均速度で計算する。つまり、計算式は下のようになる。

    t = 1/1.5 + 1/2.5 + 1/3.5 + …… + 1/499.5

 上の式で、tが整数に近いところに着目すると、次の四つの値がみつかる。

    

21メートル 3.008126908533948秒
57メートル 4.006574117624132秒
154メートル 5.000464385323196秒
419メートル 6.001381183277731秒

 全部の距離を走破するのに約16秒かかるので、残り419メートルの地点までくるのに10秒、残り154メートルの地点にくるには11秒、残り57メートルだと12秒、21メートルなら13秒かかることになる。

 このことを式で書くと下のとおり。

    21  = z^13
    57  = z^12
    154 = z^11
    419 = z^10

 ここでzを求めるには、154/419, 57/154, 21/57 を計算すればよい。それぞれ 0.3675, 0.3701, 0.3684 のような値が得られる。これらは、1/eの値に近い。

 1/eだとイメージしにくいので、逆数のeを算出すると、それぞれ 2.7208, 2.7018, 2.7143 となる。まずまず自然対数eに近い。

    

 ちなみに、残り1千万メートル(つまりスタート地点)の方からたどって調和級数の方式で経過時間の近似値を求めてみると、経過時間が1秒になるのは、残り367万8794メートルと367万8795メートルの間らしいことが分かる。

 この二つの数の平均値を採用すると、1千万÷367万8794.5=2.718281763となる。これは、今でいうところの自然対数eの値だ。もちろん近似値である。とはいえ、小数点以下6桁まで一致している。

    

 ネイピアが、扱いにくい分数の足し算を何度も繰り返さなければならない調和級数を用いたとは考えられないので、やはり x = ten7 * (1 - 1/ten7)^y の計算をやったのだと思う。

 仮に、この式でyが1千万の時の値を得るにしても、素直に1千万回の掛け算を繰り返す必要はない。今、zの2乗をbi、zの3乗をtriとした場合、bi*triがzの5乗になり、bi^2*triがzの7乗になる。一方、1千万=10^7は、(2*5)^7 である。これらのことを組み合わせると、大変ではあるがなんとかzの1千万乗を計算することができそうだ。

 とはいえ、手計算でやるのは気が遠くなるほどの大変さである。ネイピアは、対数表を作るのに20年かけたというから凄まじい。

    

 当時、膨大な天文観測から、かなり精密な三角関数の近似値が知られていたというから、何らかの形でその近似値を用いたのだと思うが、それにしても凄い。

 前掲書の「志賀2011」によると、ネイピアの対数が登場する以前から、下の三角関数の式を使って、掛け算を引き算に置き換える方法が行われていたという。

    2 * sin(a) * sin(b) = cos(a - b) - cos(a + b)

 この式を使うとなると、サインとコサインの両方の表を参照し、しかも、aとbの足し算と引き算を行って調整する必要がある。2で割る計算も避けられない。なかなか大変そうだ。「もっと簡単に」とネイピアは思考したのだろう。

    

 ネイピアの対数表では、まず、角度1分刻みの数に対する三角関数サインの値が示され、次に、そのサインの値に対応する対数が掲げられるという形になっているらしい。

 たとえば、角度が18度30分(「分」は60進数)のところでいうと、サインの値xと、対数の値yは下のようになる。

    x = sin(18度30分) * 1千万 = 約3173047
    y = Nlog(x / 1千万) * 1千万 = 約11478929

 角度、x、yの三つが対応するものとして列べて書かれている。

    

 天文に関する計算では三角関数の計算が重要ということで、こういう形式にしたのかもしれない。あるいは、対数の値を計算する上で、三角関数の数値が必要だったためこうした形にしたのだろうか。

 ただ、このようなネイピアの表を用いて普通の10進数の計算をするのはやりにくい。実用面からいうと、10を底とする常用対数の表が便利だ。

 ネイピアの業績に感嘆して、彼の元を訪れたグレシャムカレッジ天文学講師のブリッグス(1561〜1631、後にオックスフォード大学教授になる)は、対数表の改良についてネイピアと情報交換したらしい。そして、1〜1000までの常用対数表を作り上げる。しかし、その完成をみることなくネイピアは亡くなった。

 「志賀2011」によると、ブリッグスは、何の注釈もつけずに次のような数を列記しているとのことである。

    

1 0 0000,00000,00000
2 0 3010,29995,66398
3 0 4771,21254,71966
4 0 6020,59991,32796
5 0 6989,70004,33602
6 0 7781,51250,38364
7 0 8450,98040,01426
8 0 9030,89986,99194
9 0 9542,42509,43932
10 1 0000,00000,00000
…… …… ……
34 1 5314,78917,04226
35 1 5440,68044,35028
36 1 5563,02500,76729
37 1 5682,01724,06700
38 1 5797,83596,61681
39 1 5910,64607,02650
40 1 6020,59991,32796
41 1 6127,83856,71974
42 1 6232,49290,39790
43 1 6334,68455,57959
…… …… ……

 上は、自然数、整数部、小数部の三つの要素を列べたものである。整数部と小数部は、自然数に対応する常用対数を表す。小数部は、実に14桁に及ぶ。

 今の学校教育では、対数の前に指数を学ぶ。また、対数については常用対数を学んだ後に自然対数を学ぶという順番だろう。その方が理解しやすい。

 しかし、実際の数学の歴史では、指数が明確に提示される前に対数が思考され、しかも、常用対数より先に自然対数が考え出された。

 「概念」の生成が「分かりやすさ」の順に進展するわけではないという意味で、興味深い話である。

    

〜 「ネイピアと自然対数」 おわり 〜

Copyright (C) T. Yoshiizumi, 2015 All rights reserved.


「数学散歩の小道」のページへ

トップページへ