反对数计算器
结果
真数
反对数计算器把对数反过来算一遍。给它一个对数与一个底数,它回答的是那个对数本来是从哪个数来的——也就是真数,底数要乘到那一次方才能得到的那个值。1000 的常用对数是 3,所以 3 的常用反对数是 1000;两页互为逆运算,用同一个底数框。因为指数可以是负数或小数,答案并不总是整齐的数:2.5 的常用反对数是 316.227766,页面把它印到六位小数。负指数是常见的一半情形而不是特例,它给出来的是小于 1 的真数。
对数与它对应的真数
| 底数 | 对数 | 真数 |
|---|---|---|
| 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 |
每一行都是一个幂,按这一页的方向读:第三列的真数是第一列的底数提到第二列的对数那么多次方。它与对数那一页的表是同一件事反着读——10 的三次方是 1000,两个方向都一样。这些行都是整数,这是有意的:小数对数的表需要本地化,0.301030 在好几种语言里写成 0,301030,而整数到哪里都写成一个样子,所以这一列在站点服务的十种语言里是同一个串。底数 e 没有行,因为 e 不是整数,它的逆运算是指数函数而不是某个整数底数的幂。
公式
x = b^y (b 是底数,y 是对数,x 是真数)
- y
- 对数,你手上那个指数。−1000 到 1000 之间的任何值都收,而负数不是特殊情况:底数 10 的 −2 次方是 0.01,一个小于 1 的答案,那正是负对数该有的意思。小数指数也收,结果通常是一个无理数
- b
- 底数,被乘方的那个数。它必须为正,而且不能是 1。底数 1 在这里失败得比在对数那一页更糟:反过来算的时候,1 的任何次方都安静地返回 1,没有这个守卫的计算器会对每一个输入的对数都印出真数 1。小于 1 的底数照收,它描述的是衰减而不是增长
- b^y
- 幂本身,也就是这一页执行的那一步运算。页面做的事就是一次乘方,外加两道判断结果能不能印出来的溢出检查。把底数提到指数那么多次方,等同于把底数沿着一条幂的数轴往上推,所以指数上一个不大的变化会让答案变化很多
- x
- 真数,原来那个对数所取自的数,也是这一页唯一的输出。它恒为正,因为正数的任何次方都是正的——所以与对数那一页不同,这里没有零或负数要拒收。输入的对数正好是 0 时真数是 1,任何底数下都如此,因为任何数的零次方都是 1
凡是从对数值回到原数的时候都是这一页:查反对数表、把回归或标度变换之后的结果还原回原来的量、以及解那些以指数形式给出答案的方程。它也收底数小于 1 的情形,所以衰减模型里反解出来的真数同样算得出来。正方向的问题——已知真数求对数——用对数计算器,两页的底数是同一个框,答案互为逆运算。只想算一个幂、对数的来历不是重点时改用幂运算计算器,那一页能算任意指数的幂并且把乘方展开写出来;而增长模型里反解期数的情况可以接着看指数增长计算器。
算例
3 的常用反对数
- 把底数提到对数那么多次方:10 的三次方
- 10 × 10 × 10 = 1000
- 真数是精确的 1000
- 与对数那一页对账:1000 的常用对数是 3
两页的互逆关系在这里最好看。对数计算器收 1000 给出 3,这一页收 3 给出 1000,两个答案都不是近似值,而核对只是往任一方向做一次乘方。题目递给你的是两个数里的哪一个,都能到达另一个。
负对数的反对数
- 负指数意味着取对应正次方的倒数
- 10 的 2 次方是 100,所以 10 的 −2 次方是 1 ÷ 100
- 真数是 0.01
- 真数小于 1 永远意味着那个对数是负的
反对数被问到的事情里的一半,也是手算最容易做错的那一半。任何负对数都给出介于 0 与 1 之间的真数——不会是零、也不会是负数,因为正底数的任何次方都到不了那两个地方。真数正好等于 1 的那条线,对应对数等于零。
小数对数的反对数
- 把指数拆开:10 的 2.5 次方是 10 的平方乘以 10 的平方根
- 10 的平方是 100,10 的平方根约等于 3.162278
- 100 × 3.162278 = 316.227766
- 精确值是无理数,所以答案舍入到六位小数
这一格把「对数表」与「对数」区分开:2.5 不是整数,所以反对数也不是整数。精确地写它是 100√10,一个无理数,多少位小数都写不完。印出来的六位是显示的界限,不是那个值本身。
局限
底数必须为正且不能是 1,理由见上:朝这个方向算时,底数 1 会对每个输入都安静地返回 1,那是这一页最需要避免的失败方式。对数被限制在正负一千之间。超出这个范围,真数会超过双精度算术能表示的量级——大约 1e308——所以页面拒收而不是印一个 Infinity。同一条限制的另一头更要紧:底数 1e−15 的 100 次方在浮点里下溢成零,而零看起来是一个完全正常的答案,尽管没有任何对数以零为真数。那次下溢同样被拒收。结果舍入到六位小数显示。小于 1 的底数照收并给出小于 1 的真数,那是衰减的情形而不是错误。负底数一律拒收:负底数的整数次方是实数,但负底数的小数次方不是,而这一页收小数指数,所以两种都不收。
常见问题
- 什么是反对数?
- 它就是某个对数原来所取自的那个数。1000 的常用对数是 3,所以 3 的常用反对数是 1000。写成公式,y 在底数 b 下的反对数是 b 的 y 次方。这个名字来自印刷的对数表:读者朝一个方向查对数,朝另一个方向查它的反对数。
- 反对数与「对数的逆运算」是一回事吗?
- 是一回事,而「对数的逆运算」这个说法更说明问题:两个运算互相抵消,所以先取对数再取它的逆运算,会回到一开始那个数。实际使用中,常用对数的逆运算写成 10 的 x 次方,自然对数的逆运算写成 e 的 x 次方。这一页对任意底数都算这个逆运算,不只那两个有名字的。
- 对数是负数时会怎样?
- 真数落在 0 与 1 之间。负指数意味着取对应正次方的倒数,所以 −2 的常用反对数是 1 ÷ 100,也就是 0.01。这不是需要单独处理的边界情形——它就是指数的普通行为,也是反对数唯一能给出很小的答案的途径。
- 底数为什么不能是 1?
- 因为 1 的任何次方都是 1,方程对这个真数就无解。这个失败朝这个方向算比在对数那一页更糟:计算「1 的 y 次方」根本不会报错,它安静地返回 1,于是页面会对每一个输入的对数都印出真数 1。那道守卫就是用来拦住这件事的。
- 很小的底数为什么会被拒收?
- 因为算术下溢了。底数 1e−15 的 100 次方远低于双精度算术能表示的最小正数,算出来的结果是零——而零看起来是一个完全合理的答案,事实上却没有任何对数以零为真数。页面拒收这个输入,而不是印一个看起来正常的错数。
- 真数可能是负数吗?
- 不可能。正数的任何次方都是正的,所以任何对数的真数都是正的,它的反对数也一定是。页面靠构造而不是靠检查输出来保证这件事——那些会破坏它的输入,也就是非正的底数或等于 1 的底数,在乘方发生之前就已经被拒收了。
参考资料
- Antilogarithm — 对数的逆运算,来自反对数还要查印刷表的那个年代 — Wolfram MathWorld(美国)
- Exponentiation — 这一页那一步运算背后的运算,包括负指数与小数指数的行为 — Wolfram MathWorld(美国)
- Inverse Function — 对数与反对数这一对所属的一般概念,以及为什么两个方向都只有一步 — Wolfram MathWorld(美国)