李 政,李希敏
(桂林師范高等??茖W(xué)校數(shù)學(xué)與計算機(jī)技術(shù)系,廣西桂林 541199)
常微分方程課程是大學(xué)數(shù)學(xué)等相關(guān)專業(yè)的核心課程,其應(yīng)用領(lǐng)域十分廣泛,很多與變化率相關(guān)的問題都可以用微分方程來解決。如:魚的捕撈、傳染病的傳播預(yù)測、人口增長的預(yù)測等[1]。在實際的課程教學(xué)中存在幾個急需解決的問題:一是很多的方程求解步驟煩瑣冗長,得到的解復(fù)雜,無法了解解的性質(zhì);二是大部分方程可以證明其有解,卻無法求出精確的解,需要求方程的數(shù)值解,而數(shù)值解的計算量大,無法在課堂上完成,影響教學(xué)的完整性;三是繪制向量場是求方程近似解與研究方程解的性質(zhì)的重要手段,但是向量場的繪制計算量大,手工繪制的向量場誤差大,影響了對解的研究。本文以MATLAB 為工具,切實解決常微分方程課程教學(xué)中存在的這些問題。
MATLAB 是世界著名的數(shù)學(xué)軟件之一,它在符號運(yùn)算與數(shù)值計算方面功能強(qiáng)大。MATLAB 可以進(jìn)行矩陣運(yùn)算、繪制函數(shù)和數(shù)據(jù)、實現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語言的程序等,主要應(yīng)用于科學(xué)計算、控制設(shè)計、信號處理與通訊、圖像處理、信號檢測、金融建模設(shè)計與分析等領(lǐng)域。矩陣是MATLAB 的基本數(shù)據(jù)單位,其指令表達(dá)式與數(shù)學(xué)、工程中常用的形式十分相似,用MATLAB 來解數(shù)學(xué)問題要比用C、FORTRAN 等語言完成相同的事情簡單方便,MATLAB 同時吸收了像Maple 等軟件的優(yōu)點,成為一個強(qiáng)大的數(shù)學(xué)軟件。
很多微分方程的求解過程十分冗長,同時需要進(jìn)行各種復(fù)雜的變換處理,給微分方程的應(yīng)用帶來很大的麻煩,耗費了教師大量的課堂時間。利用MATLAB 可以快速求出方程的解析解,同時繪制積分曲線,便于對解的情況進(jìn)行研究。
例1:求微分方程的特解,并畫出積分曲線。
分析:在MATLAB 中可以調(diào)用函數(shù)dsolve()求微分方程的通解和特解,其調(diào)用的一般格式為:dsolve('eq1,eq2…','cond1,cond2,…')。用fplot()函數(shù)來繪制積分曲線圖,其調(diào)用格式為fplot(f,xinterval)。其中用Dy,D2y 分別表示y 的一階導(dǎo)數(shù)與二階導(dǎo)數(shù)。MATLAB 求解的步驟如下:
syms x y;%定義x,y 為符號變量(便于求導(dǎo));y=dsolve('D2y+4*Dy+29*y=0','y(0)=0','Dy(0)=15','x');%求解此微分方程在初始條件下的特解,得到結(jié)果如下:
這里exp 是常數(shù)e,再調(diào)用fplot()繪制函數(shù)圖像[2]:
得到積分曲線如圖1 所示。
圖1 方程的積分曲線
整個求解過程簡單快速,并能精確地繪制出積分曲線,便于分析研究解的情況,節(jié)省大量的時間,可以提高課堂效率。
設(shè)y(x)是初值問題的解:
y(x)的存在區(qū)間是[a,b],令a=x0<x1<x2<…xn=b,hk=xk+1-xk且h=(b-a)/n,把h 稱為步長。假定y(x)的表達(dá)式很難求得,但是可以利用數(shù)值方法求得y(x)在點xk的值y(xk)的近似值,記為yk,也就是y(xk)≈yk,從而求得一組點集:(x1,y1),(x2,y2)…(xn,yn),稱為微分方程的數(shù)值解。
歐拉折線法的核心是利用差分來近似微分,簡單地說是以直代曲,在很小的局部把曲線看成直線。根據(jù)歐拉折線法可以得到方程的數(shù)值解:
設(shè)節(jié)點為a=x0<x1…xn=b,初值問題歐拉折線法為:
分析:可以看到,例2 的初值問題是無法找到方程的解析解的,利用歐拉折線在MATLAB中實現(xiàn)求方程的數(shù)值解如下:
可以看到,利用MATLAB 能快速求出微分方程的數(shù)值解,并繪制數(shù)值解的散點圖(見圖2),從而觀察到解的大致圖像。但是,在這里要注意:一般數(shù)值解的范圍比較?。ㄔ谶@里我們設(shè)定的間是[1,1.4]),否則誤差會比較大。
圖2 方程數(shù)值解的散點
通過向量場可以近似積分曲線,還可根據(jù)向量場本身的性質(zhì)來研究解的性質(zhì),它是微分方程課堂教學(xué)中的重點內(nèi)容,可是在教學(xué)過程中向量場的繪制往往占用教師很多的時間。如果向量場中向量的繪制數(shù)量太少,就會看不到積分曲線的性質(zhì)與特征,這時可以利用MATLAB 繪制向量場,提高課程教學(xué)的效率。
分析:定義一個生成向量場數(shù)據(jù)的函數(shù):
利用MATLAB 的quiver 函數(shù)繪制向量場,quiver 調(diào)用格式:quiver(X,Y,U,V)在由X和Y 指定的笛卡爾坐標(biāo)上繪制具有定向分量U 和V 的箭頭。
繪制向量場過程如下:
結(jié)果如圖3 所示:
圖3 向量場與積分曲線
通過向量場與積分曲線的對比,可以看到向量場近似方程的解,從而加深學(xué)生對向量場與積分曲線之間關(guān)系的了解,突出教學(xué)重點,提高課堂教學(xué)的效率。
把MATLAB 強(qiáng)大的符號運(yùn)算能力、精確的數(shù)值計算與豐富的繪圖功能應(yīng)用到常微分方程的課堂教學(xué)中,解決教學(xué)中求方程的解析解難、求數(shù)值解計算量大、繪制向量場不精確等問題,可以提高常微分方程課堂教學(xué)效率,促進(jìn)微分方程在實際中的應(yīng)用。
桂林師范高等??茖W(xué)校學(xué)報2022年2期