機械学習
数学
歴史

ジョン・ネイピアが20年かけた対数表について

はじめに

機械学習で対数logが出てくることがあり、別ブログで「対数logを理解してみる - デジタル・デザイン・ラボラトリーな日々」を書いているのですが、対数の発明者であるジョン・ネイピアが魅力な人で興味をもった次第です。ちなみに、私たちが使っている小数点(.)を使う表記はネイピアの発明です。小数点はネイピアが対数を生み出す過程で考え出した副産物だったのです。

現在の私達は対数関数と指数関数は互いに逆関数の関係にあると教わりますが、米国の数学史家フロリアン カジョリ(1859-1930)は「ネイピアが指数を用いる以前に対数を構成したことは、じつに科学史上の一大驚異である。」と絶賛している。

対数の発明者であるネイピアが20年もかけた対数表は、今の常用対数表と底10と違い不思議な底0.9999999を使用していました。

ジョン・ネイピアが1614年に発表したラテン語の論文『Mirifici Logarithmorum Canonis Descriptio 』(素晴らしい対数表の使い方)は人々に全く理解されませんでした。指数も小数点もないことに加えて、不思議な底のせいです。しかしたった一人、天文学者ブリッグス(1561-1630)がその本質を見抜き、ネイピアと議論し底を10にした常用対数表を産み出しました。第5回 ジョン・ネイピア対数誕生物語

ネイピアの対数「0.9999999」の謎解き
さらに、オイラーはeを別なストーリーの中に発見しました。それがネイピアの対数です。ネイピアの対数は20年かけて1614年に発表された対数表は理解されることもなく普及することもありませんでした。

ずっと忘れ去られていたネイピアの対数ですが、ついに復活する日がやってきます。1614年の130年後、オイラーの手によってネイピアの対数の正体が明らかになったのです。
第7回 ネイピア数e誕生物語 - 人と星とともにある数学

上記サイトでネイピアの対数「0.9999999」の説明があるのですが、私には理解が乏しくネット上で他に資料を探していて次の資料を見つけました。

対数の研究開始

大航海時代の航海術にはサインやコサインの三角法が必須で、三角法も有効数字が10桁以上もある精密なものが作られていましたが、その計算、特にかけ算と割り算が困難を極めたのです。1590年に、ネイピアの友人がある事情でデンマークに行き、ティコ・ブラーエの天文台を見ました。そこで三角法の式を利用して積を和に直す方法(積和の公式)が使われていることを知りネイピアに伝えたところ、彼はこの話に刺激されて対数の研究を始めたそうです。

sinの積和の公式

当時すでにかなり精密な三角関数表ができており、その数値と、$\sin$ の積和公式を用いる方法であった。
$\displaystyle \sin \alpha \sin \beta = -\dfrac{1}{2}\lbrace\sin(\alpha + \beta)+\sin(\alpha - \beta) \rbrace$

例えば、$6293 \times 3256$ を求める場合

三角関数表から $0.6293 = sin 39^{ \circ }、0.3256 = sin 19^{ \circ }$ を取得する。

$\displaystyle \sin 39^{ \circ } \sin 19^{ \circ } = -\dfrac{1}{2}\lbrace\sin(39^{ \circ } + 19^{ \circ })+\sin(39^{ \circ } − 19^{ \circ })\rbrace$

$\displaystyle = -\dfrac{1}{2}\lbrace\sin(58^{ \circ })+\sin(20^{ \circ })\rbrace$
$\displaystyle = -\dfrac{1}{2}\lbrace0.5299 − 0.9397\rbrace$
$\displaystyle = -\dfrac{1}{2}\lbrace−0.4098\rbrace = 0.2049$

これに小数点を補正すると $20490000$ となる。実際に計算すると $6293 \times 3256 = 20490008$ であり有効数字の分だけ正確な計算ができる。

ネイピアが考えた対数

対数の概念

かけ算を足し算に変えることに対する需要が大きいと感じたネイピアは、もっと直接的な方法で、積を和に変えることができると考え、その工夫を始めた。

その発想のひな形は、1544 年のドイツの数学者ミハエル・シュティーフェル (1487-1567)が著書「算術大系(Arithetica integra 1544)」の中に見られる。

等比数列.png

シュティーフェルは上のような等比数列と等差数列の対応を考え、上の段で $4 \times 16 = 64$ になるのに対応して下の段では $2 + 4 = 6$ になることに注意を与えている。たしかに、$2^{n}$ の数表を持っていれば、かけ算が足し算で処理されることになる。

