JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

把它變成正合:積分因子

大多數看起來像全微分的方程其實並不完全正合——但乘上一個恰當的因子就能救活它。本篇教你如何找到那個因子,把頑固的方程變回一個隱藏的位勢。

離正合只差一點點

在前一篇你學會了辨認 正合方程:寫成 M(x,y) dx + N(x,y) dy = 0 的形式時,它正合的充要條件是 正合性檢驗 dM/dy = dN/dx 成立,這時整個左邊就是某個隱藏 位勢函數 F 的 全微分。解出 F 你就完工了。麻煩在於:這種形狀的大多數方程都通不過檢驗——交叉偏導數就是兜不攏。方程「幾乎」是個全微分,但差那麼一點。

拯救的點子是這樣的。對任意不為零的函數 mu,方程 M dx + N dy = 0 和 (mu M) dx + (mu N) dy = 0 說的是同一件事——把方程兩邊乘上一個非零的東西,從不改變它的解曲線。於是我們可以放手去尋找一個因子 mu(x,y),使得乘進去之後的「新」係數能通過正合性檢驗。這個拯救用的因子就是 積分因子:它唯一的任務,就是把一個差一點才正合的方程,轉換成一個貨真價實的正合方程。

為什麼一般情形下因子很難求

要求 (mu M) dx + (mu N) dy = 0 正合,意思就是要求 d(mu M)/dy = d(mu N)/dx。用乘積律把兩邊展開,你會得到一條把 mu、mu 的偏導數,以及 M 和 N 的偏導數綁在一起的關係式。誠實地說:在完全一般的情形下,求 mu 需要解一個「偏」微分方程——而那通常比原問題更難,不是更容易。所以積分因子法並不是一台萬能機器;它是一批幸運的特例的集合,恰好在這些特例裡 mu 只依賴單一個變數。

好消息是,這些特例涵蓋了大量課本上的方程,而且它們都有乾淨的判準。關鍵量是交叉偏導數之間的「落差」,即 dM/dy - dN/dx。如果這個落差除以恰當的係數後,化簡成只含 x 的函數,那麼存在積分因子 mu(x)。如果反過來化簡成只含 y 的函數,那麼存在積分因子 mu(y)。這個落差不只是個障礙——它正是告訴你該伸手去拿哪個因子的東西。

M dx + N dy = 0   (fails:  dM/dy =/= dN/dx)

if  (dM/dy - dN/dx) / N  =  g(x)  only  ->  mu(x) = e^( integral g(x) dx )
if  (dN/dx - dM/dy) / M  =  h(y)  only  ->  mu(y) = e^( integral h(y) dy )

then  (mu M) dx + (mu N) dy = 0  IS exact
兩個日常用得到的判準:單變數的落差,就送給你一個單變數的因子。

逐步走過這道食譜

把兩個判準合起來,你就有了一套可靠的流程。重點在於:先讓正合性檢驗「失敗」,再把這個失敗讀成線索,據此造出因子、乘進去,然後就照前一篇的做法繼續——只不過現在面對的,是一個真正正合的方程了。

  1. 把方程寫成 M dx + N dy = 0,跑一遍 正合性檢驗。如果 dM/dy = dN/dx 本就成立,你不需要任何因子——直接跳過,當作正合方程來解。
  2. 造出落差 dM/dy - dN/dx。把它除以 N:若結果只依賴 x,你就拿到了 g(x)。若不然,把相反的落差除以 M,檢查它是否只是 y 的函數。
  3. 積分以造出因子:mu(x) = e^(integral g(x) dx),或 mu(y) = e^(integral h(y) dy)。你只需要一個有效的因子——這裡不需要任意常數,因為任何單一的 mu 都能勝任。
  4. 把整個方程乘上 mu,並確認新的係數通過正合性檢驗(按其構造,必定通過)。接著像之前一樣 還原出位勢 F;答案 F(x,y) = C 就是一個 隱式通解

嚐一口很小的具體例子:看 y dx + (2x - y e^y) dy = 0。這裡 M = y,N = 2x - y e^y,於是 dM/dy = 1 而 dN/dx = 2——不正合,落差 1 - 2 = -1。把相反的落差(dN/dx - dM/dy = 1)除以 M = y 得到 1/y,是只含 y 的函數,所以 mu(y) = e^(integral dy/y) = y。把方程乘上 y,它就變正合了;接下來位勢就靠平常的積分掉出來。這個因子沒做什麼魔法——它只是重新調配了係數,好讓交叉偏導數終於能對上。

因子悄悄付出的代價

乘上 mu 並非全無副作用,而誠實面對這點,正是把這套方法用好的一部分。M dx + N dy = 0 和 (mu M) dx + (mu N) dy = 0 共享同一批解曲線,但「只在 mu 不為零的地方」如此。在積分因子等於零的任何地方,你可能悄悄引入一個假解(新方程在那裡被平凡地滿足),或反過來,遮掩掉一個真解。這跟你在分離變數中做除法時遇到的那種記帳危險是同一個味道——只不過這次它藏在乘法裡。

還有一個值得直說的、更謙卑的侷限。容易求的那種單變數積分因子,只有在落差肯配合時才存在;許多方程的積分因子同時依賴 x 和 y 兩者,或依賴像 xy 或 x^2 + y^2 這樣的組合變數,而找出這類因子是一門沒有保證食譜的藝術。而且就算根本不存在任何初等因子,方程也沒有壞掉——它只是屬於絕大多數微分方程的那一類:需要數值方法或定性方法,而非一個封閉形式的位勢。

這一階為何重要

退一步,注意你剛剛學到的這個策略,因為它在微分方程裡到處重現:當一個方程不是你能解的形式時,就「把它變換成一個你能解的形式」。讓方程正合的積分因子 靠乘法做到這件事;接下來幾篇要登場的代換則靠巧妙的變數更換做到。同一套哲學,不同的槓桿。能認出一個方程只差一招就化為已解形式,正是整門學科一半的功夫。

它也收攏了一個圈。你先前學的線性積分因子,和上一篇的正合方程機制,原本看似兩種各自獨立的技巧;這一篇揭示了它們其實是同一個。一個一階線性方程,重新排列之後,不過是一個差一點才正合的方程,而它的拯救因子恰好只依賴 x——這正是為什麼 e^(integral p dx) 會管用。看見兩個你早已信任的方法原來是同一個點子,這種整合,會讓接下來更難的那些階梯,少幾分像一堆零散招式、多幾分像一門連貫的手藝。