APP下载

MATLAB在微分方程课程设计中的可视化应用

2022-06-11张凤孔德洲梁颖

科技风 2022年14期

张凤 孔德洲 梁颖

摘 要:本文通过悬链线和摆线的讨论生动形象地引入了可分离变量微分方程的概念以及求解方法,然后借助MATLAB强大的图形绘制功能来实现微分方程的可视化,让学生获得生动直观的感性认识,加深学生对抽象函数以及概念的理解,提高课堂教学的整体效果。

关键词:悬链线;摆线;MATLAB;分离变量法

高等数学一直给学生的印象就是抽象、晦涩、难懂、挂科率高,甚至好多学生谈高数色变,特别是微分方程这一章。我们知道所谓微分方程就是含有自变量、未知函数以及未知函数的各阶导数的方程,它里面蕴含了自变量、未知函数以及各阶导数之间的关系,而我们学习的目标就是抽丝剥茧,通过学习微分方程的解法,探求函数与自变量之间的函数关系。要让晦涩难懂的概念变得生动形象,我们要从引入上下文章,让学生真正体会到数学来源于生活又高于生活。

1 概述

1.1 悬链线的讨论

我们以悬链线为例展开讨论,所谓悬链线就是把一个绳子自由悬挂于两定点之间形成的曲线.日常生活中大家随处可见像悬链线这样的曲线,如雨后的蜘蛛丝、黄昏下的高压线(图1),跨海大桥上也能看到悬链线的模样。

其实早在1690年,数学家雅各布·伯努利就建立了悬链线所满足的微分方程组:

dyds=sa2+s2,ys=0=a

dxds=aa2+s2,xs=0=0

其中a是由绳子本身性质和悬挂方式决定的常数。

这虽然是一个微分方程组,但是对于学过积分的同学来说是小菜一碟,对两个方程应用直接积分法就解决了,解法如下:

dyds=sa2+s2,ys=0=a

y=∫sa2+s2ds=12∫1a2+s2d(a2+s2)

=a2+s2+C

 ys=0=aC=0

y=a2+s2dxds=aa2+s2,xs=0=0

x=∫aa2+s2ds

=aln(s+a2+s2)+C

xs=0=0C=-alna

x=aln(s+a2+s2)-alna

s=aexae-xa2y=a2+s2

s=aexae-xa2

y=aexa+e-xa2

解得悬链线方程为:

y=aexa+e-xa2

同学们可能对这个方程代表悬链线表示怀疑,那我们用MATLAB绘图功能来画出这个方程所表示的曲线。

1.2 用MATLAB繪制悬链线方程

悬链线的曲线方程为双曲余弦函数,我们分别以a=1,a=2为例编写程序,程序如下:

>>x=2.5:0.1:2.5;

>>y=0.5*(exp(x)+exp(x));

>>plot(x,y,'r')

>>grid on

>>text(1.3,2,'\\leftarrow a=1','FontSize',14)

>>xlabel('x','fontsize',18)

>>ylabel('y','fontsize',18)

>>hold on

>>x=2.5:0.1:2.5;

>>y=exp(0.5*x)+exp(0.5*x);

>>plot(x,y,'k')

>>grid on

>>text(0,2.3,'\\downarrow a=2','FontSize',14)

>>xlabel('x','fontsize',18)

>>ylabel('y','fontsize',18)

这是数学的理论推导计算功能和MATLAB的程序设计绘图功能的强强联合,让学生从中获得生动直观的感性认识。

这个悬链线微分方程组我们应用直接积分法就解决了,原因是它的结构简单,方程的左边是导数,右边是单纯关于自变量的函数,井水不犯河水,但不是所有的微分方程都如此简单,下面来看摆线方程。

1.3 摆线方程的讨论

摆线是几何学中的海伦,绝对的几何学中的女神,在17世纪,大批卓越的数学家热心于研究这一曲线的性质,如伽利略、帕斯卡、笛卡尔、费尔马、约翰·伯努利、莱布尼兹、牛顿等,每个都是学术界的大神。笔者对雅各布情有独钟,我们还是讨论雅各布.伯努利建立的摆线微分方程:

dydx=a3b2ya3

该方程虽然看起来不难但是却无法用直接积分法,原因很明显,方程的右边是关于未知函数y的函数.但是通过交叉相乘方程可变为:

b2ya3dy=a3dx

大家仔细观察,此时等式的左边只与y有关,而右边是单纯关于x的表达式,实现了变量分离,因而这个摆线方程就是可分离变量的微分方程,从而很自然地引出可分离变量微分方程的概念。

