看板 Math 關於我們 聯絡資訊
這幾天稍微對 ODE 特解的逆運算子法花了點時間。 讀書時代我也是從未使用過的人, 最近回了兩篇文章,爬完文才發現困擾大家的問題一直都差不多。 基於逆運算子的常用範圍,本文只針對兩類算子:D-aI、XD-aI。 x 其中 D-aI = e^(ax)∫dx e^(-ax) 也常寫作 D-a, x 而 XD-aI = x^a∫dx x^(-a) 也常寫作 xD-a。 在本文中 D¯就是 D 的逆運算子 D^(-1) 的意思。 逆運算子在使用上最常出現的問題就是 D¯D 其實不是 I。 根據微積分基本定理,把一連續函數求反導函數後再求導函數就會等於該連續函數, 用算子符號來寫就是 DD¯= I。 而微積分定理還有另一半:∫f'(x)dx = f(x)+c。 這條式子對於逆運算子來說很不好用,我仍然希望 D¯能保有線性等特徵, 我使用 D¯的目的只是找到一個「特解」,+c 以後的是通解。 所以有時為了我自私的便利性,強求 ∫f'(x)dx = f(x),也就是 D¯D = I。 而這就是一場災難,因為這相當於限制了積分下限。 對於多項式函數來說我愛用的下限是 0、 而指數成長型函數的下限是 -∞、 指數衰減型函數的下限是 ∞、 對數函數的下限一般是 ∞。 這太不統一了,所以只好接受 D¯D ≠I 並把這件事放在心上。 (偶爾偷偷用就好,在不影響求解的情況下。) 一般來說一個 ODE 可以寫成 L(X,D)y = f。 D = d/dx 是一階微分算子,而 X 則是「乘以 x」這個運算的算子。 限制在有限階的時候,就要求 L(X,D) 對 D 的 degree 是有限的(至少要是 1)。 明確一點寫出來的話,L(X,D) = p_n(x)D^n + ... + p_1(x)D + p_0(x)I。 公式: 1. L(X,D)¯f+g = L(X,D)¯f + L(X,D)¯g 2. L(X,D)¯cf = cL(X,D)¯f 3. L(X,D)¯xf = xL(X,D)¯f - L(X,D)¯L'(X,D)L(X,D)¯f 其中 L'(X,D) = p_n(x)nD^(n-1) + ... + p_2(x)2D + p_1(x)I, 是 L(X,D) 形式上對 D 的偏導函數。 4. L(X,D)¯e^(bx)f = e^(bx)L(X,D+bI)¯f 最後這兩條相當於特殊情況的分部積分(IBP)公式,與微分的萊布尼茲法則對應。 而黃字部份的第三條是最容易出錯的式子。 D-aI: 這類型算是最重要的,對應到常係數的有限階 ODE。 ODE 可以寫成 L(D)y = f,其中 L 是一個一次以上的多項式。 根據代數基本定理,L 可以分解成一堆一次因式的乘積, 所以只要每次都移項一個一次因式到等號右邊,就可以解出特解。 常用公式: 1. (D-aI)¯e^(bx) = e^(bx)/(b-a), b≠a 2. (D-aI)¯x^n*e^(ax) = x^(n+1)*e^(ax)/(n+1), n≠-1 (除了-1以外的複數) 3. (D-aI)¯e^(ax)/x = e^(ax)*ln(x) 4. (D-aI)¯cos(bx) = ( -a*cos(bx)+b*sin(bx) )/(a^2+b^2) 5. (D-aI)¯sin(bx) = ( -b*cos(bx)-a*sin(bx) )/(a^2+b^2) 6. (D^2+cD+dI)¯cos(bx) = (-b^2+cD+dI)¯cos(bx) 這條對 sin 也適用,不在意虛實問題的話,直接把 D 用 ib、-ib 取代也可以。 XD-aI: 這種算子對應的 ODE 是 Cauchy–Euler equation。 與 D-aI 的情形相同,a 也可以是複數, 所以可能會出現類似 x^i = cos(ln(x))+isin(ln(x)) 這種稍顯嚇人的東西。 這型的常用公式就沒有那麼多了,因為多數情況的積分沒有漂亮公式。 大部份有漂亮式子的情況都是 n 為非正整數的時候。 前面提到容易出狀況的類型:#1X3H7Xj3 (Math) 就以這篇文章的方程式作為例子。 y''' - 3y' + 2y = x*e^x 用算子改寫成 (D^3-3D+2)y=x*e^x(略去 I), 所以一個特解就是 (D^3-3D+2)¯x*e^x 很多人因為看到有個 x 乘在那邊,就想說直接套用公式。 (D^3-3D+2)¯x*e^x = x*(D^3-3D+2)¯e^x - (D^3-3D+2)¯(3D^2-3)(D^3-3D+2)¯e^x 交換一下順序 = x*(D^3-3D+2)¯e^x - (D^3-3D+2)¯(D^3-3D+2)¯(3D^2-3)e^x 然後因式分解 = x*((D-1)^2*(D+2))¯e^x - 3((D-1)^4*(D+2)^2)¯(D-1)(D+1)e^x 約掉一個 D-1 = x^3*e^x/6 - 3((D-1)^3*(D+2)^2)¯(D+1)e^x = x^3*e^x/6 - 3(x^3/6)(1/9)2e^x = x^3*e^x/18 但代回方程式就知道這不是特解,難道是公式有錯嗎? 另外有人可能在 3((D-1)^4*(D+2)^2)¯(D-1)(D+1)e^x 這個步驟用了不一樣的做法。 3((D-1)^3*(D+2)^2)¯(D+1)e^x = [2/3*(D-1)^-3 - 1/9*(D-1)^-2 + 1/9*(D+2)^-2]e^x = (2/3*x^3/6 - 1/9*x^2/2 + 1/9*1/9)e^x = (x^3/9 - x^2/18 + 1/81)e^x 然後算出特解 (x^3/18 + x^2/18 - 1/81)e^x …… 怎麼還是怪怪的? 在看約分的問題前,交換順序其實就已經出了問題。 本文在很前面就提過 D¯D≠I=DD¯了。 算子的順序是不可以隨便交換的。 當然 D 的多項式彼此可以交換、XD 的多項式彼此也可以交換, 但是 L(D)¯和 D 的多項式雖然不至於到「什麼時候都」不能交換, 卻也得看後面那個「被運算的函數」的臉色。 例如 D¯Dx = D¯1 = x,這時候 D¯D 與 DD¯的作用別無二致。 可是 D¯D1 = D¯0 = 0,這時候就不一樣了。 問題是出在「L(X,D) 的 kernel/null space/zero space」上。 現在已經確定交換順序是有問題的步驟, 可是部份分式在不交換的前提下其實也算得不正確。 馬上說明一下: 回到交換順序前 (D^3-3D+2)¯(3D^2-3)(D^3-3D+2)¯e^x = (D+2)^-1 * (D-1)^-2 * 3(D+1)(D-1) * (D-1)^-2 * (D+2)^-1 e^x = (D+2)^-1 * (D-1)^-2 * 3(D+1) * (D-1)^-1 * (D+2)^-1 e^x 在上面這一步,約掉了 D-1,因為 (D-1)(D-1)^-1 = 1。 = (D+2)^-1 * (D-1)^-2 * 3(D-1+2) * (D-1)^-1 * (D+2)^-1 e^x = (D+2)^-1 * (D-1)^-2 * 3(D-1) * (D-1)^-1 * (D+2)^-1 e^x + (D+2)^-1 * (D-1)^-2 * 6 * (D-1)^-1 * (D+2)^-1 e^x = (D+2)^-1 * (D-1)^-2 * (D+2)^-1 3e^x + (D+2)^-1 * (D-1)^-2 * (D-1)^-2 * (D+2)^-1 6e^x = (D-1)^-2 * (D+2)^-2 3e^x + (D-1)^-3 * (D+2)^-2 6e^x 上面用到 #1X3xzIfg (Math) 中提到的逆運算子交換性。 = (D-1)^-2 e^x/3 + (D-1)^-3 2e^x/3 = x^2*e^x/6 + x^3*e^x/9 這次得到的特解是 x^3*e^x/18 - x^2*e^x/6,還是不對。 而且怎麼三次算起來都不一樣!? 這問題還是得回到最初的老問題上:∫f'(x)dx = f(x)+c 或許有人會有異議:明明我有在注意,而且特解的 x*e^x、e^x 兩項我也的確不在意。 這個問題是上面的三種過程中,都出現了 (D-1)^-3。 (D-1)^3 的 kernel 裡可不只有 x*e^x、e^x,還有 x^2*e^x。 這也難怪三種過程不只答案不一樣,還會有錯了。 因為在運算 (D-1)^-3 e^x 的時候, 謹慎一點來說,應該要得到 (x^3/6 + ax^2 + bx + c)e^x, 就算不看 (bx + c)e^x,但 ax^2*e^x 是不可省略的。 這個 a 就是個待定常數。 決定 a 的方法就是把解代回原方程式算一遍。 所以就算有小心交換順序,我都不推薦約分、部份分式等做法。 因為到頭來還是要有個常數待定。 其實一般情況下是不用這麼小心的,但是 kernel 真的很麻煩, 所以在用 L(D)^(-1) xf 的時候真的要很謹慎。 這正是逆運算子法最「誤人子弟」之所在。 真的還是想用逆運算子怎麼辦? 最安全的做法就是我在 #1X3H7Xj3 (Math) 寫的, 和 #1X2bPPpN (Math) 這篇推文中 max93765 寫到的方法。 仔細一點看就會發現都沒有用到 (D-1)^-3 或 D^-3,所以很安全。 -- 懶人包: ODE L(D)y = f 的 L(D) 裡面,如果 D-a 的次數只有 n 次, 在算 L(D)^(-1) f 的過程中,就不准出現 (D-a)^(-n-1)。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 163.13.112.58 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Math/M.1629207114.A.CD4.html ※ 編輯: Vulpix (163.13.112.58 臺灣), 08/17/2021 22:01:40
jass970991 : 酷 沒有想過 08/18 15:50
yyy855029 : 推 08/18 20:14
※ 編輯: Vulpix (163.13.112.58 臺灣), 08/18/2021 20:35:28
jacky7987 : 推,但我還是不會用XD 08/21 22:07