16.指数・対数の利用
1.よく使う対数の底
<対数で数値計算>
底が10の対数を常用対数といいます。計算の結果が表になっています。
(常用)対数表です。真数から対数がすぐに出せるのです。
昔は関数電卓とかプログラミング環境がなかったから、とても重宝されたでしょう。
対数という言葉は17世紀はじめにネイピアが使い、その後ブリッグズ、メルカトル、ニュートンらが平方根を大量に反復計算したり、無限級数(無限の数列和)などを使って平方根を計算したり、双曲線での積分を使うなどして、工夫し、苦労して計算されものが対数表だ。その後オイラーさんなどが級数展開という再表現をすることで、飛躍的に簡単に計算できるようになった。
(例)log101000=3, プログラミング言語などでは、 log10(1000)=3
(例)たとえば、10を何乗すると1230000とか、0.0123になるかを調べたいとしよう。
表の「1.2」の行で1つ下の位の「3」の列を見ると、0.0899とある。
こらから、log10(1.23)=0.0899とわかる。
・log10(1230000)=log10(1.23×106)=log10(1.23) +6log10(10)=0.0899+6=6.0899乗となる。
・log10(0.0123)=log10(1.23/102)=log10(1.23) -2log10(10)=0.0899-2=-1.9101乗となる。
(たしかめ)10 6.0899=12998.5... 、10 -1.9101=0.012299...
(例)log102=0.3010,log103=0.4771のとき、3020,2030はどちらが大きいか?
それぞれを真数とした対数を比べる。
log103020-log102030>20×(0.4771+1)-30×(0.3010+1)=29.542-39.03<0から、真数の大小は逆順。
(例)「23=8,32=9,35=243,28=256を使って、log23を小数第1位まで求める」と?
log22=1, log24=2だから、log23=1.x 。
・log29=2 log23だから、log23=(log29)/2>(log28)/2=1.5
・log2243=log235=5 log23だから、log23=(log2243)/5<(log2256)/5=(log228)/5=8/5=1.6。
だから、1.5。
(例)大きい数のかけ算をするときに対数表の数で10の指数におきかえてたし算する。
12.3×45600×31400000÷2.72
1より大きい数は1以上10未満の3桁数Mを使って、浮動小数点表示M×10Nにおきかえます。
log10(M×10N)=log10(M)+log10(10N)=log10M+N (Mは対数表にあるので、log10Mは転記するだけ。)
log10(1.23×101)=0.0899+1, +log10(4.56×104)=0.6590+4, +log10(3.14×107)=0.4969+7,
ーlog10(2.72)=ー(0.4346)。
1.0899+4.659+7.4969 -0.4346=12.8112乗(10の)が答えです。
1012.8112=1012×100.8112ですが、0.8112に対数表の中身から逆読みして、6.4の行の8の列と7列の間と推定できるので、およそ、
log10(6.475)=0.8112。つまり、100.8112=6.475と言い換えられる。
結局、1012.8112=6.475×1010
と表の読み取りをしてたし算し、答えの小数部分を表の逆読みして
およその上3けたと数の大きさがわかる。
(たしかめ)Pythonの対話画面から。
>>> 12.3*45600*31400000/2.72
6474864705882.353
<底がeの自然対数>
オイラー数(ネイピア数)e=2.718281828459...を底にすると、(ex)の微分=exのため、
微分積分などの数式計算が簡単になります。
そのため、常用対数は数値計算向きでしたが、自然対数は数式計算でよく使われます。
また、eiπ=-1のオイラー等式のように、eは関数や数をつなぐときに登場します。
底がeの指数関数y=exをy=EXP(x)とかくことが多い。
底がeの対数関数y=logexをy=LN(x)=Log(x)とかくことが多く、自然対数といいます。
(例)pythoの対話画面から
>>> import math
>>> math.exp(1)
2.718281828459045
>>> math.e
2.718281828459045
>>> math.log(math.e)
1.0
<オイラーのやり方>
オイラーは無限小・無限大という考えと一般2項展開を使って、対数関数logex=ln(x)を級数展開した。
無限小ωという量でeω=1+ωとなるならln(1+x)=ωだから、
十分大きいjに対してjω=jln(1+x)=ln(1+x)j>1となり、どんなxでもx=(1+ω)j-1となるjがとれる。
こらから、1+x=(1+ω)j=(eω)j=ejω。ln(1+x)=jω。また、逆算して、ω=(1+x)1/j。
ln(1+x)=jω=j((1+ω)1/j-1)=j(1+(1/j)x+(1/j)(1/j-1)/2!x2+(1/j)(1/j-1)(1/j-2)/3!x3+.........) - j
=x - (j-1)/2jx2 + (j-1)(2j-1)/(2!j3j)x3- (j-1)(2j-1)(3j-1)/(2j3j4j)x4+.........) - j
jが無限大なら、(j-1)/2j=1/2,(2j-1)/3j=2/3,(3j-1)/4j=3/4,...となり、jを使った係数はxの指数と同じ数以外が相殺されて消える。
・.
・x=-xとおくと、.
・これから、
これを公式として利用すると、
p(1/3)=ln(1+1/3)/(1-1/3)=ln2=0.69313...,
p(1/9)=ln(1+1/9)/(1-1/9)=ln(5/4)=0.22314...
ln5=ln(5/4×4)=ln5+2ln2=0.22314+2(0.69313)=1.60941。
ln10=ln2+ln5=0.69313+1.60941=2.30254
log10(5)=ln5/ln10=1.60941/2.30254=0.69897。
このように自然対数を計算して、底の変換公式で常用対数を求めることができる。★対数で、かけ算をたし算にして計算しよう
2.整数のけた数と小数の位と数字
<整数のけた数の実験>
log101000=3、log1010000=4。,log102000=3.30..,log109876=3.99..
y=log10xは単調増加なので、xが1000以上10000未満、
つまり真数xが4けたならyは3以上4未満。
このとき、どの真数xもx=M×103(xは1以上10未満)と浮動小数点表示ができる。
(覚え方)1000は0が3個あるけど、桁数は4けた。
1000を原型として、1を1〜9.999...と変化させたものが4けた数。
<一般化>
log1010N=N,log1010N+1=N+1
y=log10xは単調増加なので、xが10N以上10(N+1)未満、
つまり真数xがN+1けたならyはN以上N+1未満。
このとき、どの真数xもx=M×10Nと(xは1以上10未満)と浮動小数点表示ができる。
1より大きい真数Xについて、N-1以上(log10X)N未満なら、
XはN桁である。
(覚え方)10Nは0がN個あるけど、1がその上の位だから、
桁数はN+1けた。これを原型として、1〜10未満倍しても同桁数。
(例)「log102=0.3010,log103=0.4771のとき、6の100乗のけた数」は?
log106100=100×(log102+log103)=77.811<78。78けた。
(例)「log102=0.3010,log103=0.4771のとき、3の2013乗のけた数、最上位の数」は?
3の2013乗=M×10N(Mが1以上10未満)と再表現できたなら、
けた数はN+1、最上位の数はMの整数部分です。
log1032013=2013×log103=960.4023...は960以上961未満。だからN=960。
2の2013乗は、N+1=961けた。
M=32013/10960とすると、log10M=960.4023 - 960=0.4023。
Mの対数log10M=0.4023がlog102=0.3010とlog103=0.4771の間だから、
真数Mも間にあり、2と3の間。
だからMの整数部分は2となり、3の2013乗の最上位の数は2。
(例)「log102=0.3010、log103=0.4771。15の25乗のけた数、最上位の数」は?
15の25乗=M×10N(Mが1以上10未満)と再表現できたなら、
けた数はN+1、最上位の数はMの整数部分です。
15=3・10/2でlogを分解すればよい。
log101525=25×log10(3・10/2)=25×(0.4771+1-0.3010)=29.4025=2.94..×101
けた数は1+1=2。最上位は2.94の整数部分の2
<1より小さい小数の0以外初登場位の実験>
0以外の数字が初めて登場する位を0以外初登場位と呼ぶことにする。
log100.001=-3、log100.0001=-4、log100.00012=-3.92..、log100.000797=-3.09..
xが0.0001以上0.001未満、
つまり真数xの0以外初登場位数が4位ならyは-4以上-3未満。
このとき、どの真数xもx=M×10-4(xは1以上10未満)と浮動小数点表示ができる。
<一般化>
log1010-N+1=-N+1, log1010-N=-N、xが10-N+1以上10N未満、
つまり真数xの0以外初登場位数がN位ならyは-N以上-N+1未満。
このとき、どの真数xもx=M×10-Nと(xは1以上10未満)と浮動小数点表示ができる。
逆に
1より小さい真数Xについて、-N以上(log10X)-N+1未満なら、
Xの0以外初登場位がN位になる。
(覚え方)10-Nは小数点第N位で初めて1が登場する。
これを原型として、1〜10未満倍しても同位置に0以外が登場する。
(例)log102=0.3010,log103=0.4771のとき、0.2の50乗の0以外の初登場位は?
log10(0.2)50=50(log102-log1010)=-34.95>-35から小数第35位★巨大数のけた数を対数でさぐろう
3.対数の科学利用
<対数メモリ>
通常のグラフのメモリは等差数列で1メモリの幅が一定です。
対数目盛は、等比数列になっているので、1メモリの幅が倍々になります。
量の単位も1ずつふえたら、同量増えていると思いがちです。
しかし、グラフ表示のレベルではなく、
量の定義自体が指数関数的な増え方を前提にしているものもあるので注意したい。
<地震の規模マグニチュード(M)>
地震が発するエネルギーの大きさを E(単位:ジュール)、マグニチュードを M とすると、
log10E=4.8+1.5M
という関係がある。
つまり、10E=104.8×10(1.5M).
Mの増分をmとすると、104.8×101.5M+1.5m
=10E×101.5m
と、指数のEが1.5m増える。
だから、Mが1増えると、10Eは10の1.5乗倍つまり、32倍になる。
Mが2増えると、10Eは10の1.5×2=3乗倍、つまり1000倍になる。
ということは、M5,M6,M7,M8の地震はMが1増えているため、
1つずつ32倍のエネルギーを発する。
1つおきでは1000倍のエネルギーを発する地震ということだ。
だから、M8はM5の316273倍のエネルギーを発する。
また、マグニチュードが0.2増えただけで、1.5×0.2=0.3から、10の0.3乗倍のエネルギーを発する。
log10(2)=0.3010を思い出すと、発するエネルギーは約2倍ということだね。
M | 例 | 日本で頻度/年 |
9.0以上 | 超巨大地震(東日本大震災2011) | 0.003回 |
8.0-8.9 | 巨大地震(関東大震災1923) | 0.1回 |
7.0-7.9 | 大地震(能登半島地震2024) | 2回 |
6.0-6.9 | 中地震(新潟県中越地震2004) | 15回 |
5.0-5.9 | 中地震 | 130回 |