« Zoom:バーチャル背景用の単色... Main Python: Python-Controlのイン... »

常用対数の近似値の算出

対数は「底xの値を何乗したらzになるか?」の指数を求めるもの、指定するものと捉える。
z=xyでのyを知りたい場合にy=logxzと書く。

常用対数は、対数の底が10のもの。
(※自然対数は対数の底がeのもの。exは微分してもexのままなので便利)

log101=0,(100=1)
log1020.3

log10210=log101024log101000=log10103=3log1010=31=3

10log1023log102310=0.3

log1030.475,(100.5=109=3)

log1034=log10(99)=log1081log1080=log10(2310)3log102+log101030.3+1=1.9
4log1031.9log1031.94=0.475

log1040.6

log104=log1022=2log10220.3=0.6

log1050.7

log105=log10102=log1010log10210.3=0.7

log1060.775

log106=log10(23)=log102+log1030.3+0.475=0.775

log107=0.85

log1072=log1049log1050=log10(510)=log105+log10100.7+1
2log1071.7log1071.72=0.85
高精度版)
log1074=log102401log102400=log10(24100)=log108+log103+log10100
=log1023+log103+log10102=3log102+log103+2log101030.3+0.475+21.0=3.375
4log107=3.375log1073.375/4=0.843750.844

log1080.9

log108=log1023=3log10230.3=0.9

log1090.95

log109=log1032=2log10320.475=0.95
高精度版)
log1097=log104782969log104800000=log10(68105)=log106+log108+log10105
=0.775+0.9+5.0=6.675
7log109=6.675log1096.675/7=0.95370.954

log1010=1,(101=10)

おまけ:log10111.04

log10115=log10161051log10160000=log1024104=4(log102+log1010)4(0.3+1.0)
5log1011=41.3log1011451.3=0.81.3=1.04

この近似をプロットすると下図のようになる。log107log109は他に比べて誤差が大きいので、高精度版を赤色として示した。

1 2 3 4 5 6 7 8 9 10
近似値 0 0.3 0.475 0.6 0.7 0.775 0.85 0.9 0.95 1
真値 0.000 0.3010 0.4771 0.6021 0.6990 0.7782 0.8451 0.9031 0.9542 1.000
誤差 0 0.0010 0.0021 0.0021 0.0010 0.0032 0.0049 0.0031 0.0042 0

観察

  • 1~10で、log10は0~1になる。
  • 3でlog10は約0.45で、ざっくり半分に到達する。
  • 2はlog10は約0.3で、4=22, 8=23だとlog10はそれぞれ2,3倍の約0.6,0.9となる。8の際に既にほぼ1に近いことに注意。
  • 5は10/2で、log101log102となるので約0.7。1と10の両端側からの距離でいうと2の場合と同じで約0.3。
  • 倍になると、対数では同じだけ増加する。
    例)
    log102=0.3×2log104=0.6×2log108=0.9,
    log103=0.475×3log109=0.95,
    log105=0.7×2log1010=1.0
    logaM=loga+logMより、a倍されていれば、loga分だけ増加する(割ればlogaだけ減少する)。掛け算・割り算が同じ距離の変化になる。

  • 2で割るとlog10では0.3減少するので、これを用いると

    log103/2(=log101.5)0.4750.3=0.175
    log105/2(=log102.5)0.70.3=0.4
    log107/2(=log103.5)0.850.3=0.55
    log109/2(=log104.5)0.950.3=0.65

    となる。1/2も求めてみると、

    log101/2(=log100.5)00.3=0.3

    となる。

    log100.5=log10510=log105log10100.71=0.3

    でも結果は同様。

参考リンク

Leave a comment

Your comment