看板 Math 關於我們 聯絡資訊
以前只聽過逆運算子,沒有真的研究過 我本來以為只是類似要求 L(D) y = f 先因式分解 (D-a1)(D-a2)... y = f 然後看是要一層一層套積分公式作用(D-a1)^-1、(D-a2)^-1 之類的 看來是想太少了。 這樣逐層積分應該不會很慢吧Orz 微分逆運算的不唯一性,確實是造成各種麻煩(計算上和理論上)。不過,我的看法和原Po 不大一樣,我認為因式分解、交換甚至部分分式稍微小心都是不是最大的問題,真正造成 這題各種錯解,是因為「容易出錯」的公式3,本身就有問題... ※ 引述《Vulpix (Sebastian)》之銘言: : 這幾天稍微對 ODE 特解的逆運算子法花了點時間。 : 讀書時代我也是從未使用過的人, : 最近回了兩篇文章,爬完文才發現困擾大家的問題一直都差不多。 : 基於逆運算子的常用範圍,本文只針對兩類算子:D-aI、XD-aI。 : 一般來說一個 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。 我們直接來看公式,回憶不定積分的公式,表面上寫 積分 AAA = 積分 BBB,其實隱含了可以差一個常數。 在微分算子的情形也是類似,只是每個微分算子的kernel不一樣,變成要很小心。 不過基本上 L^-1 AAA = BBB 的意思,是L(BBB)=AAA,且所有的解還可以差一個ker L裡的東西。 由這個觀點可以很仔細地來驗證公式1~4。 其中1.2.太無聊了,3.已經預告過有問題,所以我們先驗證4. 公式: 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 pf of 4. 首先驗證 L(X,D) exp(bx) g = exp(bx) L(X,D+b) g for all g i) 右<=左:若 L(X,D+b)g = f,則 exp(bx) f = L(X,D) exp(bx) g ii) 左<=右:若 L(X,D) g = exp(bx) f 則 L(X, D+b) exp(-bx) g = f 這裡用到乘exp(bx) 可逆,故右邊的解空間乘exp(bx)後和左邊是互相包含而相等。 pf of 3. 首先驗證 L(X,D)(xg) = x L(X,D)g + L'(X,D)g for all g 然後用g用L(X,D)^-1f帶入(或令 L(X,D)g=f),移項即得。 但是這時有一個很微妙的地方: 如果寫成 3' L(X,D)-1 xf = {X - L(X,D)^-1L'(X,D)}L(X,D)^-1 f 就完全沒問題 事實上: 3'的意思是 i) 若L(X,D)g=f,則 xf = {L(X,D)X - L'(X,D)}g = L(X,D)(xg) - L'(X,D)g ii) 兩邊都可差一個ker L(X,D)的元素 可是3'裡面{}這個算子並不好處理,連本來常係數的算子都不再是常係數了,所以 很自然會想把它拆開。但是拆開就出問題了 從上面的推導可以看到 3的右邊,x[L(X,D)^-1 f]-L(X,D)^-1 L'(X,D)[L(X,D)^-1 f] 要滿足作用L(X,D)以後是xf 必須要兩個[]內取相同的元素g。 若兩個[]分別取 g+g0, g (g0 in ker L(X,D)),那麼作用L(X,D)後,會多出 L(X,D)(xg0) = x L(X,D)g0 + L'(X,D)g0 = L'(X,D)g0 這一項 由於在我們的題目裡面,L(X,D)^-1沒有自然的取法(*),加上後面兩邊又各顯神通 根本無法保證相等了。 (*) 那些"會對"的情形,譬如f是指數、三角函數又不在L的generalized kernel space中 就是有自然的取法 我們來看看這些錯解 錯誤示範1: : 前面提到容易出狀況的類型:#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 停在這裡,我們看到第一個L^-1f 我們算的是 x^2e^x/6 : = x^3*e^x/6 - 3(x^3/6)(1/9)2e^x 第二項算出來 L^-1 L' L^-1 f是 x^3e^x/9 可是 L(x^3e^x/9) = 2xe^x - 2e^x/3 =/= L'(x^2e^x/6) = 2xe^x + 2e^x 差了若干倍的e^x,問題出在哪呢? 如果我們讓第二個 L^-1 f 和第一個L^-1 f 差 x e^x和e^x的組合,就可以補齊差額。 : = x^3*e^x/18 : 但代回方程式就知道這不是特解,難道是公式有錯嗎? 由此可見,這個錯誤早在帶入公式3.後無法控制兩個L^-1 f相等時就已經註定了。 後面的算法雖然看似處處危機(?),但還是把第二項合理的算出來了。 原Po還提供了2個其他的錯誤示範,但是我認為都是在第二項的算法下調整,而且這些 第二項雖然都不一樣,但要命的是都是對的(只要改變L^-1 f的取法) 錯誤示範2: : 另外有人可能在 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 …… : 怎麼還是怪怪的? : 在看約分的問題前,交換順序其實就已經出了問題。 錯誤示範3: : 現在已經確定交換順序是有問題的步驟, : 可是部份分式在不交換的前提下其實也算得不正確。 : 馬上說明一下: : 回到交換順序前 : (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,還是不對。 另外提出一點 即使計算都沒有問題,用了公式3之後,變成要算L^-1L'L^-1,相當於要反解兩次L^-1,真的是何苦來哉 真的會比直接反解快嗎... -- r=e^theta 即使有改變,我始終如一。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.85.158.146 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Math/M.1629294715.A.0F6.html
Vulpix : 釣到大師oddoddof~ 硬要用這條公式的話,我最推的 08/18 22:08
Vulpix : 做法還是我第一次回文寫的,過程中會算到 L^-1 xe^x 08/18 22:09
Vulpix : 就可以回去用以前分部積分exp*cos常用的那招了。 08/18 22:10
Vulpix : 這樣也能保證每一次的 L^-1 都是同一個。 08/18 22:10
Vulpix : 與其說反解,逆運算子的本質其實是把反解的步驟簡化 08/18 22:17
Vulpix : 成一個公式而已。用了一下試試看,確實在某些分部積 08/18 22:19
Vulpix : 分很痛苦的情況下可以簡化計算。 08/18 22:20
Vulpix : 不過3真的很容易算錯,一般情況都不會建議用。 08/18 22:33