APP下载

基于Matlab 的常微分方程辅助教学设计

2020-11-12师向云周学勇

四川职业技术学院学报 2020年5期
关键词:绘制解析数值

师向云,周学勇

(信阳师范学院 数学与统计学院,河南 信阳 464000)

常微分方程是高等院校数学类本科专业开设的一门必修专业课程,目前各个院校常微分方程的课程教学通常以求解各种微分方程(组)解析解为主,但在应用微分方程解决实际问题时,往往要求方程(组)的解必须能说明实际现象,以及根据解的情况来进行问题分析和制定出相应的对策.这就要求得到的常微分方程解是利于分析和实际应用的.但是实际上大多数的方程(组)都没有解析解,如大部分的非线性方程只能求数值解.目前绝大部分常微分方程教材都很少涉及数值解法,如果不借助于教学软件,教师给学生讲解数值解法也比较困难.在现代微分方程研究及应用中,寻求具体微分方程的解析解的特殊技巧已经不再是主流课题,而应用中提出的各种具有实际背景模型的微分方程又往往是非线性方程,寻找这些方程的解析解,绝大部分由于几何理论这一思想方法具有高度的抽象性和概括性,尤其是介绍利用定性分析方法考虑微分方程时,抽象的概念和定理使得初学者难以直观地理解定性分析方法的实质,这时如果用数学软件绘制出几何图形就能将抽象的概念与结论直观地呈现出来.

Matlab 是常用的数学软件之一,它在在数值计算方面相对于其它数学软件首屈一指.文献[1-3]指出:利用Matlab 软件可方便地求解微分方程(组),得到微分方程(组)的解析解,并绘出解曲线和轨线图.文献[4-5]也表明可以利用Matlab 求解常微分方程线素场、求解微分方程的初值解、绘出二阶与三阶微分方程(组)解曲线、相位图.因此为了适应新形势下的数学教学科研工作任务,可以将Matlab 作为辅助应用于目前的常微分方程教学中.为了能够更好地提高课堂教学效率,本文将进一步讨论Matlab 对微分方程教学的作用,我们以各个高校广泛使用的王高雄主编的常微分方程教材①为例,具体讨论Matlab 在常微分方程各章节教学中的应用.

1 Matlab 在微分方程辅助教学中的具体应用

我们将从利用Matlab 求非线性微分方程的解析解,求微分方程(组)初值问题的数值解,利用Matlab 绘制解曲线解释奇解的几何意义、利用Matlab 绘制线素场理解方向场,利用Matlab 绘制非线性方程组相空间的轨线等几个方面,具体给出Matlab 在微分方程教学中的应用.

1.1 利用Matlab 求非线性微分方程的解析解

求解微分方程的解析解通常是初等解法,在常微分方程课程教学中,一阶微分方程最重要的教学任务就是利用初等解法求方程的解,如用变量分离法求解一阶可分离变量方程,用常数变易法求解一阶常系数线性微分方程,用积分因子法将微分方程化为恰当方程,再用全微分法来求解.可以看出这些求解方法都是针对某一类特定微分方程来说的,而且各种方法在数学技巧上均具有一定难度.有时遇到一些非线性问题还无法用初等解法解出方程的解,而借助数学软件Matlab 则可以求一些非线性的一阶微分方程的解析解.应用Matlab 中求微分方程(组)解析解的命令:dsolve,它能求出通解和特解.并且可用Matlab 的ezplot 绘图命令绘出特解积分曲线.例如可用Matlab 求一阶方程= 2 +y2满足初值y(0)= 2 的解析解.Matlab 代码如下:

syms y

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

