対数計算
計算結果
対数
- 自然対数(ln)
- 6.907755
- 常用対数(lg)
- 3.000000
対数の計算ツールです。対数が本当に尋ねていること、つまり「その底を何乗すればよいか」に答えます。真数と底を入力すると、選んだ底での対数、自然対数、常用対数の3つが返ります。常用対数と自然対数を別々に計算し直す必要はありません。底は10に固定されていません。2でもeでも、ほかの正の数でも受け付けます。既定値は真数1,000と底10で、対数は3になります。つまり10を3回掛けると1,000になる、ということです。ページが計算に使っている底の変換公式も結果の横に出るので、手で確かめられます。
整数になる対数
| 底 | 真数 | 対数 |
|---|---|---|
| 10 | 100 | 2 |
| 10 | 1000 | 3 |
| 10 | 100000 | 5 |
| 2 | 8 | 3 |
| 2 | 64 | 6 |
| 2 | 1024 | 10 |
| 3 | 81 | 4 |
| 4 | 64 | 3 |
| 5 | 125 | 3 |
| 7 | 49 | 2 |
どの行も累乗です。2列目の真数は、1列目の底を3列目の対数乗したものです。だから10の5乗は100000、3の4乗は81になります。この表の本当の使い方は右から左に読むことで、真数が分かっていて指数が問いになっている形になります。行を整数にしてあるのは意図的です。小数の対数表はローカライズが必要になります。0.301030はいくつかの言語では0,301030と書くからです。整数はどこでも同じように書くので、この列は10言語すべてで同じものになります。底eの行が無いのはeが整数ではないからで、その対数は上の計算ツールの自然対数の列です。
公式
log_b(x) = ln x / ln b b^y = x ⟺ y = log_b(x)
- x
- 真数で、対数を取る対象の数です。正でなければなりません。0の対数は負の無限大へ発散し、負の数の対数は実数ですらありません。このページはどちらも、答えに見える値を印字するのではなく拒否します。
- b
- 底で、何乗する側の数です。正でなければならず、1ではいけません。1は何乗しても1のままだからです。底1で対数を持つ真数は1だけで、それは真数ではなく1についての主張なので、式が情報を運ばなくなり、ページはそう告げます。
- log_b(x)
- 入力した底での対数で、これが主の読みです。底を真数に変える指数そのものです。1,000の常用対数が3なのは、10の3乗が1,000だからです。逆に読めば、底を何回掛け合わせるかという数でもあり、だから繰り返し掛け算するものごとでは対数が自然な道具になります。
- ln x
- 自然対数で、底をeとする対数です。eはおよそ2.718281828です。入力欄の底が何であっても、eを底として計算されます。微分積分がこの対数で書かれ、関数電卓が専用のキーを割いているのもこれです。半減期も連続成長もここから直接読めます。
- lg x
- 常用対数で、底を10とする対数です。これも入力欄の底とは無関係に計算されます。桁の大きさの対数で、pH、デシベル、マグニチュードの背後にあるのがこれです。入力した底が10のときは、主の列とこの列が同じ数を印字します。それは重複ではなく、そうなることが要点です。
計算例
底10での1,000の対数
- 底10、真数1,000の常用対数
- 10 × 10 × 10 = 1,000なので、底を3回掛けたことになる
- 対数は3で、丸めた値ではなく厳密に3
- 入力した底がすでに10なので、常用対数の列も3を印字する
このページがいちばんよく開かれる場面で、対数がボタンではなく指数であることをいちばんきれいに示します。同じ真数の自然対数は6.907755で、この2つの数は競合しません。同じ事実を2つの底で数えただけで、どちらからどちらへも、新しい底の対数で割れば移れます。
底2での1,024の対数
- 底2、真数1,024の対数。コンピュータが数えるときの底
- 2倍を10回:2、4、8、16、32、64、128、256、512、1,024
- だから対数は10で、2の10乗はちょうど1,024
- 底の変換公式でも同じ:ln 1,024 ÷ ln 2 = 6.931472 ÷ 0.693147
底2の場合、対数は学校の道具ではなく数えられるものになります。答えは2倍を何回したかという数で、2進接頭辞から平衡木の深さまで、あちこちに出てくるのはそのためです。常用対数の列が3ではなく3.0103を印字している点にも注目してください。1,024は1,000より少し大きく、その「少し」を記録しているのが小数部分です。
底2での0.5の対数
- 真数が1より小さいので、対数は負になる
- 2の−1乗は1 ÷ 2 = 0.5
- 対数は厳密に−1
- ここではどの列も負で、名前の付いた2つの対数も同じ
手で計算するといちばん間違えやすい半分です。真数が1より小さいと対数は負になり、対数は真数が1のところでちょうど0を通ります。対数が0になる真数は、どの底でも1以外にありません。うさんくさい答えを確かめる最短の方法がこれです。
適用限界
真数は正の実数でなければなりません。0と負の真数は、答えるのではなく拒否します。前者は負の無限大へ発散し、後者は複素数で、どちらもこのページが印字できるものではないからです。底は正で、1であってはなりません。丸めの都合ではなく、上に書いた理由そのものです。表示は小数6桁までで、これは表示の限界であって精度の限界ではありません。背後の計算は倍精度いっぱいで走り、底の変換公式も浮動小数で計算するので、整数になるはずの対数がごくわずかにずれて出ることがあり、表示のときに丸め直します。実数専用の道具です。複素対数、複素数の真数の対数、それに付いてくる分枝切断は範囲外です。グラフを描いたり、微分や積分をしたりもしません。参考表が整数になる対数だけを載せているのも同じ理由です。小数の対数表はローカライズが必要になります。0.301030はいくつかの言語では0,301030と書くからです。整数はどこでも同じように書きます。
よくある質問
- 対数とは何か
- 底を真数に変える指数のことです。1,000の底10での対数を尋ねるのは、10を何乗すれば1,000になるかを尋ねることで、答えは3です。定義はこれで全部です。底bの対数乗はもとの真数に戻ります。積・商・累乗の規則もこの一文から出てくるので、ページは式の下に指数の形も印字しています。
- 底が1ではいけないのはなぜか
- 1は何乗しても1のままだからです。底1では、1のy乗がxに等しいという式が解を持つのはxが1のときだけで、しかもそのときはどのyでも成り立ちます。対数が1つの数になりません。計算の側からも同じことが見えます。底の変換公式で計算すると底の対数で割ることになり、1の対数はどの底でも0なので、0で割ることになります。このページは、浮動小数の割り算が出す値を返すのではなく、底1を拒否します。
- 負の数の対数は求められるのか
- 実数としては求められませんし、このページでも扱いません。負の真数の対数は複素数で、このページは実数専用です。0は別の理由で拒否します。0の対数は未定義なのではなく、真数が上から0に近づくにつれて負の無限大へ発散するからです。負の無限大はこのページが印字できる数ではありません。どちらの拒否も、原因になった真数を名指しします。
- lnとlgの違いは何か
- 同じ操作を、名前の付いた2つの底で行ったものです。lnは自然対数で底はe、eはおよそ2.718281828です。lgは常用対数で底は10です。ページは入力した底が何であっても両方を印字します。どちらかがどちらかの特別な場合ではなく、どちらも名前で求められるからです。lnは微分積分と連続成長に出てくるほうで、lgはpH、デシベル、桁の大きさで測る目盛りの背後にあるほうです。
- 同じ数が2回印字されるのはなぜか
- 入力した底が、名前の付いた対数のどちらかと一致しているからです。底が10なら主の列と常用対数の列が同じ数になり、底がeなら主の列と自然対数の列が同じ数になります。重複した計算ではなく確認です。入力した底が、頭にあった対数の底と一致していることがこれで分かります。ほかの底なら3つの数はすべて異なります。
- 対数を手で検算するにはどうするか
- 底を答えの乗にして、真数に戻るかを見ます。底2での1,024の対数は10で、2の10乗は1,024なので合っています。答えが小数のときも検算は成り立ちますが、暗算では難しくなります。そこで式の節にある底の変換公式が効いてきます。すでに手元にある2つの対数を割るほうが、指数を探すより楽だからです。
参考文献
- Logarithm — 定義、このページが計算に使っている底の変換公式、そして底と真数に課される制限 — Wolfram MathWorld (United States)
- Natural Logarithm — 底eの対数。微分積分の対数たらしめている級数と導関数つき — Wolfram MathWorld (United States)
- Common Logarithm — 底10の対数と、表と桁の大きさの対数としての歴史 — Wolfram MathWorld (United States)