「利用者:Delmonta iijima/メモ「対数」」の版間の差分

削除された内容 追加された内容
新しいページ: 「記事「対数」についての編集用メモ。 記事本体の中に <code><-- .... --></code> でコメントを仕込んでおいても…」
(相違点なし)

2021年4月9日 (金) 15:16時点における版

記事「対数」についての編集用メモ。

記事本体の中に <-- .... --> でコメントを仕込んでおいても、消されてしまうことがあるので。

「オリジナルの定義」による値は具体的にどんなものなのか、現在一般に使われている対数関数の値と比較する

ジョン・ネイピアの式

ネイピアによる対数の定義は次のようなものである:

正の実数 x に対して

 
を満たす実数 p がただ一つ定まる。この p のことを ネイピアの対数: Napierian logarithm)という。この値は、−107 ln (x/107) と 7 桁の精度で一致する。

この両辺を 107 で割り、両辺の自然対数を取ると、

ln (x/107) = p ln ( 1 − 10−7)
p = ln (x/107) / ln ( 1 − 10−7)

が得られる。ln 0.9999999 = −0.000000100000005 なので、p = −107 ln (x/107) が7桁の精度で成立する。

ヨスト・ビュルギの式

ビュルギもまた対数の発見者であるが、ビュルギが用いた定義はネイピアのものとはわずかに異なっている。ビュルギによる対数の定義は次のようなものである:

正の実数 x に対して

 
を満たす実数 p がただ一つ定まる。この p のことをビュルギの対数という。この値は、104 ln (x/108) と4桁の精度で一致する。

両辺を 108 で割り、両辺の自然対数を取ると、

ln (x/108) = p ln (1 + 10−4)

が得られる。ln 1.0001 = 0.00009995 なので、p = 104 ln (x/108) が4桁の精度で成立する。

実はどちらの定義も、常用対数ではなく自然対数を算出している

どちらの式でも、自然対数を使うとテイラー展開による多項式近似

ln ( 1 + x ) ≈ xx2/2 + ...|x| < 1

が使えるため、余計な係数がかからずに済んでいる。ここでもし常用対数を使ってしまうと、lg 0.9999999 = −4.34 × 10−8lg 1.0001 = 4.34 × 10−5 というややこしい値が登場することになる。

で、何でこの計算で掛け算を足し算に置き換えられるの?

この時代にはまだ、実数の「無理数乗」という概念は存在していないことに注意する。分数乗ですら計算には膨大な手間を要する。したがって、ネイピアの定義でもビュルギの定義でも、与式中の変数 p には整数を1から順に代入して計算する

たとえば、ビュルギの例によって計算してみよう。底 1.0001 からスタートして、そのべき乗を繰り返し求めていく。そうすると、次のような表が p =1、2、3… と順にびっしり続くことになる。

ビュルギの式に従って、 p を増やして地道に計算していくと…
p 1.0001p x
10 1.0010 100,100,045
100 1.0100 101,004,966
250 1.0253 102,531,384
500 1.0513 105,126,847
750 1.0779 107,788,011
1000 1.1052 110,516,539
2000 1.2214 122,139,055
3000 1.3498 134,983,856
5000 1.6487 164,868,006
8000 2.2255 222,545,191
10000 2.7181 271,814,593
15000 4.4814 448,135,298
17500 5.7541 575,409,920
20000 7.3883 738,831,728
21000 8.1653 816,531,257
22000 9.0240 902,402,087
23000 9.9730 997,303,557
23026 9.9990 999,899,790
23037 10.0100 1,001,000,230

p が 23026 と 23027 の中間くらいにきた時に、1.0001p がちょうど10になることに留意する。

これをふまえて、たとえば a = 123 456 789b = 987 654 321 とおいて、この積 a b の計算を考える。

この表で 123 456 789に近い場所を探していくと、ちょうど p = 2107 が最も近い値となる。ゆえに、

a ≈ 1.00012107 × 108

987 654 321も同様に探していくと、今度は p = 22903 が最も近くなる。ゆえに、

b ≈ 1.000122093 × 108

この両者を掛けると、

a b = 1.00012107 + 22093 × 1016

このように、真数の積(または商)の計算をを指数の和(または差)の計算に変換できるという性質は、現在我々が知っている対数関数の特長と全く変わりがない。

ここで 1.000123037 = 10 に留意すると

1.00012107 + 22093 = 1.000123037 + 1163 = 10 × 1.00011163

最終的に、上記の表から p = 1163 に対応する x をさがすと、x = 112 332 629 である。

以上の計算より、

a b = (10 × 1.1233263) × 1016 = 1.1233263) × 1017

が得られる。

ちなみに、実際にdouble型で直接計算した値は 1.2193263 × 1017 である。上記の計算による誤差は −8.5% となった。