孫亞輝 楊勇歌
[摘 要] 常微分方程是大學(xué)數(shù)學(xué)類專業(yè)的核心課程,有著深刻而又生動(dòng)的實(shí)際背景。在常微分方程教學(xué)過程中引入軟件MATLAB,加深了學(xué)生對(duì)知識(shí)的理解,提高了學(xué)生解決問題的能力。
[關(guān)鍵詞] 常微分方程;MATLAB;通解;數(shù)值解
[基金項(xiàng)目] 2020年廣東工業(yè)大學(xué)校級(jí)“本科教學(xué)工程”教學(xué)改革項(xiàng)目“基于OBE理念的常微分方程教學(xué)模式改革研究”
[作者簡介] 孫亞輝(1988—),女,河南封丘人,博士,廣東工業(yè)大學(xué)應(yīng)用數(shù)學(xué)學(xué)院,研究方向?yàn)榇髮W(xué)數(shù)學(xué)教育教學(xué)、動(dòng)力學(xué)與控制;
楊勇歌(1989—),男,河南扶溝人,博士,廣東工業(yè)大學(xué)應(yīng)用數(shù)學(xué)學(xué)院,碩士生導(dǎo)師(通信作者),研究方向?yàn)榇髮W(xué)數(shù)學(xué)教育教學(xué)、動(dòng)力學(xué)與控制。
[中圖分類號(hào)] G642.0? ? [文獻(xiàn)標(biāo)識(shí)碼] A? ? [文章編號(hào)] 1674-9324(2020)42-0239-02? ? [收稿日期] 2020-02-16
一、引言
常微分方程是大學(xué)數(shù)學(xué)類專業(yè)的核心課程之一,相對(duì)數(shù)學(xué)分析、高等代數(shù)等課程來說,難度更大。此外,常微分方程有著深刻而又生動(dòng)的實(shí)際背景,是數(shù)學(xué)聯(lián)系實(shí)際問題的重要渠道之一。目前,越來越多的本科生參與數(shù)學(xué)建模競賽,在建模過程中,經(jīng)常會(huì)遇到常微分方程,這就給常微分方程的教學(xué)提出了更高的要求:常微分方程的教學(xué)要讓學(xué)生不僅能理解相關(guān)理論,而且還能有一定的動(dòng)手能力,能利用相關(guān)理論知識(shí)去解決實(shí)際的數(shù)學(xué)問題。使用數(shù)學(xué)軟件可以提高學(xué)生的動(dòng)手能力,因此在教學(xué)過程中,有必要引入相關(guān)數(shù)學(xué)軟件。MATLAB由于其高效的數(shù)值計(jì)算功能、完備的圖形處理功能和友好的用戶界面等特點(diǎn),被廣泛應(yīng)用于各個(gè)領(lǐng)域。結(jié)合筆者的教學(xué)實(shí)踐,本文初步討論MATLAB軟件在常微分方程教學(xué)過程中的探索和應(yīng)用。
二、使用MATLAB求常微分方程通解
例:求常微分方程組的通解。
(1)根據(jù)相關(guān)知識(shí),易得通解為:
(2)使用MATLAB求通解,對(duì)話框中輸入:
[x,y,z]=dsolve('Dx=3*x+y,Dy=-4*x-y,Dz=4*x-8*y-2*z','t')
回車可得:
x=(11*C1*exp(t))/100+(3*C3*exp(t))/20+(3*C1*t*
exp(t))/20
y=-(7*C1*exp(t))/100-(3*C3*exp(t))/10-(3*C1*t*exp(t))/10
z=exp(-2*t)*(C2+C3*exp(3*t)+C1*t*exp(3*t))
(3)對(duì)比(1)和(2),兩種方法結(jié)果是一致的。
三、使用MATLAB求常微分方程組的數(shù)值解
大量的常微分方程的通解是無法求得的,因此需要使用數(shù)值模擬的方法研究常微分方程的性質(zhì)。本小節(jié)使用一個(gè)經(jīng)典的例子,介紹常微分方程組數(shù)值解的實(shí)現(xiàn)過程。
例:Lorenz方程如下:
(1)創(chuàng)建文件名為fun的m函數(shù)文件:
function z=fun(x)
a=10.0;b=8.0/3.0;c=28.0;
z(1)=-a*x(1)+a*x(2);
z(2)=-x(1)*x(3)+c*x(1)-x(2);
z(3)=x(1)*x(2)-b*x(3);
end
(2)創(chuàng)建文件名為RungeKutta的m函數(shù)文件:
function x=RungeKutta(t0,t1,x0,h)
n=(t1-t0)/h;x(1,:)=x0;
for i=1:n
k1=fun(x(i,:));
k2=fun(x(i,:)+k1*h/2);
k3=fun(x(i,:)+k2*h/2);
k4=fun(x(i,:)+k3*h);x(i+1,:)=x(i,:)+h.*(k1+2*k2+2*k3+k4)./6;
end end
(3)創(chuàng)建文件名為Lorenz的m腳本文件:
t0=0;t1=200;x0=[0 8 9];h=0.01;
x=RungeKutta(t0,t1,x0,h);
plot(x(:,1),x(:,3));grid on;box on;
title('x-z相圖','Fontsize',20);
xlabel('x','Fontsize',20);ylabel('z','Fontsize',20);
set(gca,'FontSize',15).
(4)運(yùn)行最后創(chuàng)建的m腳本文件,可以得到右圖,這樣學(xué)生對(duì)蝴蝶效應(yīng)有更直觀的理解。
需要注意的是:①三個(gè)m文件必須在同一個(gè)文件夾目錄下。②本小節(jié)程序使用了四階龍格庫塔方法,而不是ode45函數(shù)。因?yàn)楹笳咭呀?jīng)被MATLAB封裝好了,雖然高效好用,但掩蓋了其實(shí)現(xiàn)原理,不利于學(xué)生深刻理解數(shù)值方法的實(shí)現(xiàn)過程。
四、結(jié)語
為了提高學(xué)生學(xué)習(xí)常微分課程時(shí)的學(xué)習(xí)興趣和解決實(shí)際問題的能力,筆者將數(shù)學(xué)軟件MATLAB引入課堂。教學(xué)實(shí)踐表明,將MATLAB引入課堂教學(xué),達(dá)到了預(yù)期的教學(xué)目的。
參考文獻(xiàn)
[1]王高雄,等.常微分方程[M].北京:高等教育出版社,2006.
Application of MATLAB in Ordinary Differential Equation Course Teaching
SUN Ya-hui, YANG Yong-ge
(School of Applied Mathematics, Guangdong University of Technology, Guangzhou, Guangdong 510520, China)
Abstract:The course in Ordinary Differential Equation, with a deep and vivid practical background, is a key course for mathematics undergraduates.The authors introduce the software MATLAB in the teaching of Ordinary Differential Equation, which deepens the students' understanding of knowledge and improves their ability to solve problems.
Key words:Ordinary Differential Equation;MATLAB;general solutions;numerical solutions