熵的历史的讨论

关于熵的历史

17到18世纪是资本主义工业快速发展的时代。那个时候,人们已经学会了制造各种通过燃烧煤产生热量而推动的各种热机,热力学正是在这样的背景下诞生的一门研究有关热、温度、能量的物理学。

打开瓶盖的香水会弥漫于整个空间,房间不打扫就会变得越来越脏,热量不能自发地从低温物体流向高温物体,任何能量转化的过程都伴随着一定的废热产生,所有这些现象都与热力学第二定律有关。然而最初的第二定律表达形式却是五花八门,所以它的科学表达则需要引进熵的概念。

关于熵的概念,它的确是一个让人头疼不已的东西,既具有深刻的内涵又常常让人费解。因此,我们非常有必要回顾一下熵这个物理概念的大致发展历史。事实上,虽然都叫做Entropy,但是它在不同的背景下却有着完全不同的定义和面貌。只不过这些定义在背后有着一些深刻的联系。

Clausius熵

最早给出熵的明确定义的人是科学家Clausius。当一个处于平衡态的物理系统在一定的环境(温度T固定)经过了一定的可逆过程(所谓的可逆过程粗略说就是一个没有不可恢复的能量损失的变化过程,它是一种理想状态),从外界吸收了热量[math]\displaystyle{ \Delta Q }[/math] ,则定义系统的熵变是:

[math]\displaystyle{ \Delta s = \frac {\Delta Q} {T} }[/math]

粗略地说,在温度固定时,系统的熵改变是和[math]\displaystyle{ \Delta Q }[/math]呈正比的。即当[math]\displaystyle{ T }[/math]固定的时候,系统吸收的热量越多它的熵改变越大。在不同温度下吸收相同的热量,熵的改变是不同的,即温度越高熵越不容易改变。有意思的是,虽然熵是一个状态量,但是Clausius的定义的却是针对它的变化量。有了该定义,人们就可以把热力学第二定律翻译为熵增定律,即[math]\displaystyle{ \Delta S \gt 0 }[/math]

事实上,这个熵的定义范围很窄,仅限于近平衡的可逆过程,但是在非平衡的物理系统中,人们还可以将Clausius熵进行推广,即将熵产生(熵的变化)就看作是产生的热量与温度的比值。所以,我们前面提到的熵产生,通常就是指该系统的热量产生。

Boltzmann熵

在Clasusius的定义中,它是作为一种宏观的热力学量引进的(跟热量变化和温度有关),然而,给熵概念进行进一步的微观解释的人却是Boltzmann这位19世纪末最伟大的物理学家之一。他的贡献不仅仅给出了熵是如何起源的,而且更有趣的是,Boltzmann熵甚至可以不仅仅描述物理系统,而可以对付更加广义的系统,为了理解这个含义, 让我们来看这样一个计算机程序的例子:

有一个计算机程序P,它不停地重复做下面这两件事儿: (1) 随机生成4个0或者1的数[math]\displaystyle{ x_1,x_2,x_3,x_4 }[/math]; (2) 计算[math]\displaystyle{ X=x_1+x_2+x_3+x_4 }[/math],并把结果打印到屏幕上。

假如我们并不是一直盯着屏幕看,而是偶尔看一次,那么我们最有可能看到的输出数字是几?这相当于问哪一个[math]\displaystyle{ x_1+x_2+x_3+x_4 }[/math]的和值是最可能出现的。让我们来计算一下。

首先,不难想象,这个程序的输出无非就是这几种可能:0,1,2,3,4。但是,并不见得每个输出都有同等可能性,比如输出0就要求[math]\displaystyle{ x_1~x_4 }[/math]都取值0,它的概率显然很小。下面,让我们来分情况计算一下,每个输出值对应了多少种可能性:

a. [math]\displaystyle{ X=0 }[/math]

只有一种可能,即所有变量都取0。

b. [math]\displaystyle{ X=1 }[/math]

这就有多种可能,即只要有一个变量取值1就可以。可能是:

[math]\displaystyle{ x_1=1, x_2=0, x_3=0,x_4=0 }[/math]

[math]\displaystyle{ x_1=0, x_2=1, x_3=0,x_4=0 }[/math]

[math]\displaystyle{ x_1=0, x_2=0, x_3=1,x_4=0 }[/math]

[math]\displaystyle{ x_1=0, x_2=0, x_3=0,x_4=1 }[/math]

