对数

在数学中，对数（logarithm）是幂运算的逆运算。

## 定义

当$x=\beta^y$时，则有

$$y=\log_\beta x\!$$

其中$\beta$是对数的底（也称为基数），而 $y$就是$x$（对于底数$\beta$）的对数，$x$也称为真数。

底数$\beta$的值在实数范围内常取$e$、 10、2等，但一定不能是1或0

当$x$和$\beta$进一步限制为正实数的时候，对数是唯一的实数。

例如，因为

$3^4 = 3 \times 3 \times 3 \times 3=81$。

我们可以得出

$4=\log_3 81\!$。

用日常语言说，即“81以3为底的对数是4”。这个意思就是说，81是3的4次方。

## 历史

### 对数

15世纪时，法国数学家尼古拉·许凯和德国数学家米夏埃尔·施蒂费尔在开展研究工作时产生了发展对数的思想，他们，尤其是后者，对等差数列和等比数列的关系作了一些研究。但他们并没有使其得到更进一步的发展。

一般认为对数于16世纪末至17世纪初期间由苏格兰数学家约翰·纳皮尔男爵和瑞士工程师约斯特·比尔吉发明。比尔吉曾担任过著名天文学家开普勒的助手，因此会经常接触到复杂的天文计算，他也因此产生了化简数值计算的想法。纳皮尔是一位苏格兰贵族，对数值的计算有很深的研究。为了找到简化球面三角计算的方法，他也产生了发展对数的想法。1614年，他在自己的书籍《奇妙的对数表的描述》上发布了自己的对数表，相较比尔吉早了6年。纳皮尔发明的纳皮尔算筹用加减法代替了乘除法，成功简化了乘除法的运算，他的对数被后人称为纳皮尔对数，记法为Nap·logx。

1624年，英国数学家亨利·布里格斯书籍《对数算术》成功出版，书中写有14位常用对数表。布里格斯率先采用了以10为底的常用对数，而现在它已通用。他还制作了正弦和正切的对数表。荷兰数学家兼出版商在布里格斯的基础上加以改进，他出版的数个对数表在欧洲迅速普及起来。

17世纪中叶（清朝初年），中国数学家薛凤祚和波兰传教士穆尼阁合作完成了中国最早的对数著作《比例对数表》（又名《历学会通》），对数自此传入中国。此书称真数为“原数”，对数为“比例数”。而《数理精蕴》中则称作对数比例：“对数比例乃西士若往·纳白尔所作，以借数与真数对列成表，故名对数表。”中国因此普遍称之为“对数”。

对数对科学的进步有所贡献，特别是对天文学，使某些繁难的乘法计算转换为加法计算。在计算器和计算机发明之前，对数长期用于测量、航海、和其他应用数学分支中。

### 符号

对数符号$\log$出自拉丁文logarithmus，最早由1632年意大利数学家卡瓦列里所使用。纳皮尔在表示对数时套用logarithm整个词，并未作简化。1624年，开普勒才把对数符号简化为$\log$，奥特雷德在1647年也用简化了的Log。

1893年，皮亚诺用$\ln x$及$\lg x$分别表示以$e$为底的对数和以10为底的对数。1902年，奥托·施托尔茨等人以$a \log . b$表示以$a$为底的$b$的对数。

20世纪初，形成了对数的现代标准表示$\log_\alpha\Nu$，为了使用方便，自然对数$\ln N$的记法得到了普遍认可。

## 对数函数

函数$\log_\alpha x$依赖于$\alpha$和$x$二者，但是术语对数函数在标准用法中用来称呼形如$\log_\alpha x$的函数，在其中底数$\alpha$是固定的而只有一个参数$\alpha$。对每个基$\alpha=|R|\ne0,1$的值（不得是负数、0或1）只有唯一的对数函数。从这个角度看，底数$\alpha$的对数函数是指数函数$y=\alpha^x$的反函数。词语“对数”经常用来称呼对数函数自身和这个函数的1个特定值。

对数函数图像和指数函数图像关于直线$y=x$对称，互为逆函数。