从而容易得到所求方程的特解:y=2tan(x+

1.2 利用Matlab 解释奇解的几何意义

对某些微分方程存在一条特殊的积分曲线,它不属于这个方程的积分曲线族,但是在它上的每一点,都有积分曲线族中的一条积分曲线和它相切于这一点,我们称该积分曲线所对应的解为方程的奇解[1].仅从定义方面我们很难理解奇解是怎样的一个解,也不是很清楚奇解的几何意义.但我们可用Matlab 画出这类方程的一些积分曲线,这样能快速和直观地去判断奇解的存在性,从而理解奇解的几何意义. 例如方程y =xy′+的通解为y=cx+,奇解为y=

我们可取一些特殊的c,利用Matlab 来绘制积分曲线族和奇解的曲线.Matlab 文件代码如下:

clear

x=linspace(-1,1,200)

for c=-1:0.1:1

y1=c.*x+sqrt(1+c.^2);

plot(x,y1,'-k')

end

y=sqrt(1-x.^2)

plot(x,y,'b')

hold on

由图1 容易看出方程的其它解曲线与特解y=所对应的曲线相切,因此很容易理解y=是奇解.

图1 方程y = xy′ + 1 + y′2 通解和奇解曲线

图2 方程组(1)的向量场

1.3 利用Matlab 理解方向场应用

向量场是一个非常抽象的概念, 同学们往往很难去理解,若用Matlab 绘制出向量场的图形,就可以看到一些布满整个坐标的短直线所形成的图像,从而容易看出积分曲线的走向,这样对学生进行讲解,则能使学生从直观上去认识向量场,从而理解斜率场、相空间、向量场及轨线等重要概念.绘制向量场所用的函数:quiver,格式:quiver(x,y,u,v),其中x和y表示向量起点,u和v确定向量的方向.从向量场图中可以看出该方程各个积分曲线的走向.

例1 用Matlab 绘制下面微分方程组的向量场.

解:Matlab 代码如下:

x=-2:0.2:2;

y=-2:0.2:2;

[x,y]=meshgrid(x,y);

d=sqrt((1-x.^2-y.^2).^2+(x.*y).^2);

u =(1-x.^2-y.^2)./d;

v =(x.*y)./d;

hold on

quiver(x,y,u,v,0.5,'b');

1.4 Matlab 在一阶微分方程(组)初值问题的数值求解方面的应用

由于绝大部分的一阶微分方程是不能用初等积分法解出来,但在实际应用中往往又必须知道它的解,这时就可用Matlab 求出它的数值解,所以再常微分方程教学时,还要注意教授学生学会应用MAtlab 求方程的数值解.在Matlab 中求解的函数有很多,包括ode45, ode113, ode15s,ode23s, ode23t, ode23tb 等,其中常用的两个分别为ode23( )和ode45( ).下面我们给出例子来说明.

例2 用Matlab 求下面初值问题的解.

解:首先创建一个函数文件,文件名为odefun.m,代码如下:

function dy=odefun(t,y)

dy=zeros(3,1);

dy(1)=-y(2) * y(3);

dy(2)=y(1) * y(3);

dy(3) =0.5 * y(1) * y(2);

然后创建命令文件,文件名为testode45.m,代码如下:

clc

tspan=[0,50];

y0=[1,1,1]; %

[T,Y]=ode45( @odefun, tspan, y0 ); %

plot(T,Y(:,1),'-',T,Y(:,2),'-.',T,Y(:,3),'.') %

图3 微分方程组(2)的解曲线图

legend('y_1','y_2','y_3')

图4 微分方程组(2)的解的轨线图

1.5 利用Matlab 绘制非线性方程组在相空间的轨线

常微分方程[1]第六章内容有关非线性方程组的定性理论的知识,它是本科阶段和研究生阶段之间的衔接内容,但在本科阶段,学生普遍反应较为抽象,难以理解.如若能够得到相空间的轨线图,则教师讲解起来就比较形象,学生很容易接受理解.如图4 为微分方程组(2)在相空间的轨线图,容易看出方程组(2)存在一组周期解.

1.6 利用Matlab 判断微分方程系统零解的稳定性

常微分方程[1]第六章介绍了常微分方程稳定性的概念与判定方法,这是学生学习的一个难点,但它又与后续研究生课程内容衔接,也是各个高校研究生复试时常出的考题.事实上,如果能够运用Matlab 绘出方程在零点的轨线图,可非常容易判断微分方程零解的稳定性.

例3 判断如下系统零解的稳定性

解:运用Matlab 绘制系统(3)的轨线图, 程序如下:

clear; clc;

[x,y]=meshgrid(linspace(-0.1,0.1));

streamslice(x,y,-x-y+(x-y)*(x.^2+y.^2),x-y+(x+y)*(x.^2+y.^2));

xlabel('x');ylabel('y');

由图5 及零解稳定性定义可知,方程组(3)的零解是一致渐近稳定的.

图5 系统(3)在(0,0)点附近的轨线图

2 课堂实现方式及意义

用Matlab 辅助微分方程课程教学,其上课形式为教师上课用多媒体授课,教师在授课过程中随时穿插使用Matlab 软件操作演示.比如教给学生一些基本的求解命令,在课堂上能够画出简单微分方程的解曲线给学生以展示,常微分方程课程教材①共有七个章节的内容,章节结束安排一次实验课程,让学生运用Matlab 进行方程求解和绘图训练.

将Matlab 融入课堂教学,可使得常微分方程课程的授课形式较传统的板书式教学有较大的改变,可以使教师和学生摆脱繁琐的数学演算和数值计算的过程,把学生的注意力集中到解题方法上来,从而优化教学内容,化繁为简,化抽象为具体.用Matlab 软件将难以理解的概念和难以想象的图形形象地表示出来,使所有学生更加深入地理解微分方程解的几何意义,从而能使学生加深对本课程的掌握,并且引导学生将理论应用于实际,改变学生对该课程的传统认识,实现教与学的良性互动,提高教学效果,并进一步为后继课程打下基础.

注释:

①王高雄等编著《常微分方程》(第三版),高等教育出版社,2006.

猜你喜欢

绘制解析数值
体积占比不同的组合式石蜡相变传热数值模拟
数值大小比较“招招鲜”
三角函数解析式中ω的几种求法
铝合金加筋板焊接温度场和残余应力数值模拟
超萌小鹿课程表
放学后
睡梦解析仪
电竞初解析
对称巧用解析妙解
在转变中绘制新蓝图