因而有4种可能性。

c. [math]\displaystyle{ X=2 }[/math]

这就有更多的可能性,我们把它们都列出来:

[math]\displaystyle{ x_1=1, x_2=1, x_3=0,x_4=0 }[/math]

[math]\displaystyle{ x_1=1, x_2=0, x_3=1, x_4=0 }[/math],

[math]\displaystyle{ x_1=1, x_2=0, x_3=0,x_4=1 }[/math]

[math]\displaystyle{ x_1=0, x_2=1, x_3=1,x_4=0 }[/math]

[math]\displaystyle{ x_1=0, x_2=1, x_3=0,x_4=1 }[/math]

[math]\displaystyle{ x_1=0, x_2=0, x_3=1,x_4=1 }[/math]

因而有6种可能性

d. [math]\displaystyle{ X=3 }[/math]

[math]\displaystyle{ x_1=0, x_2=1, x_3=1,x_4=1 }[/math]

[math]\displaystyle{ x_1=1, x_2=0, x_3=1,x_4=1 }[/math]

[math]\displaystyle{ x_1=1, x_2=1, x_3=0,x_4=1 }[/math]

[math]\displaystyle{ x_1=1, x_2=1, x_3=1,x_4=0 }[/math]

因而有4种可能性。

e. [math]\displaystyle{ X=4 }[/math]

只有一种可能,所有变量都输出1。

很明显,最可能得到的输出是2,因为它有6种实现的可能性。也就是说当让[math]\displaystyle{ x_1 \sim x_4 }[/math]随机取值的时候,输出2的概率是最大的。可以计算出,这个概率数值是:[math]\displaystyle{ P=6/24=3/8 }[/math]。而输出其他数值的概率分别是:[math]\displaystyle{ 1/16 }[/math][math]\displaystyle{ 1/8 }[/math][math]\displaystyle{ 1/8 }[/math]

在这个例子中,我们称程序输出的一个可能数值为一个宏观态,而对应的每一种[math]\displaystyle{ x_1 \sim x_4 }[/math]的取值组合叫做一个微观态。那么我们观察者(观察程序输出的人)只能看到程序的输出结果即宏观态,而不能看到程序内部的计算结果即微观态[math]\displaystyle{ (x_1,x_2,x_3,x_4) }[/math]的数值。在这里,我们就可以定义Boltzman熵的概念,如果针对任意一个宏观状态[math]\displaystyle{ X }[/math]来说,它对应了[math]\displaystyle{ \Omega }[/math]个微观状态数,那么Boltzman熵是系统宏观状态[math]\displaystyle{ X }[/math]的一个函数:

[math]\displaystyle{ S(X) = k ln \Omega }[/math]

其中[math]\displaystyle{ k }[/math]是一个常数叫做Boltzman常数约为[math]\displaystyle{ 1.38*10-23 }[/math]。那么,在这个例子中,我们不难得出:

[math]\displaystyle{ S(X=0)=kln1=0 }[/math],

[math]\displaystyle{ S(X=1)=kln4 }[/math],

[math]\displaystyle{ S(X=2)=kln6 }[/math],

[math]\displaystyle{ S(X=3)=kln4 }[/math],

[math]\displaystyle{ S(X=4)=kln1=0 }[/math]

不难看出,程序最有可能的输出结果[math]\displaystyle{ X=2 }[/math],对应的Boltzman熵是最大的。因此,也可以说,熵最大的宏观态是最有可能被我们观察到的。

实际上,这个例子和定义完全可以推广到热力学的气体分子模型中。在那里,我们可以把每个气体分子都看作一个随机变量[math]\displaystyle{ x_i }[/math],只不过这个随机变量的取值范围不是0或1这么简单,而是这个分子的位置和速度参数。由于气体的宏观状态(如压强、温度等)都是这一大群分子的统计结果,也就是说它们相当于一种广义的对[math]\displaystyle{ x_i }[/math]的求和的过程。那么,对于任意一种宏观状态我们仍然可以计算它对应的微观状态数以及Boltzman熵的值。

有意思的是,当年Boltzman发明了熵的这种计算方法,并计算了它和其它的物理量的一些关系和性质之后,发现它所有的性质都跟前面讲到的Clausius定义的那个熵相同。这样Boltzman就第一次给熵找到了一个完美的物理解释,即熵就是实现一种系统状态的可能的微观状态数。

