每個代換背後的訣竅
到現在你已有一小套武器:你能用分離變數解 可分離方程,用積分因子解 一階線性方程,用還原位勢函數解 恰當方程,而且——就在上一篇——用設 v = y/x 解 齊次次數方程。注意齊次那招真正做的事:它並沒有直接解方程,而是把未知函數 *從 y 換成 v*,在新變數裡方程就變得可分離。這正是代換的全部精神。
一個 代換 是一場賭注:你猜一個新變數 v =(x 與 y 的某種組合),使得改寫之後,方程落入一個你已經會解的形式。技藝在於選對 v,讓那塊雜亂的部分塌縮。並沒有萬用配方——但對少數幾個著名的模式,正確的代換是事先就知道的,其中最重要的就是 白努利方程。它看起來非線性又嚇人,然而一次聰明的變數替換就能把它扳直成一條你能自動完成的線性方程。
認出一條白努利方程
一條 白努利方程 幾乎就是一條線性方程,只被右邊單獨一個 y 的次方破壞了。它的形狀是 y' + p(x) y = q(x) y^n,其中 n 是任意實數。把它和線性形式 y' + p(x) y = q(x) 相比:唯一的差別就是那個孤零零、乘在右邊的 y^n。當 n = 0 時右邊只是 q(x),方程本來就是線性的;當 n = 1 時你可以把 y 吸回左邊,它也是線性的。所以真正屬於白努利、真正非線性的情形,是其他每一個 n——n = 2、n = 1/2、n = -3 等等。
linear: y' + p(x) y = q(x) Bernoulli: y' + p(x) y = q(x) y^n (n != 0, 1) the only wrinkle is the y^n on the right
你其實已經遇過一條,只是沒人告訴你它的名字。邏輯斯諦方程 y' = r y (1 - y) 展開成 y' = r y - r y^2,也就是 y' - r y = -r y^2——正好是 n = 2 的白努利方程。所以帶有承載上限的族群成長,是一條偽裝過的白努利方程,而下面的代換給了你一條與分離變數完全不同的第二條解法路徑。
把它線性化的代換
這就是那一手魔術,白努利代換:令 v = y^(1-n)。為什麼是這個古怪的次方?因為對它微分恰好產生我們需要的組合。由鏈式法則,v' = (1-n) y^(-n) y'。那個因子 y^(-n) 正是用來抵銷困擾我們的 y^n 的完美砝碼。如果你先把整條白努利方程除以 y^n,右邊就變成單純的 q(x),左邊變成 y^(-n) y' + p(x) y^(1-n)——而這兩塊正好就是 v 和 v' 所構成的東西。
- 確認形式:整理成 y' + p(x) y = q(x) y^n 並讀出 n。(若 n 為 0 或 1,打住——它本來就是線性的,不需代換。)
- 把每一項都除以 y^n,得到 y^(-n) y' + p(x) y^(1-n) = q(x)。
- 代入 v = y^(1-n),於是 v' = (1-n) y^(-n) y'。把 y^(1-n) 換成 v,把 y^(-n) y' 換成 v'/(1-n)。
- 你現在有 v'/(1-n) + p(x) v = q(x)——一條關於 v 的 線性方程。整條乘以 (1-n),再用 積分因子解法 解它。
- 換回去:一旦得到 v(x),由 y = v^(1/(1-n)) 還原 y。別忘了最後要把代換解掉。
看它在邏輯斯諦情形 y' - r y = -r y^2 上運作,這裡 n = 2,故 1 - n = -1,v = y^(-1) = 1/y。除以 y^2 並代入後,它變成線性方程 v' + r v = r,積分因子 e^(rt) 立刻把它攻破。非線性的邏輯斯諦曲線變成一行線性計算——代換做掉了最難的部分。注意 v = 1/y 正是你或許早已用來徒手解邏輯斯諦方程的那個倒數;白努利方法解釋了 *為什麼* 那個特定的倒數正是該嘗試的東西。
同一個想法,許多偽裝
一旦你把代換看成「替未知函數改名,直到方程變簡單」,一整個動物園的招數就合而為一了。上一篇的 v = y/x 代換 對齊次方程而言就是同一手。當一個方程只依賴於組合 ax + by 時,代換 v = ax + by 常使它 可化為可分離。而對於一個 *幾乎* 線性、卻多了一個二次項的方程——黎卡提方程 y' = p(x) + q(x) y + r(x) y^2——根本沒有一般的初等解,但若你能猜出一個特解,一次代換就能把剩下的部分變成一條你 *確實* 能解的白努利方程。
對這裡的限制要誠實。白努利對它的模板永遠管用,機械而可靠。其餘的則是機會主義的:黎卡提需要一個幸運的猜測,v = ax + by 那招需要方程恰好依賴於那個組合,而克雷洛方程(下一篇)帶來一個真正全新的現象——通解公式碰不到的解。代換很有威力,但它是一批靠模式比對得來的禮物,而非一套征服每條一階方程的單一演算法。絕大多數一階常微分方程仍然沒有封閉形式的解;這些有名字的情形,是幸運而可解的島嶼。
為什麼線性化值得這番功夫
你或許會問:為什麼要費盡周折,偏偏要達到一條 *線性* 方程?因為線性是這門學科唯一一個我們擁有完整、有保證機制的角落。一條一階線性方程永遠能用 積分因子 寫出顯式解——不需猜測、不需運氣、不需特殊函數。非線性方程則沒有這些保證。所以當一次代換把一條 非線性方程 變成線性方程時,那不是表面工夫;它把問題從「也許無解」搬進「肯定可解」。