对数函数的性质有：

- 都过$(1,0)$点。
- $x=0$即y轴为其垂直渐近线。
- 定义域为$(0,+\infty)$，值域为$\mathbb{R}$。
- $\alpha >1$，在$(0,+\infty)$上是增函数；$1>\alpha>0$时，在$(0,+\infty)$上是减函数。
- 当 $0<\alpha<e^{-e}$时和$y=\alpha^x$交于三点；$e^{-e}<\alpha<1$时交于一点；$1<\alpha<e^{\frac{1}{e}}$时交于两点；$\alpha=e^{\frac{1}{e}}$时交于一点；$\alpha>e^{\frac{1}{e}}$时则无交点。

## 运算公式

名称｜公式｜证明

和差｜$\log_\alpha M N= \log_\alpha\!M+\log_\alpha\!N$｜设$M=\beta^{m}$，$N=\beta^n$ $\begin{align} \log_\alpha\ M\!N&=\log_\alpha\ \beta^m\!\beta^n\\ &=\log_\alpha\ \beta^{m+n}\\ &=(m+n)\log_\alpha\!\beta\\ &=m\log_\alpha\!\beta+n\log_\alpha\!\beta\\ &=\log_\alpha\ \beta^m+\log_\alpha\ \beta^n\\ &=\log_\alpha\!M+\log_\alpha\!N\\ \log_\alpha\!\frac{M}{N}&=\log_\alpha\!M+\log_\alpha\!\frac{1}{N}\\ &=\log_\alpha\!M-\log_\alpha\!N \end{align}$

基变换（换底公式）｜$\log_\alpha\!x=\frac{\log_\beta\!x}{\log_\beta\!\alpha}$｜;设 $\log_\alpha\!x=t$ ;∴$x=\alpha^{t}$ ;对其两边取对数，则有$\log_\beta x=\log_\beta \alpha^{t}$ ;即 $\log_\beta x = t \log_\beta \alpha$ ;又∵ $\log_\alpha x=t$ ;∴ $\log_\alpha x=\frac{\log_\beta\!x}{\log_\beta \alpha}$

指系(次方公式)｜$\log_{\alpha^n} x^m =\frac{m}{n}\log_\alpha\!x$｜$\begin{align} \log_{\alpha^n}\ {x^m}&=\frac{\ln\ x^m}{\ln\ \alpha^n}\\ &=\frac{m\ln\!x}{n\ln\!\alpha}\\ &=\frac{m}{n}\log_\alpha\!x \end{align}$

还原｜$\begin{align} \alpha^{\log_\alpha\!x}&=\log_\alpha\!\alpha^x \end{align}$｜$\begin{align} \alpha^{\log_\alpha\!x}&=x\\ &=\log_\alpha\!\alpha^x \end{align}$

互换｜$M^{\log_\alpha\!N}=N^{\log_\alpha\!M}$｜;设 $b = {\log_\alpha\!N}$,$c = {\log_\alpha\!M}$ ;则有 $N=\alpha^b$,$M=\alpha^c$ ;即 $M^{\log_\alpha\!N}=(\alpha^c)^b$,$N^{\log_\alpha\!M}=(\alpha^b)^c$

倒数｜$\log_\alpha\!\theta=\frac{1}{\log_\theta\!\alpha}$｜$\begin{align} \log_\alpha\!\theta&=\dfrac{1}{\dfrac{\ln\!\alpha}{\ln\!\theta}}\\ &=\frac{1}{\log_\theta\!\alpha} \end{align}$

链式｜$\begin{align} \log_\gamma\!\beta\log_\beta\!\alpha&=\log_\gamma\!\alpha \end{align}$｜$\begin{align} \log_\gamma\!\beta\log_\beta\!\alpha&=\frac{\ln\!\alpha}{\ln\!\beta}\ \frac{\ln\!\beta}{\ln\!\gamma}\\ &=\frac{\ln\!\alpha}{\ln\!\gamma}\\ &=\log_\gamma\!\alpha \end{align}$

## 有理和无理指数

