逆対数計算
計算結果
逆対数
逆対数とは、対数を逆にたどる計算です。対数と底を入れると、その対数がもともと何の数から取られたのか、つまり底をその回数だけ掛け合わせてできる数が返ってきます。底10における1,000の対数は3なので、底10における3の逆対数は1,000になります。2つのページは互いの逆演算で、底の入力欄は共通です。指数は負にも小数にもなるため、答えが必ずしもきりのよい数になるとは限りません。底10における2.5の逆対数は316.227766で、このページは小数6桁まで表示します。
対数と、その対数がもとになった真数
| 底 | 対数 | 真数 |
|---|---|---|
| 10 | 2 | 100 |
| 10 | 3 | 1000 |
| 10 | 5 | 100000 |
| 2 | 8 | 256 |
| 2 | 10 | 1024 |
| 3 | 4 | 81 |
| 4 | 3 | 64 |
| 5 | 3 | 125 |
| 7 | 2 | 49 |
どの行も1つの累乗を、このページが働く向きに読んだものです。3列目の真数は、1列目の底を2列目の対数だけ累乗した数になります。対数のページの表と同じ事実を逆向きに読んだだけで、10の3乗は1000のままです。行が整数なのは意図的です。小数の対数の表は言語ごとに書き分けが要ります。0.301030は多くの言語で0,301030と書かれるからです。整数ならどこでも同じ字になり、この列は10の言語すべてで同じ文字列になります。底eの行がないのは、eが整数でないからです。その逆算は累乗ではなく指数関数になります。
公式
x = b^y (b = 底、y = 対数、x = 真数)
- y
- 対数で、出発点になる指数です。−1,000から1,000までの値を受け付けます。負の値は特別扱いではありません。底10における指数−2は0.01を返し、これは1より小さい答えです。負の対数とはそういう意味です。小数の指数も受け付け、その場合はふつう無理数になります。
- b
- 底で、累乗される側の数です。正でなければならず、1であってはなりません。底1は対数のページより厄介な形で失敗します。逆向きに計算すると1の何乗も黙って1を返すので、このガードがない計算機はどの対数を入れても真数として1を印字してしまいます。1より小さい底も受け付け、その場合は増加ではなく減衰を表します。
- b^y
- 累乗そのもので、このページが行う操作です。やっていることは1回のべき乗と、その結果を印字できる数かどうか決める2つのオーバーフロー判定だけです。底を指数の回数だけ掛けるというのは、底を累乗の数直線上で押し上げることと同じで、指数が少し変わるだけで答えが大きく動くのはそのためです。
- x
- 真数で、もとの対数が取られた数、このページの唯一の出力です。正の底を何乗しても正なので、真数はつねに正になります。したがって対数のページと違い、ゼロや負のケースを断る必要はありません。入れた対数がちょうど0のときは、どの底でも真数は1になります。どんな数でも0乗は1だからです。
計算例
底10における3の逆対数
- 底を対数の回数だけ累乗する:10の3乗
- 10 × 10 × 10 = 1,000
- 真数はちょうど1,000
- 対数のページで検算:底10における1,000の対数は3
2つのページの関係がいちばん分かりやすく出るのがここです。対数の計算機は1,000を受け取って3を返し、このページは3を受け取って1,000を返します。どちらの答えも近似ではなく、検算はどちらの向きでも1回のべき乗で済みます。問題がどちらの数を渡してきても、もう一方にたどり着けます。
負の対数の逆対数
- 指数が負なら、正の累乗の逆数になる
- 10の2乗は100なので、10の−2乗は1 ÷ 100
- 真数は0.01
- 真数が1より小さいときは、対数が負だったということ
逆対数が求められる場面の半分で、しかも手計算でいちばん間違えやすい半分です。負の対数はつねに0と1のあいだの真数を与え、0にも負にもなりません。正の底のどんな累乗もそこには届かないからです。真数がちょうど1になるのが境目で、それは対数がゼロの場合に対応します。
小数の対数の逆対数
- 指数を分ける:10の2.5乗は10の2乗かける10の平方根
- 10の2乗は100、10の平方根は約3.162278
- 100 × 3.162278 = 316.227766
- 厳密な値は無理数なので、小数6桁に丸めている
対数表と対数そのものを分けるケースです。2.5は整数ではないので、逆対数も整数にはなりません。厳密に書くと100√10という無理数で、小数を何桁並べても終わりません。表示される6桁は表示の上限であって、値そのものではありません。
適用限界
底は正でなければならず、1であってはなりません。理由は上に書いたとおりで、この向きに計算すると底1はどの入力に対しても黙って1を返し、それがこのページでいちばん避けたい失敗だからです。対数は±1,000までに限られます。その範囲を外れると真数が倍精度で表せる上限、およそ1e308を超えてしまうため、このページはInfinityを印字せずに断ります。同じ限界のもう一端のほうが重要です。底1e−15の100乗は浮動小数点ではゼロに下溢し、ゼロはごく普通の答えに見えますが、真数がゼロになる対数は存在しません。その下溢も断ります。表示は小数6桁に丸めます。1より小さい底も受け付け、1より小さい真数を返します。これは誤りではなく減衰の場合です。負の底は受け付けません。負の底の整数乗は実数ですが、負の底の小数乗は実数にならず、このページは小数の指数を扱うので、どちらも取らないという判断です。
よくある質問
- 逆対数とは何か
- 対数を取る前の数のことです。底10における1,000の対数は3なので、底10における3の逆対数は1,000になります。式で書くと、底bにおけるyの逆対数はbのy乗です。名前は印刷された対数表に由来し、読者は片方の向きに対数を、もう片方の向きに逆対数を引いていました。
- 逆対数は対数の逆算と同じものか
- 同じです。逆算のほうが説明的な名前で、2つの操作は互いを打ち消すので、対数を取ってから逆算すると最初の数に戻ります。実際には底10の対数の逆算は10のx乗、自然対数の逆算はeのx乗と書きます。このページはその2つに限らず、任意の底で逆算を計算します。
- 対数が負のときはどうなるのか
- 真数は0と1のあいだになります。指数が負なら、対応する正の累乗の逆数になるので、底10における−2の逆対数は1 ÷ 100、つまり0.01です。これは別扱いが必要な例外ではなく指数のごく普通の振る舞いで、逆対数が小さな答えを出す唯一の経路でもあります。
- 底が1ではいけないのはなぜか
- 1は何乗しても1なので、特定の真数について方程式が解けないからです。この向きでは失敗が対数のページより厄介になります。1のy乗はエラーにならず黙って1を返すので、ガードがなければどの対数を入れても真数として1を印字してしまいます。それを止めるためにこの判定があります。
- とても小さい底が断られるのはなぜか
- 計算が下溢するからです。底1e−15の100乗は倍精度で扱える最小の正の数をはるかに下回るため、計算結果はゼロになります。そしてゼロはごく普通の答えに見えますが、真数がゼロになる対数は1つもありません。このページは、正常に見える誤った数を印字する代わりに入力を断ります。
- 真数が負になることはあるか
- ありません。正の底を何乗しても正なので、どんな対数の真数も正であり、その逆対数も正でなければなりません。このページは出力を検査するのではなく、構造としてそれを保証しています。壊す原因になる入力、つまり正でない底や1の底は、べき乗を行う前に断られます。
参考文献
- Antilogarithm — 対数の逆演算。逆対数を印刷された表から引いていた時代の名残でもある — Wolfram MathWorld (United States)
- Exponentiation — このページが行う1ステップの中身。負の指数と小数の指数の振る舞いを含む — Wolfram MathWorld (United States)
- Inverse Function — 対数と逆対数の組がその一例になっている一般的な考え方と、どちらの向きも1ステップで済む理由 — Wolfram MathWorld (United States)