第二定律又该作怎样的解释呢?按照Clausius的说法,由于任何一个孤立的系统都要朝向熵增的方向发展,翻译成Boltzman的说法也就是,任何孤立的系统都要朝向一个最有可能实现的宏观状态演化。因此,所谓的熵达到最大的状态也就是一种最可能被看到的状态。

在计算机程序的例子中我们看到,实际上程序不仅仅可以计算[math]\displaystyle{ X=x_1+x_2+x_3+x_4 }[/math],还可以计算[math]\displaystyle{ X=x_1*x_2*x_3*x_4 }[/math],那么这个时候宏观状态的可能取值就变成了0和1两种,而每种宏观态对应的微观状态数也就变了,因而熵的数值也就变了。所以,熵是一种联系微观与宏观两个层次的纽带。并且这里的微观与宏观并不一定需要局限在气体分子系统的例子里,甚至并不一定是一个物理系统,它可以是任何一个系统,包括计算系统或者宏观的社会系统。因此,熵的的确确是一种凌驾于任何一种具体系统之上的普遍性质。

Shannon的信息“熵”

通过前面的讨论,我们已经看到,Boltzmann熵并不一定局限于物理系统,而是一个通用的,可以凌驾于具体系统之上的联系微观与宏观的系统概念。因此,原则上讲,我们就可以把Boltzmann熵看成是一种“非物理”属性,即熵具有了“凌驾”于任何系统之上的能力。

正是基于这点考虑,Shannon在1948年创立了信息论,其核心的“信息量”概念正是用Shannon信息熵来描述的,而该熵的来源则是Boltzmann熵,只不过Shannon用它来描述一个非物理的系统。

让我们考虑一系列可以生成随机数的程序。如果我们知道这些程序生成的随机数就是[math]\displaystyle{ 1,2,3,\cdots,n }[/math]个,并且每个数字出现的概率是不一样的,不妨设概率分别是[math]\displaystyle{ p_1,p_2,\cdots,p_n }[/math]。那么不同的程序就会有不同的生成数字的概率。假如一个程序生成3的概率是99%,而另一个程序生成[math]\displaystyle{ 1 \sim n }[/math]个数都是可能的,我们可以确定地说,第一个程序要比第二个程序更可靠些,因为它更加确定,因此更加具有信息。也就是说不同的概率分布决定了程序的信息量(或确定程度)。那么,这件事儿我们如何用数学来刻画呢,这就是Shannon找到的信息熵公式:

[math]\displaystyle{ H (p_1, p_2,\cdots,p_n) = - \sum_{i=1}^n p_i log p_i }[/math]

可以验证一下,对于第一个程序,确定生成3,所以[math]\displaystyle{ p_3=1 }[/math],其他的[math]\displaystyle{ p=0 }[/math],那么[math]\displaystyle{ H(0,0,1,\cdots) }[/math]是一个接近无穷大的数。如果所有的数字都是等可能的,那么[math]\displaystyle{ p_1=p_2=\cdots=p_n=1/n }[/math],那么[math]\displaystyle{ H=log(n) }[/math]。显然第二种情况下的H小于第一种情况。所以H可以描述这些随机生成数程序的信息量大小。

实际上Shannon熵和Boltzmann熵有着深刻的联系。比如在前面的例子中,如果有非常多的随机变量相加产生[math]\displaystyle{ X }[/math],有数学保证Boltzmann就可以近似表示为Shannon熵的形式。其中,[math]\displaystyle{ p_i }[/math][math]\displaystyle{ i=1 }[/math]或者[math]\displaystyle{ 0 }[/math])表示这些随机变量中取第[math]\displaystyle{ i }[/math]个数值的可能性(概率)。

有趣的是,虽然Shannon的熵概念是受到Boltzmann的熵概念启发而得出的,但是,后来人们发现,它具有更根本的性质。而且人们可以倒着运用信息熵公式,也就是说我们把最大化信息熵作为一种更基本的原理,从而导出其他的物理的或非物理的现象。例如物理学家Jaynes就用最大化信息熵的办法,通过加入不同的约束而重新推导出了整个的统计力学。

这样,在面对各种实际的统计物理的问题时,人们并不需要再加入很多的条件假设,而是仅仅从一条最大化熵(即Shannon熵)原理出发,就能够推导出所有的统计物理命题。在此看来,最大化熵才具有更本质的特征。