如果$n$是自然数，${\beta}^n$表示等于$\beta$的$n$个因子的乘积：

${\beta}^n=\underbrace{\beta\times\beta\times\cdots\times\beta}_n$。

但是，如果$\beta$是不等于1的正实数，这个定义可以扩展到在一个域中的任何实数$n$（参见幂）。类似的，对数函数可以定义于任何正实数。对于不等于1的每个正底数$\beta$，有一个对数函数和一个指数函数，它们互为反函数。

对数可以简化乘法运算为加法，除法为减法，幂运算为乘法，根运算为除法。所以，在发明电子计算机之前，对数对进行冗长的数值运算是很有用的，它们广泛的用于天文、工程、航海和测绘等领域中。它们有重要的数学性质而在今天仍在广泛使用中。

## 特殊底数

最常用做底数的是e、10和2。

在数学分析中，以$e$为底对数很常见。另一方面，以10为底对数在十进制表示法中，手工计算很容易：

$$\log_{10} 10 x = \log_{10} 10 + \log_{10} x = 1 + \log_{10} x.\ $$

所以$\log_{10} x$表示正整数$x$的位数：数字的十进制位数是严格大于$\log_{10} x$的最小的整数。例如$\log_{10} 1430\approx 3.15$，下一个整数是4，即1430的位数。

以2为底的对数常用于计算机科学，因为计算机中二进制很普及。当然上面的算法也可推广到二进制：严格大于$\log_2 x$的最小整数是$x$在二进制下的位数。事实上经由简单推导即可得知，floor(logpx)+1 得到$x$在$p$进制下的位数：若$x$在$p$进制下有$n$位，则$p^{n-1}\leq x <p^n$；而$p$是不小于 2 的正整数导致以其为底的$\log_p x$是增函数，故三边取对数得$n-1 \leq \log_p x < n$，取下整正好得到$n-1$。

下表列出了这些底数的常用的对数符号以及他们所使用的领域。许多学科都写$\log (x)$来代替$\log_b (x)$，而$b$的值根据前后文可以确定。记号$^b\log(x)$也出现过。“ISO表示法”（ISO 31-11）一列指定了ISO推荐的表示方法。

底数$b$｜$\log_b x$的名称｜ISO表示法｜其它的表示方法｜适用领域

2｜二进制对数｜$\operatorname{lb} x$｜$\log x$、$\operatorname{lg} x$｜计算机科学、信息论、数学

$e$｜自然对数｜$\ln x$｜$\log x$（用于数学和许多程序设计语言）｜数学分析、物理学、化学统计学、经济学和其它工程领域

10｜常用对数｜$\operatorname{lg} x$｜$\log x$（用于工程学、生物学、天文学）｜多种工程学领域 （见分贝）、对数表、手持式计算器、光谱学

## 底数变换

尽管有很多有用的恒等式，对计算器最重要的是找到不是建造于计算器内的底数（通常是$\log_e$和$\log_{10}$）的其他底数的对数。要使用其他底数$\beta$找到底数$\alpha$的对数:

$\log_\alpha x=\frac{\log_\beta x}{\log_\beta\alpha}$。

此外，这个结果蕴涵了所有对数函数（任意底数）都是相互类似的。所以用计算器计算对134217728底数2的对数:

$\log_2134217728=\frac{\ln134217728}{\ln2}=\frac{27\ln2}{\ln2}=27$。

## 对数的用途

对数对解幂是未知的方程是有用的。它们有简单的导数，所以它们经常用在解积分中。对数是三个相关的函数中的一个。在等式$b^n=x$中，$b$可以从$x$的$n$次方根，$n$从$x$的$b$底数的对数，$x$从$b$的$n$次的幂来确定。参见对数恒等式得到掌控对数函数的一些规则。

### 简便计算

对数把注意力从平常的数转移到了幂。只要使用相同的底数，就会使特定运算更容易：

数的运算｜幂的运算｜对数恒等式

$\,xy$｜$\,m+n$｜$\,\log_{\theta}xy=\log_{\theta}x+\log_{\theta}y$