※シュティーフェルは対数について研究を進めることはなかったので、対数の発見者はネイピアであるとされるようになりました。

対数の誕生

$2^{n}$ の整数指数の表だけでは、あまりにも値がとびとびで実用の計算には適さない。そのため、あらゆる数のかけ算ができるようにネイピアは考えをめぐらせた。

それには「分数の指数を使うか」、「底として十分小さな数を選び累乗がゆっくり増えていくようにするか」の 2通りの方法がある。分数の指数はネイピアの時代には知られていなかった(現在の$2^{3}$という表記が考案されるまでには、ネイピアから100年以上もかかることになります)ため、後者の方法を選ぶしかなかった。

※補足
例えば1.5を底に選ぶと表は次のようになり、数の飛び方が底2のときよりも小さくなる。底を1に近く取れば取るほど、値の飛びは小さくなる。対数と弧度法の歴史について少し調べる - 再帰の反復

n $1.5^n$ $2^n$
1 1.50 2
2 2.25 4
3 3.37 8
4 5.06 16
5 7.59 32
6 11.39 64
7 17.09 128
8 25.63 256

しかし、どのくらい小さな底にしたらよいか?底が小さすぎると累乗の増え方が遅すぎてまたも実用的でないものができてしまう。何年もの間この問題と取り組んだ後、公比が 1 よりも小さくかなり 1 に近い値にとって、刻みが小さい等比数列を使い、その等比数列に等差数列を対応させることであった。その目的のためには、初項に十分大きな数を持ってきて、公比を 1 よりわずかに小さくあまりに 1 に近い数のため、かけても数値の変化が 1 以内であるものを考えた。

具体的には、半径が $10^{7}$ の円を考え、初項を $10^{7}$ とし、公比 $r$ を $\displaystyle r = \left(1 - \frac{1}{10000000}\right) = \left(1- \frac{1}{10^{7}} \right)$ とし、初項を第 0 項とした等比数列 $a_{n}$ を考え、1分刻みの角度 $\theta$ に対して、$10^{7} \sin \theta$ が、その等比数列の何項目にあたるかを計算した表(底 $0.9999999$)を作って、かけ算をほぼ足し算のみで計算できるようにした。

また、当時は天文学や航海術に伴う数の計算が主なものであったため、大きな数のかけ算が必要になるのは、三角関数の計算をともなって起こった。したがって、直接整数値に対しての対数表がつくられるのではなく、半径が $10^{7}$ の円を考え 1度を60等分した1分刻みの三角関数の値を $10^{7}$倍した値に対して自由に計算できることを目的に20年かけて対数表をつくったのです。

現代の人が $10^{7}$ って何だろうと思うのですが、一貫した形での小数表現がまだなかった時代で、三角法の表などは、円の半径を1ではなく例えば $10^{7}$ としてそれに対する弦の長さを表示していました(半径を $10^{7}$ に取った場合、表を7桁の精度で書ける)。
1619年にストラスブールで出版された三角関数表 8桁

対数(logarithm)の名前の由来は、logos (比、神の言葉)とギリシャ語のarithmos (数) を合わせて logarithms(ロガリズム) という造語でネイピアが考案しました。

※補足
スイスの時計職人ヨスト・ビュルギがネイピアより早く対数の概念に到達していたが発表が1620年であった。(対数の発見者はより早く対数について発表(1614年)したジョン・ネイピアの業績とされる)

ビュルギの対数 $\displaystyle 10^8 \left(1 + \frac{1}{10^4}\right)^x$

計算方法

かけ算を計算したい二つの数を $M$ と $N$ とする。$M ≈ 10^7 \sin \alpha$ と $N ≈ 10^7 \sin \beta $ とする。
このとき、さらに、$M ≈ 10^7 \sin \alpha ≈ a_m$ と $10^7 \sin \beta ≈ a_n$ とすると、$a_m = 10^7r^m$、$a_n = 10^7r^n$ となる。
$a_m \times a_n = 10^7r^m \times 10^7r^n = 10^710^7r^{m+n} = 10^7a_{m+n}$ となるので、$a_{m+n}$ の所の表を逆に見て、$10^7$ 倍すれば $M$ と $N$ のかけ算の値がわかることになる。

実際に、$a_n$ の計算方法を見てみよう。

