对数计算器
结果
对数
- 自然对数(ln)
- 6.907755
- 常用对数(lg)
- 3.000000
对数计算器回答的是对数真正在问的那件事:底数的几次方等于这个数。填进真数与底数,页面给出的就是所填底数下的对数,同时把自然对数与常用对数一并算出,所以那两个有名字的对数不必再单独求一次。底数不固定在 10:底 2、底 e 以及任何正数底都收,而页面用来计算的那条换底公式就印在结果旁边,读者可以自己动手核对。
结果恰好是整数的对数
| 底数 | 真数 | 对数 |
|---|---|---|
| 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 |
每一行都是一个幂:第二列的真数是第一列的底数提到第三列的对数那么多次方,所以 10 的五次方是 100000、3 的四次方是 81。从右往左读才是这一页真正的用法——真数已知、指数才是问题。这些行都是整数,这是有意的:小数对数的表需要本地化,0.301030 在好几种语言里写成 0,301030,而整数到哪里都写成一个样子,所以这一列在站点服务的十种语言里完全相同。底数 e 没有行,因为 e 不是整数,它的对数是上面计算器里那一格自然对数。
公式
log_b(x) = ln x ÷ ln b b^y = x ⟺ y = log_b(x)
- x
- 真数,被取对数的那个数,必须是正数。0 的对数跑向负无穷,负数的对数不是实数,两种都拒收,而不是印一个看起来像答案的值
- b
- 底数,被乘方的那个数。它必须为正,而且不能是 1:1 的任何次方都还是 1,底数为 1 时那个方程只在真数为 1 时有解、而那时任何指数都成立,等式于是不再携带信息,页面直接把这件事说出来而不是给一个答案
- log_b(x)
- 所填底数下的对数,也是面板上的主结果。它就是「把底数变成真数所需的指数」:1000 的常用对数是 3,因为 10 的三次方是 1000。反过来读,它也是底数要自乘几次,这正是对数在一切反复相乘的场合里好用的原因
- ln x
- 自然对数,以 e 为底,e 约等于 2.718281828。无论框里填的是什么底,它都按 e 计算;微积分是用它写的,科学计算器上也专门有一个键。半衰期与连续增长都是从它身上直接读出来的
- lg x
- 常用对数,以 10 为底,同样与框里的底数无关。它是数量级的对数,pH、分贝与里氏震级背后都是它。所填的底数正好是 10 时,这一格与主结果印同一个数——那是重点而不是重复
凡是「底数的几次方是这个数」的问题都是这一页:解指数方程、把不同底的对数换算到一起、以及任何要判断数量级的场合。被要求算自然对数或常用对数时也不必另找工具,这两个格子恒在,而且不随所填的底数改变。反方向的问题——已知对数求真数——用反对数计算器,两页的底数是同一个框。底数不是 1 而真数是 1 时答案是 0,这一类边界也是这一页的活。涉及连续增长或衰变的题可以接着看指数增长计算器与半衰期计算器,那两页的对数都来自这里同一个换底公式。
算例
1000 的常用对数
- 底数是 10、真数是 1000,也就是求常用对数
- 10 × 10 × 10 = 1000,所以底数要自乘三次
- 对数是 3,而且是精确值而不是舍入过的
- 常用对数那一格也印 3,因为填的底数本来就是 10
这一页被打开得最多的一格,也是「对数是一个指数、不是一个按钮」最干净的一次演示。同一个真数的自然对数是 6.907755,两个数不是竞争关系:它们用两种底数数同一件事,任何一个都能换算成另一个——除以新底数的对数就行。
1024 的以 2 为底的对数
- 底数是 2、真数是 1024,也就是计算机数数用的那种底
- 连续翻倍十次:2、4、8、16、32、64、128、256、512、1024
- 所以对数是 10,而 2 的十次方正好是 1024
- 换底公式给出同一个结果:ln 1024 ÷ ln 2 = 6.931472 ÷ 0.693147
底为 2 的那一格是对数从课堂上的东西变成可以数的东西的地方:答案就是翻倍了几次,二进制前缀到平衡树的深度里出现的都是它。注意常用对数那一格印 3.0103 而不是 3——1024 比一千多一点,而那一点正是小数部分记下来的东西。
0.5 的以 2 为底的对数
- 真数小于 1,所以对数是负数
- 2 的 −1 次方是 1 ÷ 2 = 0.5
- 对数是精确的 −1
- 三格在这里全是负数,两个有名字的对数也不例外
手算最容易错的那一半:真数小于 1 时对数为负,而真数等于 1 时对数正好穿过 0。任何底数下都没有别的真数能让对数为零,这是检验一个可疑答案最快的办法。
局限
真数必须是正实数。0 与负数一律拒收而不是给答案:前者跑向负无穷,后者是复数,两个都不是这一页印得出来的东西。底数必须为正且不能是 1,理由是上面说过的那条而不是为了把定义域收窄一点。结果印六位小数,那是显示的界限而不是精度的界限——背后的算术是完整的双精度,而换底公式在浮点下做除法,所以本该是整数的对数可能算出差一点点,显示时被舍回去。这是一个实数工具:复对数、复真数的对数以及随之而来的支割线都在它之外。它也不画图、不求导、不积分,而参考表里只列结果恰好为整数的对数——小数对数的表需要本地化,0.301030 在好几种语言里写成 0,301030,而整数到哪里都写成一个样子。
常见问题
- 什么是对数?
- 它是把底数变成真数所需的那个指数。问 1000 的常用对数是多少,问的就是 10 要乘几次方才能得到 1000,答案是 3。这就是全部定义:底数的「以该底为底的对数」次方等于真数。对数关于积、商与幂的运算法则都是从这一句话推出来的,所以页面把指数形式印在公式下面。
- 底数为什么不能是 1?
- 因为 1 的任何次方都还是 1。底数为 1 时方程「1 的 y 次方等于真数」只在真数为 1 时有解,而那时任何 y 都成立,对数值于是不是一个数。换底公式从另一个方向说明同一件事:它要除以底数的对数,而任何底数下 1 的对数都是 0,除数为零。页面直接拒收底数 1,而不是把浮点除法的结果印出来。
- 负数可以取对数吗?
- 作为实数不可以,这一页也不收。负真数的对数是复数,而这是一个实数工具。0 被拒收的理由不同:0 的对数不是没有定义,而是没有上界——真数从正的一侧趋近 0 时对数跑向负无穷,而负无穷不是一个能印出来的数。两种拒收都会指名是哪个真数引起的。
- ln 与 lg 有什么区别?
- 它们是同一个运算在两个有名字的底数下的样子。ln 是自然对数,以 e 为底,e 约等于 2.718281828;lg 是常用对数,以 10 为底。无论填什么底数,页面都会把两个都印出来,因为它们谁也不包含谁、而且都是被人按名字问起的。微积分与连续增长里出现的是 ln,pH、分贝以及一切按数量级计的标度背后是 lg。
- 页面为什么把同一个数印两遍?
- 因为填的底数正好是那两个有名字的对数之一。底数填 10 时主结果与常用对数那一格是同一个数,填 e 时主结果与自然对数那一格相同。那不是重复计算,而是一次确认:读者由此看出自己填的底正是心里那个对数的底。换任何别的底数,三格就是三个不同的数。
- 怎么手算校验一个对数?
- 把底数提到答案那么多次方,看能不能得到真数。1024 的以 2 为底的对数是 10,而 2 的十次方是 1024,对上了。答案是小数时同样能验,只是心算更难,这正是公式区那条换底公式的价值所在:把两个已经拿在手里的对数相除,比去搜那个指数容易得多。
参考资料
- Logarithm — 对数的定义、本页用来计算的换底公式,以及底数与真数上的定义域限制 — Wolfram MathWorld(美国)
- Natural Logarithm — 以 e 为底的对数,包括让它成为微积分的对数的那个级数与导数 — Wolfram MathWorld(美国)
- Common Logarithm — 以 10 为底的对数,以及它作为对数表与数量级的对数的历史 — Wolfram MathWorld(美国)