基于Matlab的微分方程课堂教学设计

时间:2022-07-25 07:10:24

基于Matlab的微分方程课堂教学设计

摘要:高等数学教学的改革受到国内各高校的重视。本文在传统的教学基础上,以微分方程一章为例,结合matlab设计课堂教学内容和形式。这种教学设计是对传统教学的有益补充,同时还可以激发学生学习高等数学的兴趣。

关键词:微分方程;数值解;Matlab;教学设计

中图分类号:G642.41 文献标志码:A 文章编号:1674-9324(2014)52-0168-02

一、引言

微分方程是一门独立的数学学科,有完整的理论体系,是描述动态系统最常用的数学工具,也是很多科学与工程领域数学建模的基础[1]。在高等数学课程中,重点介绍了线性和低阶特殊的微分方程的解析解的求法。这些解法中体现了降阶、复杂问题简单化等数学思想[2]。

微分方程在几何、力学和物理等实际问题中具有广泛的应用,学生可以在该部分的学习中,感受到应用数学建模的理论和方法解决实际问题的魅力。实际上能够能够求得解析解的微分方程并不多,所以数值解就显得尤为重要。利用数学软件对微分方程的解进行数值模拟,是对微分方程求解的有益补充。Matlab[3]是美国MathWorks公司出品的商业数学软件,在数值计算方面具有独特的优势。本文以可降阶的二阶微分方程为例,简单地介绍了Matlab在微分方程教学中的辅助作用,同时这种教学设计方式可以推广到其他章节。

二、教学目标和教学手段等

该部分的教学目标是掌握三种特殊形式的二阶微分方程的降阶求解方法,同时树立降阶和利用微分方程建立模型的数学思想。在现阶段由于计算机软件技术的发展,可以加上“了解或利用Matlab求解微分方程”这一个新的目标。教学形式仍然是讲授为主,教学手段是多媒体教学加上Matlab软件。

三、教材上的内容

对于不同的高等数学教材来说,该部分的内容几乎没有差别。这里只是简单提及一下。

针对三种特殊的微分方程y''=f(x)、y''=f(x,y')、y''=f(y,y'),采用降阶的思想,即令y'=p,对于前两种形式的微分的微分方程,再令y''=p'实现降阶。对于最后一种形式,为了防止一个微分方程中出现两个未知函数,在y'=p的基础上,令y''=p■,实现降阶,并求得到方程的解。运用教材中的求解方法,可以得到微分方程解的显式或隐式表达式。Matlab可以求解显式解。重要的是,在无法获得解析解的时候,可以通过Matlab进行数值模拟[4,5]。接下来主要介绍如何在本节中使用Matlab软件。

四、结合Matlab的教学

1.显式解。Matlab可以求得显式解,但无法获得隐式解。通常情况下显式解的命令调用格式为:

s=dsolve(eqn,cond,Name)

其中eqn表示微分方程,cond是初始条件,Name是方程中的自变量。如下面的例1。

例1.求解微分方程(1+x■)■-2x■=0.

在command窗口输入以下代码:

y=dsolve('(1+x^2)*D2y-2*x*Dy=0','x')

求得结果为:

y=C2+(C3*x*(x^2+3))/3

该解可以很明显的看出来是:

y=C■+■C■x(x■+3)

如果显示的代码很复杂,可以通过命令latex(),再结合mathtype把结果显示成公式的形式。以该题为例,Latex(y)显示为:

\mathrm{C2}+\frac{\mathrm{C3}\,x\,\left(x^2+3\right)}{3}

然后在word中键入两个$,将上述代码拷贝到$$中间,如下

$\mathrm{C2}+\frac{\mathrm{C3}\,x\,\left(x^2+3\right)}{3}$

在mathtype中找到Toggle TeX,点击,得到公式为:

C2+■

这与降阶法得到的结果一致,同时将代码转化为公式的方法比Matlab自带的simple()命令更具有实用性。

2.数值解。在无法求得解析解的时候,数值解显得尤为重要。微分方程的数值解法有多种,可以根据数值计算理论,如Euler方法,如自己编写代码,可以直接调用Matlab自带的命令,如ode45()等,也可以通过Simulink进行仿真计算。通常情况下,采用Matlab自带的函数来求解微分方程。

为说明数值方法的有效性,下面讨论一个可以求得解析解的例题。一方面该例题反映了微分方程在数学建模中的应用,另一方面对数值解和解析解进行比较。

例2.设位于坐标原点的甲舰向位于x轴上点A(1,0)处的乙舰发射导弹,导弹头始终对准乙舰。如果乙舰以最大的速度v0(常数)沿平行于y轴的直线行驶,如图1。导弹的速度是5v0,求导弹运行的曲线方程。

根据题意建立微分方程如下:

(1-x)y''=■■y(0)=0;y'(0)=0

通解为:

y=-■(1-x)■+■(1-x)■+■.

利用Matlab求其数值解,令y■=y,y■=y',将方程化为一阶微分方程组:

y■'=y■y■'=■■/(1-x)

建立m文件如下:

clc

x0=0;xf=0.9999;

[x,y]=ode45('eq1',[x0 xf],[0 0]);

plot(x,y(:,1),'k.','LineWidth',2);

hold on

x1=x0:0.01:xf;

y_sim=-5/8*(1-x1).^(4/5)+5/12*(1-x1).^(6/5)+5/24;

plot(x1,y_sim,'k-','LineWidth',2)

axis([0 1.1 0 0.25])

hold on

y1=0:0.01:2;

plot(1,y1,'k-^');

legend('数值解','解析解','乙舰逃跑线路')

grid on

function dy=eq1(x,y)

dy=zeros(2,1);

dy(1)=y(2);

dy(2)=1/5*sqrt(1+y(1)^2)/(1-x);

利用Matlab软件求解如图2。从图2中可以看到,数值解和解析解吻合的非常好,在一般实际工程问题中,数值解完全能满足精度的要求。

五、总结

这种课堂教学的设计的优点,第一,它能够丰富课堂教学内容,在不改变原有讲授知识的情况下,可以让学生感受到高等数学在现代计算机水平下散发出的新的魅力。第二,这种设计有力地推动了高等数学的教学改革,激发了学生的学习热情和兴趣,对数值方法和数学模型的学习可以提高学生应用数学知识解决实际问题的能力。

但是传统的高等数学的教学中有较多的公式、定理的推导,它在培养学生的逻辑思维能力、逐步了解和掌握相应的数学思想等方面有不可替代的位置。所以,这种教学设计在课堂中所占比重不能过大,否则会造成不良的教学效果。

参考文献:

[1]王高雄,周之铭,朱思铭.常微分方程[M].北京:高等教育出版社,2006.

[2]吴赣昌.高等数学[M].北京:中国人民大学出版社,2011.

[3]张志涌,杨祖樱.MATLAB教程R2012a[M].北京航空航天大学出版社,2010.

[4]孙燮华.齐次微分方程通解的计算机求解[J].中国计量学院学报,2001,12(3):1-6.

[5]叶红卫.浅谈Matlab在高等手续微积分计算中的应用[J].电脑知识与技术,2009,5(5):1169-1170.

上一篇:让思想品德课堂充满智慧的方法 下一篇:由大学物理一道期末考试题引发的思考