\begin{align}
a_0 &= 10000000\\
a_1 &= 10000000\left(1 − \frac{1}{10^7}\right)\\
a_2 &= 10000000\left(1 − \frac{1}{10^7}\right)^2\\
a_3 &= 10000000\left(1 − \frac{1}{10^7}\right)^3\\
\cdots\\
となるが、\\
a_1 &= a_0\left(1 − \frac{1}{10^7}\right)\\
&= a_0 − a_0 \times \frac{1}{10^7}\\
&= 10000000 − 1 = 9999999\\
a_2 &= a_1\left(1 − \frac{1}{10^7}\right)\\
&= a_1 − a_1 \times \frac{1}{10^7}\\
&= 9999999 − 0.9999999 = 9999998.0000001\\
a_3 &= a_2\left(1 − \frac{1}{10^7}\right)\\
&= a_2 − a_2 \times \frac{1}{10^7}\\
&= 9999998.0000001 − 0.99999980000001\\
&= 9999997.00000029999999\\
a_4 &= a_3\left(1 − \frac{1}{10^7}\right)\\
&= a_3 − a_3 \times \frac{1}{10^7}\\
&= 9999997.00000029999999−0.999999700000029999999\\ 
&= 9999996.000000599999960000001
\end{align}

というように、前の項から前の項の小数点を7つずらした項を引き算することによって得られる。
したがって、小数点以下8桁以降は整数部にほとんど影響を与えないので8桁目を四捨五入して8桁目以降を無視すると、

\begin{align}
a_0 \qquad 10000000 &.\\ 
1&.\\
a_1 \qquad 9999999 &.\\ 
0&.9999999\\ 
a_2 \qquad 9999998 &. 0000001\\
0&.9999998\\
a_3 \qquad 9999997 &. 0000003\\
0&.9999997\\
a_4 \qquad 9999996 &. 0000006\\
0&.9999996\\
a_5 \qquad 9999995 &. 0000010\\
0&.9999995\\
\cdots\\
\cdots\\
\cdots\\
a_{96} \qquad 9999904 &. 0004560\\
0&.9999904\\
a_{97} \qquad 9999903 &. 0004656\\
0&.9999903\\
a_{98} \qquad 9999902 &. 0004753\\
0&.9999902\\
a_{99} \qquad 9999901 &. 0004851\\
0&.9999901\\
a_{100} \qquad 9999900 &. 0004950
\end{align}

などとなり、桁数の移動と引き算だけでいくらでも好きなだけ、$a_n = ar^n$ を計算することができる。原理的にはこれで得られた数表を用いて、かけ算やわり算、2乗、3乗の計算をすることができる。

※補足
ネイピアの時点では小数表現がないので、大きな定数をかけて補正する。
ネイピアは、$x=10^{7}\left(1-\frac{1}{10^{7}}\right)^y$とした。
1未満の数の巾乗に$10^7$をかけているので、xは7桁以下の値になる。また底が$(1-10^7)$なので、表を作ったときにxの7桁目の値が飛び飛びにならない。
対数と弧度法の歴史について少し調べる - 再帰の反復

y x
1 9999999
2 9999998
3 9999997
$\cdots$ $\cdots$
1000000 9048374
1000001 9048373
$\cdots$ $\cdots$

ネイピアの対数表

下図は、1614年のネイピアの対数表の89度のページで1分刻み(60進法)の角度(sin)
ネイピア対数表89.png
Logarithms: The Early History of a Familiar Function - John Napier Introduces Logarithms
角度は時分秒で表され、分秒は60進法となっている。例 $89.5^\circ$は、$89^\circ30^\prime$と表現

$p^n$ $n=\log_{nap}(p^n)$ 分(60進法) 実角度($\theta$)
10000000.0000000 0 60 $90^\circ00^\prime$
9999999.0000000 1 59 $89^\circ59^\prime$
9999998.0000001 2 58 $89^\circ58^\prime$
9999997.0000003 3
9999996.0000006 4 57 $89^\circ57^\prime$
9999995.0000010 5
9999994.0000015 6
9999993.0000021 7 56 $89^\circ56^\prime$

ネイピアの対数疑似体験版

ネイピアの対数を、桁数を小さくして擬似的に体験することによって、ネイピアの対数の性格をだいたいつかむことができると思われる。
当時は、天文計算の必要性に答えるために三角関数の値の計算を問題にしたが、いまは $\sin$ を取り除いて、$10^7$ も大きすぎて表を作るのが大変なので、$100$ とすることにする。

71 x 53 を計算する

別表1をみると $71.055323$ の対数は $34$、$53.090554$ の対数は $63$ なので $34 + 63 = 97$ を計算する。
対数が $97$ であるところを、別表1で確かめると、$37.723665$ となっている。

