摘?要:常微分方程是數學分析、高等代數的后繼課程,對培養學生學習和研究能力具有重要作用。對常微分方程的題目進行一題多解的講授,可使學生從多個角度體會解題方法、解題技巧,提高學生的發散思維,從而加深學生對常微分方程基本理論、基本方法的理解,提高教學效果。?本文利用積分因子法、伯努利方程、常數變易法、變量替換法、Matlab法求解一道一階常微分方程的題目。
關鍵詞:積分因子;伯努利方程;常數變易;變量替換;Matlab
1?概述
微分方程的發展與微積分的發展是交織在一起的,17世紀,牛頓對特殊的一階微分方程用無窮級數求解;萊布尼茲發現了變量分離方程,給出了一階線性微分方程的求解方法;伯努利將力學中的問題轉化為微分方程問題并進行求解。18世紀,歐拉給出了一階微分方程恰當積分的條件,發展了積分因子理論。這段時期是微分方程“求通解”的時代,即將常微分方程的求解問題轉化為積分問題,希望用初等函數或超越函數表示其解。[1]直到劉維爾證明里卡蒂(Riccati)方程不存在一般的初等解法,數學家們意識到并不是任何一階微分方程都可以用初等解法求解。盡管初等解法可解的方程類型有限,但在處理實際微分方程問題時這些方法非常有效。[14]
學生在學習一階微分方程的初等解法時,要熟悉各種類型方程的解法,準確快速地判斷出給定方程的類型,并用相應的方法求通解,這是最基本的要求。但僅僅做到這種程度還不夠,實際練習過程中,我們可能會遇到不是直接能觀察出方程類型的題目,這就要求教師在教學過程中,要注意引導學生從不同的角度出發,根據方程具體特點,通過引入適當的變量替換,或者轉換自變量和因變量的地位,將已有的微分方程轉化為易于求解的類型,進而提高學生分析問題、解決問題的能力,拓展思路,培養學生的發散思維和探索精神。所以在教學過程中,教師可以通過一階微分方程的初等解法的題目來培養學生發散思維。
文獻[57]使用多種方法解決一階常微分方程的求解問題,受文獻[57]啟發,本文以文獻[2]中習題2.5的第1題第7小題為例,利用微分方程理論,給出7種不同的解法,進而鍛煉學生一題多解的能力,培養學生的發散思維。
2?解法研究
例:求微分方程y3dx+2(x2-xy2)dy=0?(1)的通解。
2.1?解法一
把x和y平等看待,判斷出(1)不是恰當方程。參考文獻[8]中求非恰當方程積分因子的方法,假設(1)有形如μ(x,y)=xαyβ的積分因子,利用比較系數法求出α和β,再用湊微分法求通解。
M(x,y)=y3,N(x,y)=2(x2-xy2),則My=3y2,Nx=4x-2y2,由于My≠Nx,且My-Nx-M=5y2-4x-y3,My-NxN=5y2-4x2(x2-xy2),因此方程(1)不是恰當方程,且(1)式的積分因子既與x有關,又與y有關,又觀察到M(x,y)和N(x,y)都是關于x和y的多項式,不妨假設(1)式有積分因子μ(x,y)=xαyβ,則xαy3+βdx+2(x2+αyβ-x1+αy2+β)dy=0是恰當方程,因此(xαy3+β)y=(2x2+αyβ-2x1+αy2+β)x,即(3+β)xαy2+β=2(2+α)x1+αyβ-2(1+α)xαy2+β,比較系數可得2+α=0
5+β+2α=0,可以得到α=-2
β=-1,因此,方程(1)的一個積分因子為μ(x,y)=1x2y。
方程(1)兩端同乘以1x2y,得到y2x2dx-2yxdy+2ydy=0?(2),該方程是恰當方程。
對于恰當方程,我們可以直接湊微分得d(-y2x)+d(lny2)=0,因此通解為lny2-y2x=c,c為任意常數。
注1:對于一些方程,如果設積分因子形式為μ(x,y)=xαyβ,但是按照恰當方程的充要條件卻算不出α和β的值,這就說明方程沒有形如μ(x,y)=xαyβ的積分因子。
進一步地,我們可以給出方程M(x,y)dx+N(x,y)dy=0有形如μ(x,y)=xαyβ積分因子的充要條件。
定理:假設M(x,y)和N(x,y)為關于x和y的多項式,方程M(x,y)dx+N(x,y)dy=0有形如μ(x,y)=xαyβ積分因子
My-NxαNx-βMy=1。
證明:由恰當方程判定的充要條件知,方程M(x,y)dx+N(x,y)dy=0有形如μ(x,y)=xαyβ積分因子。
y(xαyβM)=x(xαyβN)
βxαyβ-1M+xαyβMy=αxα-1yβN+xαyβNx
xαyβ(My-Nx)=αxα-1yβN-βxαyβ-1M
xy(My-Nx)=αyN-βxM
xy(My-Nx)αyN-βxM=1
My-NxαNx-βMy=1
2.2?解法二
先分組求積分因子,再利用恰當方程的判定或直接利用公式求通解。引理[2]若μ=μ(x,y)是方程M(x,y)dx+N(x,y)dy=0的一個積分因子,使得μM(x,y)dx+μN(x,y)dy=du(x,y),則μg(u(x,y))也是方程M(x,y)dx+N(x,y)dy=0的一個積分因子,其中g(·)是任意的可微函數。
將方程(1)進行分組y3dx-2xy2dy第一組+2x2dy第二組=0,由觀察知,第一組有積分因子μ1(x,y)=1xy3,第二組有積分因子μ2(x,y)=1x2,因此1xdx-2ydy=d(lnxy2),2dy=d(2y),即第一組和第二組對應的原函數分別為u1(x,y)=ln(xy2),u2(x,y)=2y,由定理知,μ1g1(u1)是第一組的積分因子,μ2g2(u2)是第二組的積分因子,其中g1,g2是任意的可微函數。如果選取g1(t)=e-t,g2(t)=2t,則μ1g1(u1)=μ2g2(u2)=1x2y:=μ,所以μ=1x2y是方程(1)的一個積分因子。
利用恰當方程的判定求解。
求u(x,y)使其滿足ux=y2x2?(3),uy=2y-2yx?(4),將(3)對x進行積分,得到u(x,y)=-y2x+φ(y)?(5),將(5)對y求導,并由(4)得到uy=-2yx+φ′(y)=2y-2yx,因此dφ(y)dy=2y,解得φ(y)=lny2。
因此,方程(1)的通解為lny2-y2x=c,c為任意常數。
也可直接利用公式求通解,
∫M(x,y)dx+∫N(x,y)-y∫M(x,y)dxdy
=∫y2x2dx+∫2y-2yx-y∫y2x2dxdy
=-y2x+lny2=c
其中c為任意常數。
2.3?解法三
化為伯努利方程求解,將方程(1)化成dydx=y32(xy2-x2)的形式,發現該微分方程的求解比較困難,但是若把y當作自變量,x當作未知函數,方程可化為n=2的伯努利方程。
dxdy=2yx-2x2y3(n=2),令z=x-1,則:dzdy=-1x2dxdy=-2yz+2y3?(6)
方程(6)是以y為自變量,z為因變量的一階線性微分方程,可以用常數變易法求其通解。
首先求(6)對應齊次方程dzdy=-2y的通解z=ce∫-2ydy=cy2,然后利用常數變易法求(6)的通解,設(6)的通解為z=c(y)y2,那么dzdy=dc(y)dy·1y2-2y3,代入(6)得到dc(y)dy=2y,解得c(y)=lny2+c-,則原方程的通解為1x=lny2+c-y2,c-為任意常數,化簡后與解法一、二的結果一致。
事實上,伯努利微分方程dydx=p(x)y+q(x)yn(n≠0,1)的通解公式為y1-n=e(1-n)∫p(x)dx((1-n)∫q(x)e-(1-n)∫p(x)dx+c),本題中把y當作自變量,x當作未知函數,因此,p(y)=2y,q(y)=-2y3,直接利用公式求解:
x-1=e-∫2ydy(-∫-2y3e∫2ydydy+c)
=1y2(∫2ydy+c)
=lny2+cy2
其中c為任意常數。
2.4?解法四
對方程dxdy=2yx-2x2y3兩邊同時除以x2,得到1x2dxdy=2y1x-2y3,先把dx進行湊微分,得到-d(1x)dy=2y1x-2y3,此時令z=1x,上述方程化為dzdy=-2yz+2y3。
直接代入一階線性微分方程通解公式。
z=e∫p(y)dy(∫q(y)e∫-p(y)dydy+c)
=e∫-2ydy(∫2y3e∫2ydy+c)
=lny2+cy2
其中c為任意常數,與前三種解法結果一致。
2.5?解法五
將原方程改寫為dxdy=(2y-2xy3)x,可利用常數變易法求解。
首先求dxdy=2yx的通解,其通解為x=ce∫2ydy=cy2。
其次用常數變易法求原微分方程的通解,設x=c(y)y2,則dxdy=c′(y)·y2+c(y)·2y=(2y-2c(y)y2y3)c(y)y2,整理化簡得到-dc(y)c2(y)=2ydy,通解為1c(y)=lny2+c-,因此原方程通解為x=y2lny2+c-,c-為任意常數,化簡后與解法一、二、三、四的結果一致。
2.6?解法六
將方程(1)轉化為dxdy=2yx-2x2y3后,可做變量替換z=xy,得到dxdy=z+ydzdy=2z-2z21y,y≠0時,上式化簡為dzdy=zy-2z2y2,該方程經變量替換u=zy后為變量分離方程。
因此,可直接做變量替換u=xy2,則x=uy2,dxdy=y2dudy+2uy=2uy-2u2y,因此dudy=-2u2y,這是變量分離方程,通解為1u=lny2+c,因此原方程的通解lny2-y2x=c,c為任意常數。
2.7?解法七?Matlab法
Matlab具有數值計算和符號計算等功能,下面利用Matlab軟件中的dsolve函數[9]求方程dxdy=(2y-2xy3)x的符號解。
輸入命令
dsolve('Dx=2*x*(y^2-x)/y^3','y')
輸出
ans=
y^2/(C1+2*log(y))b
0
通解化簡后與前六種方法一致。
3?解法小結
解法一、解法二分別使用了待定系數法和分組組合法求出了方程(1)的積分因子,然后用湊微分法、恰當方程的判定法、公式法對得到的恰當方程求通解。這兩種方法是求解一階微分方程的基本解法,可以求解一大類一階微分方程的題目,應該要求學生熟練掌握。解法三將方程進行化簡,得到易求通解的伯努利方程,引入變量替換后將伯努利方程轉化為一階線性微分方程。解法四在解法三的得到伯努利方程的基礎上,直接進行湊微分換元,一階線性微分方程。解法五直接將化簡后的方程利用常數變易法求解。解法三、四、五反映了學生對一階線性微分方程解的結構的理解,應該要求學生熟練掌握。解法六引入新的變量替換,將方程轉化為更易求解的變量分離方程,這種解法比較靈活,學生需要多觀察、多練習,積累經驗。解法七給出了一種Matlab解法。一題多解的案例激發了學生的學習興趣,培養了學生的發散思維。
參考文獻:
[1]王高雄,周之銘.常微分方程[M].北京:高等教育出版社,2020.
[2]袁榮.常微分方程[M].北京:高等教育出版社,2012.
[3]丁同仁.常微分方程[M].北京:高等教育出版社,2010.
[4][美]克萊因(M.Kline).古今數學思想[M].張理京,張錦炎,譯.上海科學技術出版社,1979.
[5]史周晰,趙臨龍.一類常微分方程的解法研究與推廣[J].科技風,2023(4):98100.
[6]林均,羅日才.一道常微分方程題的幾種解法[J].高等數學研究,2021,24(03):5456.
[7]朱華,楊廣宇.基于微分方程的教學案例研究[J].高等數學研究,2023,26(03):9597.
[8]趙莉莉.積分因子與積分因子法[J].高等數學研究,2023,26(03):1922+25.
[9]鄧麗瑩,梁倩倩,羅媚,等.MATLAB在求解常微分方程積分因子中的應用[J].科技風,2019(10):3536.
作者簡介:李曉彤(1996—?),女,漢族,山東德州人,碩士研究生,助教,從事圖論研究。