作者LimSinE (r=e^theta)
看板Math
標題Re: [分析] 淺談逆運算子
時間Wed Aug 18 21:51:48 2021
以前只聽過逆運算子,沒有真的研究過
我本來以為只是類似要求 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