別表1を抜粋
$100\left(1 − \frac{1}{100}\right)^{34} = 71.055323$
$100\left(1 − \frac{1}{100}\right)^{63} = 53.090554$
$100\left(1 − \frac{1}{100}\right)^{97} = 37.723665$

の結果は、$ar^{34+63} = ar^{97}$ の値であるが、実際に必要なのは $ar^{34} \times ar^{63} = a^2r^{97} = ar_{97}$ なので、得られた値を $a$ 倍、すなわち $100$ 倍して $3772$ となる。

この数値がほぼ $71.055323 \times 53.090554$ の結果に等しい。
$71 \times 53$ の結果はこの値に近いと考えることができる。

実際、$71.055323 \times 53.090554 = 3772.366462718942$、$71 \times 53 = 3763$ なので、この場合、ほぼ2桁の精度で信頼することができる。

もう少し正確にする

この計算をもう少し正確にするために、ネイピアは近似の考え方を使った。
71の対数.png

図1 のように、比例の考え方(線形補間法)を使って、$71$ の対数の近似値 $34.077859$ を得た。
同様に計算した 2桁の整数の対数の表を、末尾の別表3に掲げておく。
すると、$53$ の対数は、$63.170566$、$71 \times 53$ に対応して、$34.077859 + 63.170566 = 97.248524$ を得る。

これは、$97$ と $98$ の間の数なので、図2 のように比例計算し、$37.62995$ を得る。

71x53の対数.png

これを、$100$ 倍して、$71 \times 53$ の対数を用いた計算結果、$3762.995$ を得る。
この値は、$71 \times 53 = 3763$ とほぼ一致している。

ネイピアは、これらのことを7桁の精度で行い44歳から64歳の20年かけて約1000万もの計算をして対数表を作成したのです。

最後に

ネイピアの対数表では、対数演算の基本法則(例えば、積の対数は個々の対数の和に等しい)が成り立たない。また、ネイピアの対数表では数が大きくなるにつれて、ネイピアの対数は小さくなるが、現代的な対数表では大きくなる。

別表

市民の数学「対数」対数の誕生・成長・発展 pdf

ジョン・ネイピアの生涯

対数の発明者であるジョン・ネイピアをメインとした年表となります。

15世紀後半から16世紀にかけて新航路が発見されると、ヨーロッパは大航海時代と呼ばれる空前の交易ブームが起きました。安全に航海するためには正確に位置を認識する天体観測がかかせません。
また太陽や月、惑星の動きを説明しようと天文学者は複雑な計算に日々明け暮れていました。そんな方々に熱烈に歓迎されたのが対数だったのです。

