摘 要:Matlab是美國(guó)MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,是用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級(jí)技術(shù)計(jì)算語言和交互式環(huán)境。利用Matlab強(qiáng)大的圖形處理功能,可以繪制函數(shù)圖形,用于數(shù)據(jù)可視化,并利用豐富的數(shù)學(xué)運(yùn)算函數(shù)來求解各種類型的微分方程,展示了Matlab工具在微分方程計(jì)算中的優(yōu)越性。本文首先介紹了Matlab在簡(jiǎn)單一階常微分方程中的應(yīng)用,其次介紹了在含指數(shù)微分方程中的應(yīng)用,之后介紹了其在解決微分方程數(shù)值解問題中的應(yīng)用,并簡(jiǎn)單介紹了Rumge-Kutta法,梯形法則,同時(shí)運(yùn)用了Matlab出色的繪圖功能,將所求解問題可視化,清晰直觀。
關(guān)鍵詞:Matlab 微分方程 Runge-Kutta法
MatLab軟件在作圖和數(shù)值計(jì)算上有其它軟件無法比擬的優(yōu)勢(shì),例如,閆金亮[1]的文獻(xiàn)介紹了Matlab在求解常微方程、利用Matlab來描繪常微分方程解曲線及方向場(chǎng)、利用Matlab描繪常微分方程奇解的幾何意義等的軟件用途,王亞男[2]的文獻(xiàn)介紹了通過Matlab軟件的輔助,設(shè)計(jì)程序,用歐拉公式計(jì)算微方程的近似解與解析解,用二階-庫(kù)塔公式計(jì)算微分方程的近似解與解析解。本文從實(shí)際出發(fā),介紹了利用Matlab解決求微分方程的問題。
一、Matlab在簡(jiǎn)單一階微分方程中的應(yīng)用
Matlab能夠解決簡(jiǎn)單的一階線性微分方程的問題。其解決的原理并不復(fù)雜。在確定了自變量與因變量后,只需將一階導(dǎo)變量與常變量分離,對(duì)等號(hào)兩邊的代數(shù)式同時(shí)積分,即可得出方程的解。
例1.:y=2x^2+x
解:設(shè)計(jì)程序如下:
syms x y
y=dsolve(‘Dy=2*x^2+x,x)
diff((y,x)-2*x^2-x)
simplify(diff(y,x)-2*x^2-x)
x=0:;
輸出結(jié)果得:y=(x^2*(4*x+3))/6;
所作圖像如下圖:
二、Matlab在含指數(shù)微分方程中的應(yīng)用
在解決含指數(shù)的微分方程中,Matlab同樣有很好的作用。其解決的原理與解決一階線性微分方程有相類似之處。首先定義自變量x,因變量y以及微分函數(shù)dsolve,對(duì)于本題,可以通過常數(shù)變易法,先解出的通解,再根據(jù)此原理得出函數(shù)的特殊解P=2x,即可對(duì)題目進(jìn)行求解。
例2.
解:設(shè)計(jì)程序如下:
Syms x y
y=dsolve(‘Dy=2*x*exp(-x^2)+x*y,x)
siff(y,x)-2*x*exp(-x^2)+x*y
simplify(diff(y,x)+x*y-2*x*exp(-x^2))
所作圖像如下圖:
三、Matlab在微分方程初值問題中的應(yīng)用
對(duì)于常微分方程的初值問題,實(shí)際上就是要求未知函數(shù)y(x)在區(qū)間[a,b]上的一系列離散點(diǎn)(節(jié)點(diǎn))上函數(shù)值y(xk)的近似值yk(k=1,2,3....,n)的問題。(a=x0 (1) 由此方法求解方程是不合適的,但其滿足二階Runge-Kuta方法的計(jì)算公式?,F(xiàn)給出計(jì)算公式: (2) 其中c1,c2,均為常數(shù),為簡(jiǎn)單起見,常令c1=c2=,=1。將c1,c2以及a的值帶入可根據(jù)該方法解決微分方程的初值問題數(shù)值解求解的問題。 例3.求解微分方程初值問題的數(shù)值解 ,求解范圍為區(qū)間[0, 1]。 解:設(shè)計(jì)程序如下: fun=inline(x^2+y-1,x,y); [x,y]=ode23(fun,[0,1],2); plot(x,y,o-) y=C9*exp(x)-2*x-1 程序運(yùn)行繪圖如下圖: 拓展:經(jīng)典的四階Runge-Kutta算法在求解微分方程初值問題的數(shù)值解時(shí)同樣有著很強(qiáng)的作用。給出四階Runge-Kutta法的四階算法,為: (3) 對(duì)于經(jīng)典的四階,或者是n階的Runge-Kutta法其中的k1,k2,k3,k4之前的系數(shù)滿足梯形法則公式,給出梯形法則的公式: (4) 可將其等同理解為被積函數(shù)近似的看做一條直線,而被積的部分近似的看做梯形。若是題目要求得到更加精確的數(shù)值,可以將要積的區(qū)間分成更多個(gè)小的區(qū)間,再在每個(gè)區(qū)間之內(nèi)個(gè)別估計(jì);那么可以將原公式改進(jìn)為: (5) 在Runge-Kutta法,微分方程的求解問題,定積分的估算問題等,都可以借助梯形法則來幫助求解問題。 四、總結(jié) 從上面三個(gè)例題中可以發(fā)現(xiàn),Matlab在解決微分方程的相關(guān)問題中,確實(shí)發(fā)揮著極其重要的作用,其不僅可以解決較為復(fù)雜的微分方程的求解問題、在解決微分方程的初值問題時(shí)找到較為精確的數(shù)值解,還可以使函數(shù)可視化,幫助更好的理解題目與解題思路。因此,Matlab已成為解決復(fù)雜微分方程的問題的重要工具。 參考文獻(xiàn) [1]閆金亮.Matlab在常微分方程教學(xué)中的應(yīng)用[J].武夷學(xué)院學(xué)報(bào),2012,(02):95-99. [2]王亞男.MATLAB在常微分方程中簡(jiǎn)單應(yīng)用[J].福建電腦,2011,(09):194+189. 作者簡(jiǎn)介:孫瑞鵬(2000.09-),男,漢族,河南省實(shí)驗(yàn)中學(xué),研究方向:Matlab在微分方程的應(yīng)用。