2 可分离变量微分方程

2.1 可分离变量微分方程的定义及解法

定义:通过等价变形可以写成g(y)dy=f(x)dx形式的一阶微分方程叫做可分离变量的微分方程。

解法 第一步,分离变量:

∫g(y)dy=∫f(x)dx

第二步,两边积分:

∫g(y)dy=∫f(x)dx,

得到:

G(y)=F(x)+C

第三步,由G(y)=F(x)+C就确定了方程的隐式通解,获得了函数y与自变量x的隐式方程,大家知道隐函数未必可以显化,所以大多数时候我们只能接受隐式通解。

2.2 用分离变量法求解摆线方程

由前面的讨论我们知道摆线方程是可分离的,所以由:

dydx=a3b2y-a3,yx=0=a3b2

第一步,分离变量得:

b2ya3dy=a3dx

第二步,两边积分得:

∫b2ya3dy=∫a3dx

23b2(b2y-a3)32=xa3+C

yx=0=a3b2

根据初始条件,获得摆线方程为:

23b2(b2y-a3)32=xa3

同学们可能又要产生疑虑了,这可是隐函数啊,它真的代表的是摆线吗?其实大家不知道的是,要用MATLAB画出二元方程所确定的一元隐函数是非常容易的。

2.3 用MATLAB绘制摆线

摆线方程是一个隐函数23b2(b2y-a3)32=xa3,我们以a=1,b=1为例绘制摆线,程序如下:

>>ezplot('2/3*(y1)^(1.5)x');

>>xlabel('x','fontsize',18)

>>ylabel('y','fontsize',18)

>>title('\\bf 图2 摆线','FontSize',20)

>>grid on;

>>axis([0,6,1,6])

绘制的图形如图3所示:

3 例题

例:求一阶微分方程dydx=2yx+1的解,并画出解曲线。

分析:这是一个可分离变量的微分方程。

解:(1)求出微分方程的通解。

第一步,分离变量得:

dyy=2dxx+1

第二步,两边积分得:

lny=2ln(x+1)+lnC

即:

y=C(x+1)2

(2)用MATLAB绘制积分曲线族,程序如下:

>>xm=3;

>>x=xm:0.01:xm;

>>ym=2;

>>x0=xm:0.5:xm;

>>c=ym./(x0+1).^2;

>>[C,X]=meshgrid(c,x)

>>Y=C.*(X+1).^2;

>>figure

>>plot(x,Y,x,Y)

>>grid on;

>>axis([xm,xm,ym,ym]);

>>y0=ym:0.5:ym;

>>c=y0./(xm+1).^2;

>>[C,X]=meshgrid(c,x)

>>Y=C.*(X+1).^2;

>>hold on

>>plot(x,Y)

>>y=2*(x+1).^2;

>>plot(x,y,'.')

>>title('微分方程的解曲線','FontSize',18)

>>xlabel('x','FontSize',18)

>>ylabel('y','FontSize',18)

绘制的图形如图4所示:

结语

在高等数学中,微分方程是难点也是重点,需要分析方程的类型,确定相应的解法,具体求解需要扎实的积分计算能力,得到通解或者特解之后就确定了函数和自变量的直接关系,但是根据函数的解析式还是无法想象该函数所代表的曲线,这时我们借助MATLAB所拥有的可视化功能可以很方便地将一些抽象的函数尤其是隐函数形象地表示出来,给学生更直观的讲述效果,使高等数学不再晦涩难懂,MATLAB的可视化功能的辅助改变了传统的粉笔加黑板的课堂教学模式,进一步加深学生对教学内容的理解,提高学生自主学习高等数学的兴趣,是培养学生的数学素养的有力工具。

参考文献:

[1]何正风.Matlab在数学方面的应用[M].北京:清华大学出版社,2012.

[2]薛定宇,陈阳泉.高等应用数学问题的Matlab求解[M].北京:清华大学出版社,2008.

[3]董霖.Matlab使用详解[M].北京:科学出版社,2008.

基金项目:山东省自然科学基金(ZR2017MA034);山东省重点研发计划(2019GGX101024)

作者简介:张凤(1980— ),女,汉族,山东泰安人,理学硕士,山东农业大学信息学院讲师,研究方向:应用数学;梁颖(1980— ),女,汉族,山东肥城人,理学硕士,山东农业大学信息学院讲师,研究方向:应用数学。

*通讯作者:孔德洲(1981— ),男,汉族,山东曲阜人,理学博士,山东农业大学信息学院副教授,研究方向:应用数学。