伯努裡方程在一般流體力學的教科書中都有推導。例如,巴切勒經典的流體力學書(G. K. Batchelor: In Introduction to Fluid Dynamics)中就有完整的推導。從那些推導中可明顯看出伯努裡方程是一個能量方程。不過,在一些論壇的討論中,有時也能看到有些人會有意無意地把它當作一個動量方程來推導或理解。發這個帖子的目的之一也就是說說自己的理解為什麼伯努裡方程不能作為動量方程來理解。另一個更重要的目的是想通過這個例子來簡單介紹一下如何對一類偏微分方程[一階擬線性偏微分方程(組)]進行求解。記得早年國內理工科非數學專業(本科)數理方程的教科書中很少強調這部分內容,而偏偏流體力學的不少基本方程是一階(而非二階)偏微分方程。
我們在中學物理課中就已經學到了能量守恆和轉換的原理,其中的一個數學定量化的例子就是質點運動過程中質點動能同重力位能之間的轉換。小球拋到最高點時動能為零而位能最大,下落過場中則位能又轉換為動能。巴切勒書中3.5節的一開始就又複習了這一過程的數學描述:
F=ma, a=F/m, d[v_bold]/dt=F/m, d(d[s_bold]/dt)/dt=F/m.
質點的位能只與質點的位置有關,與之對應的位勢力(矢量)可以表示成某一數量場(位勢場)的梯度:
d[v_bold]/dt=-[DEL][PSI], d[v_bold]/dt=-[DEL][PSI]([s_bold]),
d(d[s_bold]/dt)/dt=-[DEL][PSI], d(d[s_bold]/dt)/dt= -[DEL][PSI]([s_bold]).
上面(具有位勢力)的動量方程兩邊同時乘以速度之後可表達成全微分的形式:
[v_bold].d[v_bold]/dt=-(d[s_bold]/dt).[DEL][PSI],
d{([v_bold]^2/2)+[PSI]}/dt=0.
這裡,「兩邊同時乘以速度」即意味著把動量方程轉換為能量方程了。也就是說,為把原方程寫成全微分的形式,必須要把動量方程轉換為能量方程。全微分可直接積分,所得的積分常數就可理解為質點的總能量:
([v_bold]^2/2)+[PSI]=常數。
把上面的這一基本思想應用到流體時就出現了如下幾點需要特別考慮和處理:
(1)流體除了機械能之外也還包括熱能(內能)。所以在推導能量方程時,除了歐拉方程之外,也還會加上熱能方程。關於這一點,大家看看巴切勒的書就清楚了。
(2)我們以前所遇到的「重力-位能」只是一個特例。更一般的情況是:只要力可以表示成「-[DEL][PSI]」,則我們就有「力-能」的關係,即-[DEL][PSI]表示「力」,[PSI]表示「能」。認識清楚這一點其實是很重要的。有些人對伯努裡方程的誤解可能也有這個原因。歐拉方程中有一項是壓力梯度項:「-[DEL]p」。大家看到p出現在伯努裡方程中,而p又稱作壓力,既然是「力」,想想那也同動量有關了。但實際上,這裡的p應該理解為「能」。例如,對於理想氣體,壓力p正比於溫度,而溫度正是氣體內能的度量。
(3)質點運動由常微分方程(組)來描述,由上面的推導我們看出,若把常微分變換成全微分的形式,就能積分求解。即使是數值求解常微分方程,也是一個比較成熟而易解的問題。但連續介質的流體力學由偏微分方程(組)來描述。我們該如何對偏微分方程來積分求解呢?答:這裡,我們可以把偏微分方程轉換成常微分方程來求解。這就是這個帖子主要想說的一個議題。
小結一下:推導伯努裡方程需經過兩個關鍵步驟:(1)把動量方程轉換成能量方程,(2)對流體的偏微分方程積分。