点“考研竞赛数学”↑可每天“涨姿势”哦!

MATLAB巧解微分方程实例分析

王少华 西安电子科技大学

微分方程求解难,

字母一堆看着烦。

写错数字一时爽,

一直写错一直爽。

还记得那是大一第一学期快结束了,学到微分方程那了,学时挺高兴的,看老师那刷刷地,那么长的方程半个黑板就解完了,黑板上那叫一个主次分明,结构清晰,什么特征方程,齐次通解,非齐次特解,然后俩一加就是非齐次通解。心想挺简单的嘛。(后来自己算时才知道什么叫“真香”)

回去有作业题,第一道是齐次微分方程,立刻换元,化成可分离变量的微分方程,一会儿结果就出来了。然后就是一道二阶非齐次常系数线性微分方程,那不就是死套路嘛,照着解不就行了。提笔算来,算起虽然繁琐,但好歹多半张演算纸还是算出来了,一对答案,不对。emmmm,顿时眉头一皱,提笔再算一遍。一会儿,对答案,不仅和答案不一样,和第一次算出来得也不一样,这就有点酸爽了,算第三遍时,心就有点着急了,这怎么就算不对呢?越想越着急,越着急,式子写得越乱,然后那两个小时就基本上没干其他事了。

大二选了matlab课,感觉这玩意儿tql(太强了),然后突发奇想,用这软件不恰可以抚慰我那被微分方程伤害了的幼小得心灵嘛。

说弄就弄:

解决我们的微分方程就要用到dsolve()这个重要的函数。其完整形式为:

dsolve(‘eqn’,’cond’,’var’)

没接触过matlab的小兄弟可能看着有点懵,这是啥。暂且听我慢慢道来:eqn代表微分方程,cond代表初始条件(无初始条件可以缺省),var代表微分方程中的自变量(默认为t)。

对了,重要的一阶导,二阶导,等高阶导怎么表示呢?别着急,也很简单。该命令中可以用D表示倒数符号,其中D2表示二阶导数,D3表示三阶导数,以此类推。

说了这么多,来看一个实例,来求求下面这个式子的通解:

你只需要在命令行窗口输入

dsolve('D2y=Dy+x','x')

然后轻点回车键答案就出来了。

让我们更进一步,如果我们要求特解,那么我们在函数中加上初始条件就可以喽。让我们再看一个实例:

你只需要在命令行窗口输入

dsolve('D2y=Dy+x','y(1)=1','Dy(1)=0','x')

然后轻点回车键答案就出来了。

相信,掌握了dsolve()这个函数,大部分的微分方程都会迎刃而解的。

~~~~~~~~~~~~~~~~~~~~~~~~~

挖坑一时爽,

填坑火葬场。

不是我不填,

坑多填不完。

填坑一:如果你没有用过matlab这个软件,那么可以参考网上教程先安装一个。

参考教程: article/details/

填坑二:其实有的常微分方程用dslove()这个函数是无法求出解析解的。(//小编已经逃到你打不到地方喽)解释一下原因:函数dsolve()是求常微分方程的精确解法(求出来的是解析解),但是有大量的常微分方程虽然从理论上讲,其解是存在的,但实际上我们却无法用matlab求出来。

填坑三:那对于那些求不出来解析解的常微分方程,我们该怎么办呢?其实我们还可尝试求其数值解。至于怎样用matlab求数值解,大家可以自行百度哦。(//在作死边缘疯狂试探)

填坑四:对于要考高数的“难兄难弟”们,认真总结各种微分方程的解法是必要的,切记:投机取巧一时爽,卷子下来火葬场。

下图为小编自己的笔记,虽然丑,但是对小编背诵各种方程的解法还是有用的。

填坑四:下面补充一些用matlab解微分方程的例子供大家参考。

(1) 可分离变量型

Matlab解法:

Ps:咱们需要对原方程进行适当的变换。

(2) 齐次方程

Matlab解法:

Ps:无解析解,所以还是乖乖按老师讲的方法做吧。

(3) 一阶线性微分方程

Matlab解法:

Ps:matlab中的ln()使用log()表示。

(4) 伯努利方程

Matlab解法:

(5) 可降阶的高阶微分方程

Matlab解法:

Ps:大家可以自己用笔算算对对答案嘛。

(6) 常系数齐次线性微分方程

Matlab解法:

(7) 常系数非齐次线性微分方程

Matlab解法:

Ps:exp()代表e的多少次方。

(8) 欧拉方程

Matlab解法:

声明:作者只是一名大二学生,学识有限,如有错误,请评论出来,咱会及时纠正;如有建议,也可以评论出来,咱会择优采纳;如想吐槽,也可评论出来,咱看了也不会生气。

~~~~~~~~~~~~~~~~~~~~~~~

最后,“难兄难弟”们

道路千万条,

上课第一条。

上课不规范,

大四两行泪。