$\frac{x}{y}$｜$\,m-n$｜$\log_{\theta}\frac{x}{y}=\log_{\theta}x-\log_{\theta}y$

$\,x^y$｜$\,mn$｜$\,\log_{\theta}x^y=y\log_{\theta}x$

$\sqrt[y]{x}$｜$\frac{m}{n}$｜$\log_{\theta}\sqrt[y]{x}=\frac{\log_{\theta}x}{y}$

这些关系使在两个数上的这种运算更快。

## 群论

从纯数学的观点来看，恒等式：

$\log_\alpha\Mu\Nu=\log_\alpha\Mu+\log_\alpha\Nu\!$。

在两种意义上是基本的。首先，其他3个算术性质可以从它得出。进一步的，它表达了在正实数的乘法群和所有实数的加法群之间的同构。

对数函数是从正实数的乘法群到实数的加法群的唯一连续同构。

## 复对数

复对数计算公式：

$$\log_{c+di}(a+bi) =\frac{\ln\left(a^2+b^2\right)\cdot\ln\left(c^2+d^2\right)+4\left(\arctan\frac{b}{a}+2k\pi\right) \left(\arctan\frac{d}{c}+2n\pi\right) +\left[2\left(\arctan\frac{b}{a}+2k\pi\right)\ln\left(c^2+d^2\right)-2\left(\arctan\frac{d}{c}+2n\pi\right)\ln\left(a^2+b^2\right)\right]i}{\ln^2\left(c^2+d^2\right)+4\left(\arctan\frac{d}{c}+2n\pi\right)^2}$$

$$(a+bi)^{\left(c+di\right)}=e^{\frac{c}{2}\ln\left(a^2+b^2\right)-\left(d+2n\pi\right)\left(\arctan\frac{b}{a}+2k\pi\right)}\left\{\cos \left[c\left(\arctan\frac{b}{a}+2k\pi\right)+\frac{1}{2}\left(d+2n\pi\right)\ln\left(a^2+b^2\right)\right] +i\sin\left[c\left(\arctan\frac{b}{a}+2k\pi\right)+\frac{1}{2}\left(d+2n\pi\right)\ln\left(a^2+b^2\right)\right]\right\}$$

$$\begin{cases} <pre> \arctan0={\pi}, & \mbox{for }a < 0\!\, \\ \arctan0=0, & \mbox{for }a > 0\!\, \\ </pre> \end{cases}$$

$$\mathbb{Z}=\{k,n\}$$

## 微积分

自然对数函数的导数是

$\frac{\rm{d}} {{\rm{d}}x} \ln \left| x \right| = \frac{1}{x}$。

通过应用换底规则，其他底数的导数是

$\frac{\rm{d}}{{\rm{d}}x} \log_b x = \frac{\rm{d}}{{\rm{d}}x} \frac {\ln x}{\ln b} = \frac{1}{x \ln b}$。

自然对数$\ln x\,$的不定积分是

$$\int \ln x \,{\rm{d}}x = x \ln x - x + C,$$

而其他底数对数的不定积分是

$\int \log_b x \,{\rm{d}}x = x \log_b x - \frac{x}{\ln b} + C = x \log_b \frac{x}{e} + C$。

## 计算自然对数的级数

有一些级数用来计算自然对数。最简单和低效的是:

$\ln z=\sum_{n=1}^\infty\frac{-{(-1)}^n}{n}(z-1)^n$当$|z-1|<1\!$。

下做推导：

由

$\frac{1}{1-x} = 1 + x + x^2 + x^3 + \cdots$。

在两边积分得到

$$-\ln(1-x)=x+\frac{x^2}{2}+\frac{x^3}{3}+\cdots$$

$\ln(1-x)=-x-\frac{x^2}{2}-\frac{x^3}{3}-\frac{x^4}{4}-\cdots$。

设$z=1-x\!$并因此$x=-(z-1)\!$，得到

$$\ln z=(z-1)-\frac{(z-1)^2}{2}+\frac{(z-1)^3}{3}-\frac{(z-1)^4}{4}+\cdots$$

