Napier’s Logarithms: 九九のない世界#
Napierは、\(N\)に対して対数 (logarithm) \(L\)を次の数式で定義し、\(R=7\) の場合の数表を作成した。
\[
\frac{N}{10^R} = \left(1-\frac{1}{10^{R}}\right)^{L}
\]
その後、Eulerは自然対数\(e\)を次の極限式で定義した。
\[
\lim_{n\rightarrow\infty} \left( 1+\frac{1}{n} \right)^n = e
\]
\[
\lim_{n\rightarrow\infty} \left( 1-\frac{1}{n} \right)^n = \frac{1}{e}
\]
\(R\)が十分大きいとき次の近似式が得られる。
\[
\left( 1-\frac{1}{10^R} \right)^{10^R} = (1-10^{-R})^{10^R} \approx \frac{1}{e}
\]
import math
(1-10**-5)**(10**5), (1-10**-7)**(10**7), 1/math.e
(0.3678776017682465, 0.367879422971105, 0.36787944117144233)
現代数学の\(\log\)を用いるとNapierの対数\(L\)は次のように近似できる。
\[
L = \log_{1-10^{-R}} \frac{N}{10^R} \approx
10^R \log_{1/e}\left( \frac{N}{10^R} \right) \approx -10^R \log_{e}\left( \frac{N}{10^R} \right)
\]
Napierの定義#
1-10**-5, 1-10**-7
(0.99999, 0.9999999)
\(p_{n}\) を次の数列として定義したとき、
\[\begin{split}
\begin{eqnarray}
p_{0} &=& 10^7 = 10000000 \\
p_{1} &=& 10^7 \left(1-\frac{1}{10^7} \right)= 10000000 \times 0.9999999 = 9999999 \\
p_{n+1} &=& p_{n} \left(1-\frac{1}{10^7}\right) = p_{n} \times 0.9999999
\end{eqnarray}
\end{split}\]
数列の添字 \(n\) は \(p_{n}\) のNapier対数である。
\[
p_{n} = 10^7 \times \left(1-\frac{1}{10^7}\right)^n
\]
\[
n = \log_{1-10^{-7}}\left(\frac{p_{n}}{10^7}\right)
\]
次のように対数法則を満たす。
\[
p_{m+n} = 10^R \times \left(1-\frac{1}{10^7}\right)^{m+n} = 10^R \times \left(1-\frac{1}{10^7}\right)^m \times \left(1-\frac{1}{10^7}\right)^n = p_{m} \times p_{n} \times \frac{1}{10^R}
\]
\(R=5\)のとき#
import math
def napier5(n):
"""
R=5のときのNapierの数表の第n項を計算する
"""
return 10**5 * (1-1/(10**5))**n
# `math.log()`を使って、Napierの対数を計算する
list(map(lambda x: math.log(x/10**5, 1-1/(10**5)), (1234, 5678)))
[439488.72859419696, 286855.6785070823]
# Napierの数表の項番を計算する
list(map(napier5, _))
[1234.0, 5677.999999999997]
# 対数法則から積を求める
napier5(sum(__))*10**5
7006651.999999997
# 検算
1234*5678
7006652
See also
出版された表を再現する#
Napierは、\(R=7\)の場合の数表を作成した。
!pip install -U astropy
Collecting astropy
Using cached astropy-6.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (10 kB)
Requirement already satisfied: numpy>=1.23 in /opt/conda/lib/python3.11/site-packages (from astropy) (1.26.4)
Collecting pyerfa>=2.0.1.1 (from astropy)
Using cached pyerfa-2.0.1.4-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.7 kB)
Collecting astropy-iers-data>=0.2024.5.27.0.30.8 (from astropy)
Downloading astropy_iers_data-0.2024.6.24.0.31.11-py3-none-any.whl.metadata (5.1 kB)
Requirement already satisfied: PyYAML>=3.13 in /opt/conda/lib/python3.11/site-packages (from astropy) (6.0.1)
Requirement already satisfied: packaging>=19.0 in /opt/conda/lib/python3.11/site-packages (from astropy) (24.0)
Using cached astropy-6.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.2 MB)
Downloading astropy_iers_data-0.2024.6.24.0.31.11-py3-none-any.whl (1.9 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.9/1.9 MB 36.8 MB/s eta 0:00:0000:01
?25hUsing cached pyerfa-2.0.1.4-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (738 kB)
Installing collected packages: pyerfa, astropy-iers-data, astropy
Successfully installed astropy-6.1.1 astropy-iers-data-0.2024.6.24.0.31.11 pyerfa-2.0.1.4
from astropy.coordinates import Angle
from astropy import units
Angle('{:d}°{:d}′{:d}″'.format(1,2,3)).radian
0.018049613347708025
import math
import numpy as np
#from scoping import scoping
import pandas as pd
def napier(dms_d=0, r=7):
for dms_m in range(60):
a = Angle('{:d}°{:d}′{:d}″'.format(dms_d,dms_m,0))
yield (a,
"{:8.0f}".format(math.sin(a.radian)*10**r),
"{:8.0f}".format(math.log(math.sin(a.radian), 1-1/(10**r)) if a.radian else float('inf')),
"{:8.0f}".format(math.log(math.tan(a.radian), 1-1/(10**r)) if a.radian else float('inf')),
"{:8.0f}".format(math.log(math.cos(a.radian), 1-1/(10**r))),
"{:8.0f}".format(math.cos(a.radian)*10**r),
Angle('{:d}°{:d}′{:d}″'.format(90,0,0))-Angle('{:d}°{:d}′{:d}″'.format(dms_d,dms_m,0)))
Note
角度が\(0\degree\)から\(1\degree\)の正弦、余弦とそれらの対数、および正接の対数の値。角度は一分刻み
pd.DataFrame(napier(dms_d=0), columns=['d','sin','log(sin(d))','log(tan(d))','log(cos(d))', 'cos(d)', '90-d'])
d | sin | log(sin(d)) | log(tan(d)) | log(cos(d)) | cos(d) | 90-d | |
---|---|---|---|---|---|---|---|
0 | 0d00m00s | 0 | inf | inf | -0 | 10000000 | 90d00m00s |
1 | 0d01m00s | 2909 | 81425711 | 81425711 | 0 | 10000000 | 89d59m00s |
2 | 0d02m00s | 5818 | 74494240 | 74494239 | 2 | 9999998 | 89d58m00s |
3 | 0d03m00s | 8727 | 70439590 | 70439586 | 4 | 9999996 | 89d57m00s |
4 | 0d04m00s | 11636 | 67562771 | 67562764 | 7 | 9999993 | 89d56m00s |
5 | 0d05m00s | 14544 | 65331336 | 65331326 | 11 | 9999989 | 89d55m00s |
6 | 0d06m00s | 17453 | 63508123 | 63508107 | 15 | 9999985 | 89d54m00s |
7 | 0d07m00s | 20362 | 61966618 | 61966597 | 21 | 9999979 | 89d53m00s |
8 | 0d08m00s | 23271 | 60631306 | 60631279 | 27 | 9999973 | 89d52m00s |
9 | 0d09m00s | 26180 | 59453478 | 59453444 | 34 | 9999966 | 89d51m00s |
10 | 0d10m00s | 29089 | 58399876 | 58399833 | 42 | 9999958 | 89d50m00s |
11 | 0d11m00s | 31998 | 57446777 | 57446726 | 51 | 9999949 | 89d49m00s |
12 | 0d12m00s | 34907 | 56576666 | 56576605 | 61 | 9999939 | 89d48m00s |
13 | 0d13m00s | 37815 | 55776243 | 55776171 | 72 | 9999928 | 89d47m00s |
14 | 0d14m00s | 40724 | 55035167 | 55035084 | 83 | 9999917 | 89d46m00s |
15 | 0d15m00s | 43633 | 54345242 | 54345147 | 95 | 9999905 | 89d45m00s |
16 | 0d16m00s | 46542 | 53699861 | 53699753 | 108 | 9999892 | 89d44m00s |
17 | 0d17m00s | 49451 | 53093620 | 53093498 | 122 | 9999878 | 89d43m00s |
18 | 0d18m00s | 52360 | 52522041 | 52521904 | 137 | 9999863 | 89d42m00s |
19 | 0d19m00s | 55268 | 51981374 | 51981221 | 153 | 9999847 | 89d41m00s |
20 | 0d20m00s | 58177 | 51468446 | 51468277 | 169 | 9999831 | 89d40m00s |
21 | 0d21m00s | 61086 | 50980551 | 50980364 | 187 | 9999813 | 89d39m00s |
22 | 0d22m00s | 63995 | 50515356 | 50515152 | 205 | 9999795 | 89d38m00s |
23 | 0d23m00s | 66904 | 50070845 | 50070621 | 224 | 9999776 | 89d37m00s |
24 | 0d24m00s | 69813 | 49645256 | 49645012 | 244 | 9999756 | 89d36m00s |
25 | 0d25m00s | 72721 | 49237043 | 49236778 | 264 | 9999736 | 89d35m00s |
26 | 0d26m00s | 75630 | 48844843 | 48844557 | 286 | 9999714 | 89d34m00s |
27 | 0d27m00s | 78539 | 48467447 | 48467139 | 308 | 9999692 | 89d33m00s |
28 | 0d28m00s | 81448 | 48103778 | 48103447 | 332 | 9999668 | 89d32m00s |
29 | 0d29m00s | 84357 | 47752873 | 47752517 | 356 | 9999644 | 89d31m00s |
30 | 0d30m00s | 87265 | 47413866 | 47413485 | 381 | 9999619 | 89d30m00s |
31 | 0d31m00s | 90174 | 47085976 | 47085570 | 407 | 9999593 | 89d29m00s |
32 | 0d32m00s | 93083 | 46768498 | 46768065 | 433 | 9999567 | 89d28m00s |
33 | 0d33m00s | 95992 | 46460791 | 46460330 | 461 | 9999539 | 89d27m00s |
34 | 0d34m00s | 98900 | 46162271 | 46161782 | 489 | 9999511 | 89d26m00s |
35 | 0d35m00s | 101809 | 45872405 | 45871887 | 518 | 9999482 | 89d25m00s |
36 | 0d36m00s | 104718 | 45590706 | 45590158 | 548 | 9999452 | 89d24m00s |
37 | 0d37m00s | 107627 | 45316727 | 45316148 | 579 | 9999421 | 89d23m00s |
38 | 0d38m00s | 110535 | 45050055 | 45049444 | 611 | 9999389 | 89d22m00s |
39 | 0d39m00s | 113444 | 44790311 | 44789668 | 644 | 9999357 | 89d21m00s |
40 | 0d40m00s | 116353 | 44537144 | 44536467 | 677 | 9999323 | 89d20m00s |
41 | 0d41m00s | 119261 | 44290229 | 44289518 | 711 | 9999289 | 89d19m00s |
42 | 0d42m00s | 122170 | 44049266 | 44048519 | 746 | 9999254 | 89d18m00s |
43 | 0d43m00s | 125079 | 43813973 | 43813190 | 782 | 9999218 | 89d17m00s |
44 | 0d44m00s | 127987 | 43584090 | 43583271 | 819 | 9999181 | 89d16m00s |
45 | 0d45m00s | 130896 | 43359374 | 43358517 | 857 | 9999143 | 89d15m00s |
46 | 0d46m00s | 133805 | 43139598 | 43138702 | 895 | 9999105 | 89d14m00s |
47 | 0d47m00s | 136713 | 42924549 | 42923614 | 935 | 9999065 | 89d13m00s |
48 | 0d48m00s | 139622 | 42714028 | 42713053 | 975 | 9999025 | 89d12m00s |
49 | 0d49m00s | 142530 | 42507849 | 42506833 | 1016 | 9998984 | 89d11m00s |
50 | 0d50m00s | 145439 | 42305836 | 42304778 | 1058 | 9998942 | 89d10m00s |
51 | 0d51m00s | 148348 | 42107824 | 42106723 | 1100 | 9998900 | 89d09m00s |
52 | 0d52m00s | 151256 | 41913657 | 41912513 | 1144 | 9998856 | 89d08m00s |
53 | 0d53m00s | 154165 | 41723190 | 41722002 | 1188 | 9998812 | 89d07m00s |
54 | 0d54m00s | 157073 | 41536284 | 41535050 | 1234 | 9998766 | 89d06m00s |
55 | 0d55m00s | 159982 | 41352808 | 41351528 | 1280 | 9998720 | 89d05m00s |
56 | 0d56m00s | 162890 | 41172639 | 41171312 | 1327 | 9998673 | 89d04m00s |
57 | 0d57m00s | 165799 | 40995659 | 40994284 | 1375 | 9998625 | 89d03m00s |
58 | 0d58m00s | 168707 | 40821758 | 40820334 | 1423 | 9998577 | 89d02m00s |
59 | 0d59m00s | 171616 | 40650830 | 40649357 | 1473 | 9998527 | 89d01m00s |
Note
角度が\(89\degree\)から\(90\degree\)の正弦、余弦とそれらの対数、および正接の対数の値。角度は一分刻み
pd.DataFrame(napier(dms_d=89), columns=['d','sin','log(sin(d))','log(tan(d))','log(cos(d))', 'cos(d)', '90-d'])
d | sin | log(sin(d)) | log(tan(d)) | log(cos(d)) | cos(d) | 90-d | |
---|---|---|---|---|---|---|---|
0 | 89d00m00s | 9998477 | 1523 | -40481252 | 40482775 | 174524 | 1d00m00s |
1 | 89d01m00s | 9998527 | 1473 | -40649357 | 40650830 | 171616 | 0d59m00s |
2 | 89d02m00s | 9998577 | 1423 | -40820334 | 40821758 | 168707 | 0d58m00s |
3 | 89d03m00s | 9998625 | 1375 | -40994284 | 40995659 | 165799 | 0d57m00s |
4 | 89d04m00s | 9998673 | 1327 | -41171312 | 41172639 | 162890 | 0d56m00s |
5 | 89d05m00s | 9998720 | 1280 | -41351528 | 41352808 | 159982 | 0d55m00s |
6 | 89d06m00s | 9998766 | 1234 | -41535050 | 41536284 | 157073 | 0d54m00s |
7 | 89d07m00s | 9998812 | 1188 | -41722002 | 41723190 | 154165 | 0d53m00s |
8 | 89d08m00s | 9998856 | 1144 | -41912513 | 41913657 | 151256 | 0d52m00s |
9 | 89d09m00s | 9998900 | 1100 | -42106723 | 42107824 | 148348 | 0d51m00s |
10 | 89d10m00s | 9998942 | 1058 | -42304778 | 42305836 | 145439 | 0d50m00s |
11 | 89d11m00s | 9998984 | 1016 | -42506833 | 42507849 | 142530 | 0d49m00s |
12 | 89d12m00s | 9999025 | 975 | -42713053 | 42714028 | 139622 | 0d48m00s |
13 | 89d13m00s | 9999065 | 935 | -42923614 | 42924549 | 136713 | 0d47m00s |
14 | 89d14m00s | 9999105 | 895 | -43138702 | 43139598 | 133805 | 0d46m00s |
15 | 89d15m00s | 9999143 | 857 | -43358517 | 43359374 | 130896 | 0d45m00s |
16 | 89d16m00s | 9999181 | 819 | -43583271 | 43584090 | 127987 | 0d44m00s |
17 | 89d17m00s | 9999218 | 782 | -43813190 | 43813973 | 125079 | 0d43m00s |
18 | 89d18m00s | 9999254 | 746 | -44048519 | 44049266 | 122170 | 0d42m00s |
19 | 89d19m00s | 9999289 | 711 | -44289518 | 44290229 | 119261 | 0d41m00s |
20 | 89d20m00s | 9999323 | 677 | -44536467 | 44537144 | 116353 | 0d40m00s |
21 | 89d21m00s | 9999357 | 644 | -44789668 | 44790311 | 113444 | 0d39m00s |
22 | 89d22m00s | 9999389 | 611 | -45049444 | 45050055 | 110535 | 0d38m00s |
23 | 89d23m00s | 9999421 | 579 | -45316148 | 45316727 | 107627 | 0d37m00s |
24 | 89d24m00s | 9999452 | 548 | -45590158 | 45590706 | 104718 | 0d36m00s |
25 | 89d25m00s | 9999482 | 518 | -45871887 | 45872405 | 101809 | 0d35m00s |
26 | 89d26m00s | 9999511 | 489 | -46161782 | 46162271 | 98900 | 0d34m00s |
27 | 89d27m00s | 9999539 | 461 | -46460330 | 46460791 | 95992 | 0d33m00s |
28 | 89d28m00s | 9999567 | 433 | -46768065 | 46768498 | 93083 | 0d32m00s |
29 | 89d29m00s | 9999593 | 407 | -47085570 | 47085976 | 90174 | 0d31m00s |
30 | 89d30m00s | 9999619 | 381 | -47413485 | 47413866 | 87265 | 0d30m00s |
31 | 89d31m00s | 9999644 | 356 | -47752517 | 47752873 | 84357 | 0d29m00s |
32 | 89d32m00s | 9999668 | 332 | -48103447 | 48103778 | 81448 | 0d28m00s |
33 | 89d33m00s | 9999692 | 308 | -48467139 | 48467447 | 78539 | 0d27m00s |
34 | 89d34m00s | 9999714 | 286 | -48844557 | 48844843 | 75630 | 0d26m00s |
35 | 89d35m00s | 9999736 | 264 | -49236778 | 49237043 | 72721 | 0d25m00s |
36 | 89d36m00s | 9999756 | 244 | -49645012 | 49645256 | 69813 | 0d24m00s |
37 | 89d37m00s | 9999776 | 224 | -50070621 | 50070845 | 66904 | 0d23m00s |
38 | 89d38m00s | 9999795 | 205 | -50515152 | 50515356 | 63995 | 0d22m00s |
39 | 89d39m00s | 9999813 | 187 | -50980364 | 50980551 | 61086 | 0d21m00s |
40 | 89d40m00s | 9999831 | 169 | -51468277 | 51468446 | 58177 | 0d20m00s |
41 | 89d41m00s | 9999847 | 153 | -51981221 | 51981374 | 55268 | 0d19m00s |
42 | 89d42m00s | 9999863 | 137 | -52521904 | 52522041 | 52360 | 0d18m00s |
43 | 89d43m00s | 9999878 | 122 | -53093498 | 53093620 | 49451 | 0d17m00s |
44 | 89d44m00s | 9999892 | 108 | -53699753 | 53699861 | 46542 | 0d16m00s |
45 | 89d45m00s | 9999905 | 95 | -54345147 | 54345242 | 43633 | 0d15m00s |
46 | 89d46m00s | 9999917 | 83 | -55035084 | 55035167 | 40724 | 0d14m00s |
47 | 89d47m00s | 9999928 | 72 | -55776171 | 55776243 | 37815 | 0d13m00s |
48 | 89d48m00s | 9999939 | 61 | -56576605 | 56576666 | 34907 | 0d12m00s |
49 | 89d49m00s | 9999949 | 51 | -57446726 | 57446777 | 31998 | 0d11m00s |
50 | 89d50m00s | 9999958 | 42 | -58399833 | 58399876 | 29089 | 0d10m00s |
51 | 89d51m00s | 9999966 | 34 | -59453444 | 59453478 | 26180 | 0d09m00s |
52 | 89d52m00s | 9999973 | 27 | -60631279 | 60631306 | 23271 | 0d08m00s |
53 | 89d53m00s | 9999979 | 21 | -61966597 | 61966618 | 20362 | 0d07m00s |
54 | 89d54m00s | 9999985 | 15 | -63508107 | 63508123 | 17453 | 0d06m00s |
55 | 89d55m00s | 9999989 | 11 | -65331326 | 65331336 | 14544 | 0d05m00s |
56 | 89d56m00s | 9999993 | 7 | -67562764 | 67562771 | 11636 | 0d04m00s |
57 | 89d57m00s | 9999996 | 4 | -70439586 | 70439590 | 8727 | 0d03m00s |
58 | 89d58m00s | 9999998 | 2 | -74494239 | 74494240 | 5818 | 0d02m00s |
59 | 89d59m00s | 10000000 | 0 | -81425711 | 81425711 | 2909 | 0d01m00s |