陸春桃
(廣西電力職業(yè)技術(shù)學(xué)院,廣西南寧530007)
常微分方程教學(xué)非常嚴(yán)謹(jǐn),對(duì)學(xué)生邏輯思維要求非常高。通過調(diào)查發(fā)現(xiàn),部分學(xué)生認(rèn)為常微分方程課程內(nèi)容枯燥乏味,對(duì)這門課程存有畏懼的心理。教學(xué)實(shí)踐表明,常微分方程教學(xué)中的一些公式以及相關(guān)內(nèi)容需要借助教學(xué)輔助軟件才能完成。因此有必要改變常微分方程課程原有的教學(xué)方式,盡量融入一些生動(dòng)的教學(xué)元素,調(diào)動(dòng)學(xué)生學(xué)習(xí)的興趣,提高常微分方程課程的教學(xué)質(zhì)量。
為能夠切實(shí)地改進(jìn)常微分方程課堂教學(xué)方式,提高教學(xué)效果,筆者結(jié)合具體實(shí)例,分析Maple、Matlab、Mathematica等數(shù)學(xué)圖像處理軟件在常微分方程教學(xué)中的應(yīng)用。
Maple數(shù)學(xué)圖像處理軟件是目前世界上最為通用的數(shù)學(xué)和工程計(jì)算軟件之一,在數(shù)學(xué)科學(xué)領(lǐng)域享有盛譽(yù),有“數(shù)學(xué)家的軟件”之稱。Maple不僅僅提供編程工具,更重要的是提供數(shù)學(xué)知識(shí)。Maple是科研人員和學(xué)生必備的科學(xué)計(jì)算工具,它可以幫助使用者快速、高效地解決從簡(jiǎn)單的數(shù)字計(jì)算到高度復(fù)雜的非線性問題。通過Maple產(chǎn)品,我們可以在單一的環(huán)境中實(shí)現(xiàn)多領(lǐng)域物理系統(tǒng)建模和仿真、符號(hào)計(jì)算、數(shù)值計(jì)算、程序設(shè)計(jì)、技術(shù)文件、報(bào)告演示、算法開發(fā)、外部程序連接等功能,能夠滿足各個(gè)層次使用者的需要。
解 在Maple軟件中輸入微分方程eq:=D(y)(x),具體步驟如下
第一,調(diào)用odeadvisor命令判別方程類型
> DEtools[odeadvisor](eq);
[[- homogeneous,classG],- rational,- Riccati]
這表明此為Riccati方程,并具有齊次方程和有理屬性。第二,用dsolve命令求解方程的顯式解
>dsolve(eq);
再給出它的隱式解
> dsolve(eq,implicit);
第三,給出方程的一個(gè)初值,做出它的解的圖像,如圖1所示。
圖1 例1圖示
根據(jù)以上求解的過程,我們可以很清楚地看出,利用Maple數(shù)學(xué)圖像處理軟件解決常微分方程問題是非常便捷的,能夠讓學(xué)生很直觀地觀察圖像的變化。
許多實(shí)際問題都可以通過微分方程的形式進(jìn)行表述,傳統(tǒng)的求解微分方程的方法有近似分析解法、表解法和圖解法,這些方法都需對(duì)方程進(jìn)行大量的假設(shè),會(huì)使數(shù)學(xué)模型有一定的失真。數(shù)值解法利用計(jì)算機(jī)運(yùn)算,使求解更精確、效率更高。Matlab是一種數(shù)學(xué)軟件包,有高級(jí)編程格式,使計(jì)算結(jié)果更具有可信性,因此將Matlab運(yùn)用在微分方程的求解過程中具有實(shí)際意義。本文對(duì)常微分方程數(shù)值解問題作進(jìn)一步探討,并應(yīng)用Matlab對(duì)其中的難解進(jìn)行編程實(shí)現(xiàn),程序簡(jiǎn)潔、直觀,求解速度快,方法實(shí)用性較強(qiáng)。
例2 微分方程xy'+y-ex=0在初始條件y(1)=2e下的特解,并畫出解函數(shù)的圖形。
方法1 除常系數(shù)線性微分方程可用特征根法求解、少數(shù)特殊方程可用初等積分法求解以外,大部分微分方程求解主要依靠數(shù)值解法??紤]一階常微分方程初值問題。
其中 y=(y1,y2,…,ym)',f=(f1,f2,…,fm)',y0=(y10,y20,…,ym0)'。運(yùn)用數(shù)值解法,尋求 y(t)在一系列離散節(jié)點(diǎn) t0<t1<… <tn≤tf上的近似值 yk,k=0,1,…,n,稱hk=tk+1-tk為步長(zhǎng),通常取為常量h。最簡(jiǎn)單的數(shù)值解法是Euler法。
方法2 方程求解的Matlab程序?yàn)?
Syms x y; %定義x,y為符號(hào)變量
y=dsolve(’x*Dy+y-exp(x)=0’,’y(1)=2*exp(1)’,’x’);%求出的微分方程在初始條件下的特解
ezplot(y); %作出解函數(shù)的圖象
微分方程的特解為
y=1/x*exp(x)+1/x*exp(1)
圖1 例2圖示
由例2可以看出,通過Matlab工具求解,能夠更加形象地展示函數(shù)變化的情況,提高運(yùn)算的準(zhǔn)確性。
Mathematica擁有強(qiáng)大的數(shù)值計(jì)算和符號(hào)運(yùn)算能力,是目前為止使用最廣泛的數(shù)學(xué)軟件之一。Mathematica程序設(shè)計(jì)語(yǔ)言以“條目重寫”為基礎(chǔ),并支持函數(shù)式和過程式程序設(shè)計(jì)。它已經(jīng)被廣泛地應(yīng)用于物理、生物、社會(huì)學(xué)等多個(gè)領(lǐng)域。
采用Matlab語(yǔ)言只需設(shè)置簡(jiǎn)單指令,就可以快速地得到我們所需要的圖像,并且可以進(jìn)行便利的操作與修改。在傳統(tǒng)教學(xué)過程中,獲取圖形比較困難,所得圖形又不清晰,這就為分析造成了一定的困難。下面我們通過實(shí)例來對(duì)比分析傳統(tǒng)的常微分教學(xué)方法和使用軟件輔助教學(xué)方法的特點(diǎn)。
解 方法1(傳統(tǒng)方法)
這個(gè)函數(shù)在區(qū)間[0,0.5]屬于減函數(shù)。
方法2(數(shù)學(xué)圖像處理軟件處理方式)
Matlab程序?yàn)?/p>
運(yùn)行結(jié)果為
圖形結(jié)果如圖3所示。
圖3 例3圖示
通過這個(gè)例題可以看出,傳統(tǒng)的算法計(jì)算起來相當(dāng)繁瑣,大概使用到了一級(jí)求導(dǎo)、二級(jí)求導(dǎo),計(jì)算量極大。利用Matlab軟件中的數(shù)值方法對(duì)常微分方程進(jìn)行求解,其主要思路如下:把求解的時(shí)間區(qū)間劃分成有限步,為每一步計(jì)算出一個(gè)解,如果求得的解不滿足誤差限制,則減少步長(zhǎng),再求解。如此重復(fù),直到滿足誤差限為止。另外,可以使用函數(shù)指令來完成計(jì)算,只需要輸入指令、方程式以及相關(guān)的限制條件便可求得結(jié)果,操作起來相對(duì)簡(jiǎn)單。
將數(shù)學(xué)圖像處理軟件應(yīng)用于常微分方程教學(xué)中,應(yīng)注意如下幾個(gè)問題:其一,要考慮到運(yùn)用數(shù)學(xué)圖像軟件是否具備相應(yīng)的外部環(huán)境,是否具備專業(yè)的教師隊(duì)伍;其二,應(yīng)喚起學(xué)生的主動(dòng)參與,培養(yǎng)學(xué)生的主體意識(shí);其三,通過提問、激勵(lì)等形式,增強(qiáng)學(xué)生學(xué)習(xí)的信心;其四,準(zhǔn)確劃分學(xué)生的認(rèn)知層次,真正做到因材施教。只有把握好上述問題,才能取得事半功倍的教學(xué)效果。
[1]王高雄.常微分方程[M].3版.北京:高等教育出版社,2006.
[2]王劍俠,龔力強(qiáng).Maple在高等數(shù)學(xué)中的應(yīng)用[J].廣州大學(xué)學(xué)報(bào):自然科學(xué)版,2002(2):69-73.
[3]益林鐘,樂群彭,劉炳文.常微分方程及其Maple、MATLAB求解[M].北京:清華大學(xué)出版社,2007.
[4]張涌志,徐彥琴.MATLAB教程[M].北京:北京航空航天大學(xué)出版社,2001.