更有效率的级数是基于反双曲函数的

$$\ln z=2\sum_{n=0}^\infty\frac{1}{2n+1}\left(\frac{z-1}{z+1}\right)^{2n+1}$$

对带有正实部的$z$。

推导：代换$-x$为$x$，得到

$\ln(1+x)=x-\frac{x^2}{2}+\frac{x^3}{3}-\frac{x^4}{4}+\cdots$。

做减法，得到

$\ln\frac{1+x}{1-x}=\ln(1+x)-\ln(1-x)=2x+2\frac{x^3}{3}+2\frac{x^5}{5}+\cdots$。

设$z=\frac{1+x}{1-x} \!$并因此$x = \frac{z-1}{z+1} \!$，得到

$\ln z=2\left[\frac{z-1}{z+1}+\frac{1}{3}{\left(\frac{z-1}{z+1}\right)}^3+\frac{1}{5}{\left(\frac{z-1}{z+1}\right)}^5 + \cdots\right]$。

例如，应用这个级数于

$$z=\frac{11}{9},$$

得到

$$\frac{z-1}{z+1}=\frac{\frac{11}{9}-1}{\frac{11}{9}+1}=\frac{1}{10},$$

并因此

$$\ln1.\dot{2}=\frac{1}{5}\left(1+\frac{1}{3\cdot100}+\frac{1}{5\cdot10000}+\frac{1}{7\cdot1000000}+\cdots\right)$$

$$=0.2\cdot(1.0000000\dots+0.00\dot{3}+0.00002+0.000000\dot{1}4285\dot{7}+\cdots)$$

$$=0.2\cdot1.00335\cdots=0.200670\cdots$$

在这里我们在第一行的总和中提出了因数$\frac{1}{10}$。

对于任何其他底数$\beta$，我们使用

$\log_\beta x=\frac{\ln x}{\ln\beta}$。

## 计算机

多数计算机语言把$\log(x)$用做自然对数，而常用对数典型的指示为log10(x)。参数和返回值典型的是浮点数据类型。

因为参数是浮点数，可以有用的做如下考虑：

浮点数值$x$被表示为尾数$m$和指数$n$所形成的

$x = m2^n$。

因此

$\ln(x) = \ln(m) + n\ln(2)$。

所以，替代计算$\ln(x)$，我们计算对某个$m$的$\ln(m)$使得$1\leq m \leq 2$。有在这个范围内的$m$意味着值$u = \frac{m - 1}{m+1}$总是在范围$0 \le u < \frac13$内。某些机器使用在范围$0.5 \le m < 1$内的尾数，并且在这个情况下$u$的值将在范围$-\frac13 < u \le 0$内。在任何一种情况下，这个级数都是更容易计算的。

## 一般化

普通的正实数的对数一般化为负数和复数参数，尽管它是多值函数，需要终止在分支点0上的分支切割，来制作一个普通函数或主分支。复数$z$的（底数$e$）的对数是复数$\ln (\left \vert z \right \vert) + i \arg (z)$，这里的$\left \vert z \right \vert$是$z$的模，$\arg (z)$是辐角，而$i$是虚单位；详情参见复对数。

离散对数是在有限群理论中的相关概念。它涉及到解方程$b^n=x$，这里的$b$和$x$是这个群的元素，而$n$是指定在群运算上的幂。对于某些有限群，据信离散对数是非常难计算的，而离散指数非常容易。这种不对称性可用于公开密钥加密。

矩阵对数是矩阵指数的反函数。

对于不等于1的每个正数$b$，函数$\log_b(x)$是从在乘法下的正实数的群到在加法下（所有）实数的群的同构。它们是唯一的连续的这种同构。对数函数可以扩展为在乘法下正实数的拓扑空间的哈尔测度。

## 对数表

<image>

在发明计算器之前，使用对数意味着查对数表，它必须手工建立。

## 外部链接

- History of logarithms
- Logarithm
- Khan Academy: Logarithms, free online micro lectures