每個方程上的兩個標籤
在上一篇導引中,你已認識了那個核心想法:微分方程是一條關於變化率的規則,而解它意味著找出一整個函數,而非一個數。現在我們要把這些方程分門別類。往後你要做的幾乎每件事——哪個方法管用、你需要幾筆起始資料、甚至到底有沒有乾淨的公式解——都由兩個你看一眼就能回答的問題決定。它的階是幾?它是線性的嗎?把這兩個標籤讀得滾瓜爛熟,一個陌生的新方程就不再令人生畏;它開始主動宣告自己是什麼。
在貼上任一標籤之前,先點清角色。在 dy/dt = k y 中,字母 t 是自變量——它只是一路往前推進——而 y 是回應規則的因變未知量。這件事比它看起來更要緊:我們即將定義的兩個標籤,「只」取決於未知量 y 及其導數如何出現。一個由 t 或 x 構成的係數,無論多麼狂野,都絕不會算到你頭上。把這點牢牢記住,你就能避開初學者最常犯的那個失誤。
階:深入到第幾層導數?
一個方程的階,就是其中出現的「最高」階導數的階數。在 y' = k y 中,最高是 y',所以它是一階。在 y'' + 3 y' + 2 y = 0 中,最高是 y'',所以是二階——y' 與 y 雖然也在場,但只有最高那一個決定標籤。一般的 n 階方程一路深入到 y^(n)。這一個數字是你要讀出的第一件事,因為它掌管了解擁有多少自由度。
這就是為什麼階值得最先確認:粗略地說,一個 n 階方程帶有 n 份的自由度。它的通解恰好含有 n 個任意常數,而你要釘住一條曲線,也恰好需要 n 筆起始資料。一階需要一個起始值;二階需要一個值再加一個斜率——這正是為什麼在時間上二階的牛頓運動定律,要同時索取初始位置與初始速度。階在你動手算任何東西之前,就告訴你這個世界必須提供多少個條件。
線性:那條巨大的分界線
第二個標籤是後果更重大的那一個。一個線性方程,是指未知量及其所有導數都只以一次方出現、彼此從不相乘、也從不被塞進像 sin、exp、log 或平方根這類函數裡面。把方程想像成一排格子,每個導數一格;線性意味著每一格裝的,是一個係數乘上 y 的單一個、光禿禿的導數,再無其他花樣。辨認它最乾淨的方法,是先認得它必須吻合的標準模子。
a_n(x) y^(n) + ... + a_1(x) y' + a_0(x) y = g(x) linear : y' + x^2 y = sin(x) (y, y' first power; x-stuff is free) nonlinear : y' = y^2 (y is squared) nonlinear : y' + sin(y) = 0 (y inside sine) nonlinear : y y' = 1 (y times y')
現在來說那個陷阱,值得講兩遍。係數 a_k(x) 與右端 g(x) 可以是自變量的「任意」函數——x^2、sin(x)、e^x,甚至 1/x——方程依然是線性的。線性是一個只關於未知量的陳述。所以 y' + x^2 y = sin(x) 是線性的(y 與 y' 都是一次方;那些 x 的東西只是布景),而 y' = y^2 是非線性的,因為 y 被平方了,y' + sin(y) = 0 也是非線性的,因為 y 被埋進正弦裡。盯著未知量讀,無視布景。
為什麼線性值得如此執著
為什麼這「一個」區別贏得如此多的關注?因為線性方程服從疊加原理:在無外力(齊次)的情形下,若 y1 與 y2 都是解,那麼對任意常數而言 c1 y1 + c2 y2 也是解。解可以相加、可以伸縮。光是這個事實就解鎖了一套完整、系統化的理論——我們幾乎能用一套食譜解出每一個線性常係數方程,也能用簡單的解組建出龐大的解。整座由一階線性積分因子、特徵方程與拉普拉斯變換築起的大廈,都立足於此。
其餘的工作詞彙
在線性這個家族裡,還有幾個形容詞能讓畫面更清晰,而你會不斷聽到它們。當右端 g(x) 為零時,方程是齊次的——方程沒有外力,只跟自己對話,例如 a y'' + b y' + c y = 0。當 g(x) 是某個非零的驅動項時,它是非齊次的——一股來自外界的推力,像 a y'' + b y' + c y = cos(t)。那個外界的項有自己的名字,叫外力函數,而無外力運動與受迫運動之間的對比,將貫穿整門課程。
還有兩個區別,都跟係數有關。常係數方程是用單純的數去乘導數,像 2 y'' + 3 y' + y = 0;變係數方程則讓那些乘數依賴 x,像 x^2 y'' + x y' + y = 0。常係數是我們總能攻克的友善情形。另一方面,自治方程是指自變量不單獨出現——只透過 y 出現——例如 y' = y(1 - y);時間只藉由狀態進入,從不是一個你直接讀取的時鐘。自治正是讓往後斜率場與相位線圖像如此乾淨的原因,因為這條規則在每一刻看起來都一樣。
把這一切拼起來,如今一個方程在你遇見它的瞬間就道盡千言。面對 x^2 y'' + x y' + y = sin(x):你讀出二階(最高是 y'')、線性(y 及其導數都是一次方)、變係數(乘數帶著 x)、非齊次(右端的 sin(x) 是外力項),以及非自治(x 單獨出現)。五個詞,你就已經知道它會想要兩個起始條件、疊加原理可供你使用,以及它的方法大致落在哪一章。這就是詞彙的回報:一個標籤,就是一張地圖。
兩問題的檢查清單
讓我們把這個閱讀習慣變得具體。給定任何一個方程,由上而下跑一遍這份簡短的清單;跑完時你已為它分好類,也知道該期待什麼。緊接著的下一篇導引,會接手那個自然而然的後續問題——一旦你有了一個候選公式,要怎麼確認它真的是個解?——而本階梯其餘的篇章會補上初值問題與斜率場的圖像,因此這些標籤會一路伴你向上攀登。
- 點清變量。哪個字母是自變量(通常是 x 或 t),哪個是未知量 y?下面兩個標籤「只」評斷未知量。
- 找出階。找到出現的最高階導數——y'、y'',直到 y^(n)。它的階就是方程的階,也是你將需要的起始條件數目。
- 檢驗線性。y 及其導數是否只以一次方出現、彼此從不相乘、從不被塞進 sin/exp/log/根號裡?若是,就是線性(疊加原理歸你所有);若你瞧見 y^2、y y'、sin(y)、1/y,它就是非線性。
- 若是線性,再補上細則。右端是零(齊次)還是一個外力項(非齊次)?係數是常數還是 x 的函數?x 是單獨出現(非自治)還是只透過 y 出現(自治)?