「利用者:Delmonta iijima/メモ「対数」」の版間の差分
Delmonta iijima (会話 | 投稿記録) |
(相違点なし)
|
2021年4月9日 (金) 15:16時点における版
記事「対数」についての編集用メモ。
記事本体の中に <-- .... -->
でコメントを仕込んでおいても、消されてしまうことがあるので。
「オリジナルの定義」による値は具体的にどんなものなのか、現在一般に使われている対数関数の値と比較する
ジョン・ネイピアの式
この両辺を 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 ) ≈ x − x2/2 + ...(|x| < 1)
が使えるため、余計な係数がかからずに済んでいる。ここでもし常用対数を使ってしまうと、lg 0.9999999 = −4.34 × 10−8、lg 1.0001 = 4.34 × 10−5 というややこしい値が登場することになる。
で、何でこの計算で掛け算を足し算に置き換えられるの?
この時代にはまだ、実数の「無理数乗」という概念は存在していないことに注意する。分数乗ですら計算には膨大な手間を要する。したがって、ネイピアの定義でもビュルギの定義でも、与式中の変数 p には整数を1から順に代入して計算する。
たとえば、ビュルギの例によって計算してみよう。底 1.0001 からスタートして、そのべき乗を繰り返し求めていく。そうすると、次のような表が p =1、2、3… と順にびっしり続くことになる。
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 789、b = 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% となった。