Loading [MathJax]/jax/output/CommonHTML/jax.js

4/19/2016

[微分方程] 變動參數法 求解 二階 常係數 非齊次 微分方程

考慮二階線性非齊次微分方程
L(y):=a0y+a1y+a2y=f其中 a0,a1,a2 為常數且 f 為在某區間 I 上有定義的任意函數,且 L 為 linear operator。一般而言,求解二階線性非齊次 微分方程可透過 待定係數法 (Undetermined Coefficient Method)求解,然而此法僅適用於特定(常見)的外力函數 f,比如 f=ctkemt 其中 c 為常數,k 為非負整數,m 為實數或者複數。但除此之外其他形式的 f,待定係數法並無法協助我們求解特解,故我們在此介紹一種更泛用的解法 稱作 變動參數法 (Variation of Parameter Method)來求解 二階 常係數 非齊次 微分方程 。

Comment:
此法事實上觀賞價值大於實用價值。因為對於任意高階 ODE 此法失效,但若讀者熟悉系統理論,可知道我們有更強大的工具來幫助我們求解 高階 ODE問題:亦即所謂狀態空間表示法 (State Space Representation),可以將任意高階ODE降為 一階 ODE 系統方程,再透過線性系統理論進行直接求解。


以下我們直接進入主題,考慮二階線性非齊次微分方程
L(y):=a0y+a1y+a2y=f
現在令 ϕ1ϕ2 為對 L(y)=0 的一組解基底,且令
ψ:=u1ϕ1+u2ϕ2其中 u1,u2為待定函數。(注意,上式中的 u1,u2 不為常數而是以 t 為變數的函數!)

現在觀察
ψ=u1ϕ1+u2ϕ2ψ=u1ϕ1+u1ϕ1+u2ϕ2+u2ϕ2ψ=u1ϕ1+u2ϕ2+2u1ϕ1+2u2ϕ2+u1ϕ1+u2ϕ2由於 L(ϕ1)=0L(ϕ2)=0 ,透過一連串代數整理,我們有
L(ψ)=a0ψ+a1ψ+a2ψ=a0(u1ϕ1+u2ϕ2+2u1ϕ1+2u2ϕ2+u1ϕ1+u2ϕ2)+a1(u1ϕ1+u1ϕ1+u2ϕ2+u2ϕ2)+a2(u1ϕ1+u2ϕ2)=a0(u1ϕ1+u2ϕ2+2u1ϕ1+2u2ϕ2)+a1(u1ϕ1+u2ϕ2)+u1L(ϕ1)=0+u2L(ϕ2)=0=a0(u1ϕ1+u2ϕ2+2u1ϕ1+2u2ϕ2)+a1(u1ϕ1+u2ϕ2)注意到由於我們要求 L(ψ)=f 故我們得到條件:
a0(u1ϕ1+u2ϕ2+2u1ϕ1+2u2ϕ2)+a1(u1ϕ1+u2ϕ2)=f()由於 u1,u2 待定,故我們需要兩條方程來解之,現在觀察上述條件,若我們假設
u1ϕ1+u2ϕ2=0()
u1ϕ1+u2ϕ2+u1ϕ1+u2ϕ2=0故現在讓 () 成立,則條件 () 可被大幅簡化為
a0(u1ϕ1+u2ϕ2)=f至此我們獲得了兩條方程來解我們的 u1,u2,亦即
{u1ϕ1+u2ϕ2=0u1ϕ1+u2ϕ2=fa0由上述可解得
u1=|0ϕ2f/a0ϕ2||ϕ1ϕ2ϕ1ϕ2|=W(ϕ1,ϕ2);u2=|ϕ10ϕ1f/a0||ϕ1ϕ2ϕ1ϕ2|=W(ϕ1,ϕ2)u1=fϕ2a0W(ϕ1,ϕ2);u2=ϕ1fa0W(ϕ1,ϕ2)u1,u2 可透過積分求得 u1,u2,亦即
u1=f(s)ϕ2(s)a0W(ϕ1,ϕ2)(s)ds;u2=ϕ1(s)f(s)a0W(ϕ1,ϕ2)(s)ds

以下我們看個例子:

Example:
試利用 variation of parameter 法求解
y(t)+y(t)=t
Proof:
首先求解 null solution yn(t):令 ϕ(t)=est 代入 ODE 中可得
(s2+1)est=0s1,2=±i 故可得
ϕ1(t)=es1t;ϕ2(t)=es2t讀者可驗證上述 ϕ1,ϕ2 彼此線性獨立 (驗證 Wronksian) 故 null solution
yn(t)=c1ϕ1(t)+c2ϕ2(t)=c1eit+c2eit一旦我們得到 yn 則可利用 variation of parameter 法 求 particular solution  yp(t)
ψ(t):=c1(t)ϕ1(t)+c2(t)ϕ2(t)=c1(t)eit+c2(t)eit 則我們可計算
ψ(t)=c1(t)eit+c2(t)eitψ(t)=(c1(t)eit+c2(t)eit):=0+(c1(t)ieitc2(t)ieit)ψ(t)=c1(t)ieitc1(t)eitc2(t)ieitc2(t)eit=c1(t)ieitc2(t)ieitc1(t)eitc2(t)eit注意到上述推倒中我們強制讓
c1(t)eit+c2(t)eit:=0() 現在將上述 ψ,ψ,ψ 代入 ODE中可得
ψ(t)+ψ(t)=t(c1(t)ieitc2(t)ieitc1(t)eitc2(t)eit)+c1(t)eit+c2(t)eit=tc1(t)ieitc2(t)ieit=t()現在觀察 ()() 我們得到一組聯立方程
{c1(t)eit+c2(t)eit=0c1(t)ieitc2(t)ieit=t{c1(t)=|0eittieit||eiteitieitieit|=t2ieit;c2(t)=|eit0ieitt||eiteitieitieit|=t2ieitc1(t)c2(t)取積分,可解得 c1,c2 如下
{c1(t)=12iteitdt=12eit(ti);c2(t)=12iteitdt=12eit(t+i)故 特解
yp(t)=c1(t)eit+c2(t)eit=12eit(ti)eit+12eit(t+i)eit=t最後 完整解
y(t)=yn(t)+yp(t)=(c1eit+c2eit)+t

Comment:
事實上,上述例子可透過 待定係數求解 特解,亦即令
yp(t):=At+B其中 A,B 為待定常數,現在觀察 yp=A
yp(t)=0故代入 y+y=t 可得
0+(At+B)=t 亦即 A=1,B=0 亦即我們可直接解得特解
yp(t)=t而無需如前述 變動餐數法繁複的手段來進行求解。

1 則留言:

[人工智慧] 本地端 DeepSeek R1 快速安裝:以 Macbook Pro M4 Chip為例

最近火熱的 DeepSeek R1 模型由於採用了 distill 技術,可以大幅降低計算成本,使得一般人有機會在自家筆電上跑性能逼近 Open AI ChatGPT o1的大語言模型。本文簡單介紹一步安裝在 Macbook Pro 的方法以及使用方法,以下測試採用 Macboo...