かけ算がたし算でできる

 対数表の数値がどのような方法で計算されているかを見ていく前に、そもそも対数表は何のために考え出されたのかを見ていきましょう。電子計算機が誕生する以前、高度な計算を担っていたのが対数表です。我が国では丸善の対数表が有名です。

 現在もなお高校数学の教科書の後ろに対数表は掲載されていますが、使う機会はほとんどなくなってしまいました。

 連載「対数の発見がもたらした大航海時代と技術革新」でも紹介したように、対数は天文学的計算を克服するために、城主ジョン・ネイピアによって考案された画期的計算方法です。今から400年前の物語です。

 スマートフォンを使いこなす現代人にとって、対数表が電卓代わりになる様子は新鮮に映るはずです。まずは対数表の使い方を簡単な例で理解するところから始めてみます。

 2と2のn乗を表にまとめておきます。下の表では、上の段に2のn乗の値(1、2、4、・・・)、下の段にnの値(0、1、2、・・・)をまとめたものです。この表を用いることでかけ算の答えをあっという間に求めることができます。

 例えば、128×256を考えてみます。

 まず、128と256を上の段に見つけます。次にその下にあるnの値を確認します。128は7、256は8です。その7と8をたし算します。7+8=15。すると、下の段に15を見つけ、その上の数が求める値になります。したがって、32768が求める積と分かります。

 このような数表が対数表です。下の段のnが対数です。128の対数が7であるとは、128=2×2×2×2×2×2×2のように128は2を7回かけた数であることを表しています。