出来事
1474年 - イタリアでトスカネッリが地球球体説を唱え、それに基づく世界地図を出版する。コロンブス(23歳)がトスカネリの世界球体説を知って西回りでアジアのインドに到達することを考えた。
1492年 - コロンブス(41歳)がアメリカ大陸に到達した。
1510年 - コペルニクスが地動説を初めて公(友人の数学者たち数人)にした。
1521年 - マゼラン一行が地球一周航海が成功した。
1543年 - コペルニクス(70歳)が亡くなる直前に地動説の完成版「天体の回転について」を出版。
1550年 0歳 スコットランドの首都エディンバラの南西に位置するマーキストン城でアーチボールド・ネイピア(Archibald Napier) と ジャネット・ボスウェル(Janet Bothwell) の間に生まれた。
1561年 11歳 後にネイピアと協業し常用対数表を作るヘンリー・ブリッグスがイングランドで生まれた。
1563年 13歳 ネイピアが聖アンドリューズ大学に入学した直後、母親のジャネットが亡くなった。この後、大学を中退したネイピアは、フランスをはじめ、諸外国を遍歴したらしいが詳しいことは分かっていない。
1569年 19歳 ゲラルドゥス・メルカトルが新しい世界地図を発明。
1571年 21歳 ネイピアは故郷に戻る。父のアーチボールドが再婚。
1572年 22歳 ネイピアがエリザベス・スターリング(Elizabeth Stirling)と結婚、2人の子供ができる。
1579年 29歳 エリザベスは亡くなり、アグネス・チザム(Agnes Chisolm)と再婚する。アグネスとの間には 10人の子供を得る。ネイピアは炭坑から水を外に出すための装置を発明。
1585年 35歳 ベルギーのシモン・ステヴィン(37歳)が『De Thiende』(十進法)を出版、十進数による小数の理論を提唱した。また、ステヴィンは他にも加算や減算を表す「+」や「-」のように様々な記号を導入。
1588年 38歳 スイスの時計職人ヨスト・ビュルギ(30歳)が対数を用いて計算を行った。(対数の発見者はより早く対数について発表したジョン・ネイピアの業績とされる)
1593年 43歳 『A Plaine Discovery of the Whole Revelation of St. John』(ヨハネの黙示録の真相)を出版し、カトリック教会を激しく批判した。
1594年 44歳 対数の概念を発見し、以後 20 年に渡り、対数表の作成に従事する。
1608年 58歳 父のアーチボルドが亡くなったため、マーキストン城の八代目の城主となる。
1614年 64歳 対数表を完成させ、ラテン語の論文『Mirifici Logarithmorum Canonis Descriptio 』(素晴らしい対数表の使い方)で発表。また、ネイピアの骨 (Napier's Bones) と呼ばれる計算用具も考案。
1615年 65歳 ロンドンのグレシャム大学の幾何学の教授だったヘンリー・ブリッグスがエディンバラまでネイピアを訪ね、1ヶ月ほど滞在し、対数について議論を行う。
1616年 66歳 エドワード・ライト(Edward Wright) による英語訳を出版する。
ヘンリー・ブリッグスがネイピアの元を再訪問。
1617年 67歳 4月4日にジョン・ネイピアが死去(自身の城で息を引き取った)
1614年に考案したネイピアの骨を「Rabdologiæ」という名前で発表。
ヘンリー・ ブリッグス(56歳)が1~1000の常用対数表『Logaithmoim chilias prima』を出版。
1619年 - 息子の一人、ロバート・ネイピア(Robert Napier) によって遺稿『Mirifici logarithmorum canonis constructio』(素晴らしい対数表の作成方法)を出版。
1620年 - ヨスト・ビュルギ(62歳)が『Arithmetische und Geometrische Progress Tabulen 』(算術と幾何学的進行表)を出版するが、ネイピアより発表が遅かったのと精度がネイピアより低かったことから対数の発明はネイピアの業績とされる。
エドムント・ガンター(39歳)によって対数尺(ガンター尺、 Gunter's scale)が作成される。
1623年 - ウィルヘルム・シッカード(31歳)によってネイピアの骨を歯車などを用いて自動化される。
1624年 - ヘンリー・ ブリッグス(63歳)が 1~ 20000と90000~100000の常用対数(小数点以下14桁)についての詳しい説明を付けた『Aithmetica logarithmica』(対数算術)を出版。
1628年 - オランダのアドリアン・ブラックがヘンリー・ブリッグスの常用対数表(小数点以下14桁)で抜けていた20,000~90,000の常用対数表(小数点以下10桁)を完成させた。
1642年 - 後に微積分法を発見するイングランドの数学者アイザック・ニュートンが生まれた。
1646年 - 後に微積分法を発見(ニュートンとは独立視点)したドイツの数学者ゴットフリート・ライプニッツが生まれる。現在使われている微分や積分の記号は彼によるところが多い。
1668年 - ドイツの数学者ニコラス・メルカトルが著書 『Logarithmotechnia』(対数の方法)で自然対数という用語を初出。「自然」であるというのは、数学において自然に生じ、よく見かけるということを根拠とするものである。
1683年 - スイスの数学者ヤコブ・ベルヌーイ(29歳)が利子の連続複利の計算との関連で自然対数(ネイピア数)の数式を発見。
1684年 - ゴットフリート・ライプニッツ(38歳)が、『極大と極小にかんする新しい方法』を出版して、その中で微分法を発表。
1686年 - ゴットフリート・ライプニッツ(40歳)が、『深遠な幾何学』を出版して積分法を発表。
1687年 - アイザック・ニュートン(45歳)が、『プリンキピア』を出版。
1690年 - ゴットフリート・ライプニッツ(44歳)が、自然対数(ネイピア数)に定数記号bを割り当てた。
1707年 - スイスの数学者レオンハルト・オイラーがバーゼルに生まれた。
1748年 - スイスの数学者レオンハルト・オイラー(41歳)が『Introductio in analysin infinitorum』(無限解析入門)で微分積分学と自然対数(ネイピア数)との関係を明らかにした。オイラーがネイピア数の定数記号eを割り当てた。
1964年 - マーキストン城が敷地内にある場所に数学者ジョン・ネイピアから名をとったネイピア専門学校を創設
1992年 - 専門学校からネイピア大学に改変