(*配信先のサイトでこの記事をお読みの方はこちらで本記事の図表をご覧いただけます。http://jbpress.ismedia.jp/articles/-/49009)

 128×256=(2×2×2×2×2×2×2)×(2×2×2×2×2×2×2×2)
→2を7回+8回=15回かけた数
→対数表から32768

 このように、かけ算を計算するのに対数表を用いると、たし算だけで答えが得られるということです。この2のことを底と呼びます。

 400年前、城主ジョン・ネイピアはこの対数のアイデアを考案し、対数表を作り上げました。彼が採用した底は0.9999999という奇妙な数でした。詳細は連載「ジョン・ネイピア物語〜対数は天文学者の寿命を2倍にした」を読んでください。

 さらに、ネイピアは三角比sinθに対する対数を考えました。天文学に必要な計算にフォーカスしたからです。

 はたして、20年の時間をかけて完成させた対数表は一般には理解し難いものになってしまいました。

 そこに現れた天文学者ブリッグスがネイピアの後を継ぎ、底を10とする対数表を完成させることになります。それが、高校数学の教科書に掲載されている常用対数表の原型です。

常用対数表を使ってみる

 対数表では対数に対する数を真数と呼びます。2を底にしたの対数表(回数表)では上段2^nが真数、下段nが対数です。次が常用対数表です(下の表)。この対数表は真数が1.00から9.99、底を10とする対数が小数点以下4桁まで与えられています。

 左列が真数の2桁で、上段の0から9が真数の小数第2位の数を表しています。例えば、2.00の対数なら左列2.0の行と上段0の列が交わる0.3010と分かります。10^0.3010=2.00ということです。

 この常用対数表を用いて、かけ算1.43×5.93を求めてみます。

 まず、1.43と5.93の対数を対数表から探し出します。それぞれ0.1553、0.7731なので、それらの和を計算します。

0.1553+0.7731=0.9284

 この0.9284という数は対数ですから、この数に対する真数を対数表の中から探し出します。最初と逆の探し方です。対数の中から0.9284を探し出して、左列8.4と上段の数8から8.48と求まります。

 したがって、

1.43×5.93=8.48

 と求まったことになります。実際には

1.43×5.93=8.4799

 ですから、対数表による結果は小数第1位まで正しい近似値であることが分かります。

 ブリッグスから電卓が普及するまで、300年以上の間、対数表が世界中の人々の計算を助けてきたことに驚かされます。

対数表の計算

 ところで、対数表の数値はどのように計算されるのでしょうか。これが大変な作業になります。ジョン・ネイピアは44歳から64歳の20年間を対数表の計算に費やしました。

 ネイピアの後を継いだブリッグスが100000までの14桁常用対数表を完成させのは63歳の時でした。ここにブリッグスが行った計算の1コマを再現してみましょう。

 2の常用対数0.3010(log 2=0.3010)の算出過程

 まず5の常用対数を求めます。ここに用いるのが前回「知っておきたい平方根の計算方法」で取り上げた平方根の計算です。A=1とB=10の2数から始めて、平方根と平均の計算を繰り返し行うことで5の常用対数にたどり着きます。

 ポイントになる計算が次です。

log √AB=(log A+log B)÷2

 左辺に平方根の計算、右辺は平均の計算であることが分かります。A=1とB=10に対してC=√AB=3.162277、次にD=√BC=5.623413というように2数の平方根は5に近づいていきます。

 対数の算出ですが、log A=0、log B=1から始めて

log C=log √AB=(log A+log B)÷2=0.5

 というように、2数の平方根の常用対数は2つの対数の平均で求められます。

 このように平方根と平均の計算を続けていくことで5の常用対数が

log 5=0.6989700

 と得られます。

 これより、2の常用対数は次のように求まります。

log 2=log 10/5=log 10-log 5=1-0.6989700=0.3010300

マクローリン級数による対数の計算

 さて連載「電卓はいかに計算しているのか」において、「マクローリン級数との出会い」と題して、関数電卓でsin31°が計算できることに驚いた私がマクローリン級数に出会い、四則でsin31°の値が計算できることに感動したことを紹介しました。

マクローリン級数


 この公式の中にlogのマクローリン級数もあります。三角関数の数値計算ができるのだから対数のそれもできるだろうと考えることは自然です。

オイラーの工夫

 ところが三角関数のように簡単にはいかないのです。

 三角関数のマクローリン級数の式が全実数xで成り立つのでsin31°の計算に使えました。それに対して、log (1+x)のマクローリン級数の式では、xが-1<x<1の範囲でしか成り立たないのです。

 先のブリッグスが求めた5の常用対数log 5の計算には用いることができません。この窮状を救ったのがオイラーです。

 対数log(1+x)は底がネイピア数eの自然対数です。連載「ジョン・ネイピア物語は終わらない〜ネイピア数e誕生物語」で詳細を紹介したように、ネイピア数eと呼ばれる数はオイラーの手によって、ネイピアの対数の中から発見されました。

 対数を深く研究したオイラーは、log(1+x)のマクローリン級数から出発して新しい対数の値を計算するのに適した公式を導出しました。

 オイラーは、小さなxの値に対してこの式が「強く収束する」と述べ、これを用いることで対数の計算が驚くほど簡単になることに気づきました。

 x=1/3をこの公式に代入すると、

 2の自然対数が得られます。同様に、x=1/9を代入すると、

 これより、5の自然対数が次のように求められます。

 さらに、2と5の自然対数の値から10の自然対数を次のように求めます。

 最後に必要になるのが底をeから10に変換する計算です。オイラーは、ある数の底がaの対数が分かれば、「簡単に」底がbの対数を求めることができることを発見しました。このアイデアは簡単でとても役に立つのでオイラーは「対数の黄金法則」と呼んでいます。「黄金法則」を用いて、

 にたどり着きます。これは、小数第6位までブリッグスの求めた値に等しいです。ブリッグスの方法では平方根の計算が24回も必要であるのに対して、このオイラーの方法では一度も用いていません。オイラーの方法の方がはるかに速く対数の値を求めることができます。

 私たちがこのような数値計算を日常で行うことはありません。連載ではここしばらく数値計算をテーマに取り上げていますが、それは計算のスピードの追究がいかになされてきたのかを紹介するためです。

 今もこの瞬間に世界中のパソコンやスマートフォンの内部では計り知れないほどの膨大な計算が処理されています。ディープ・ランニングやAIなど、ビッグ・データと呼ばれる計算の世界が進化中です。もはや、どれだけの計算量なのかを人間が感知できない世界になってしまいました。

 このようなスピードの時代だからこそ、対数表や対数の仕組みでできた計算尺を手にして計算してみることは、私たちに計算の進化やリアリティを思い出させてくれる体験になるでしょう。

筆者:桜井 進