点“考研竞赛数学”↑可每天“涨姿势”哦!
MATLAB巧解微分方程实例分析
王少华 西安电子科技大学
还记得那是大一第一学期快结束了,学到微分方程那了,学时挺高兴的,看老师那刷刷地,那么长的方程半个黑板就解完了,黑板上那叫一个主次分明,结构清晰,什么特征方程,齐次通解,非齐次特解,然后俩一加就是非齐次通解。心想挺简单的嘛。(后来自己算时才知道什么叫“真香”)
回去有作业题,第一道是齐次微分方程,立刻换元,化成可分离变量的微分方程,一会儿结果就出来了。然后就是一道二阶非齐次常系数线性微分方程,那不就是死套路嘛,照着解不就行了。提笔算来,算起虽然繁琐,但好歹多半张演算纸还是算出来了,一对答案,不对。emmmm,顿时眉头一皱,提笔再算一遍。一会儿,对答案,不仅和答案不一样,和第一次算出来得也不一样,这就有点酸爽了,算第三遍时,心就有点着急了,这怎么就算不对呢?越想越着急,越着急,式子写得越乱,然后那两个小时就基本上没干其他事了。
大二选了matlab课,感觉这玩意儿tql(太强了),然后突发奇想,用这软件不恰可以抚慰我那被微分方程伤害了的幼小得心灵嘛。
解决我们的微分方程就要用到dsolve()这个重要的函数。其完整形式为:
没接触过matlab的小兄弟可能看着有点懵,这是啥。暂且听我慢慢道来:eqn代表微分方程,cond代表初始条件(无初始条件可以缺省),var代表微分方程中的自变量(默认为t)。
对了,重要的一阶导,二阶导,等高阶导怎么表示呢?别着急,也很简单。该命令中可以用D表示倒数符号,其中D2表示二阶导数,D3表示三阶导数,以此类推。
说了这么多,来看一个实例,来求求下面这个式子的通解:
你只需要在命令行窗口输入
然后轻点回车键答案就出来了。
让我们更进一步,如果我们要求特解,那么我们在函数中加上初始条件就可以喽。让我们再看一个实例:
你只需要在命令行窗口输入
然后轻点回车键答案就出来了。
相信,掌握了dsolve()这个函数,大部分的微分方程都会迎刃而解的。
填坑一:如果你没有用过matlab这个软件,那么可以参考网上教程先安装一个。
填坑二:其实有的常微分方程用dslove()这个函数是无法求出解析解的。(//小编已经逃到你打不到地方喽)解释一下原因:函数dsolve()是求常微分方程的精确解法(求出来的是解析解),但是有大量的常微分方程虽然从理论上讲,其解是存在的,但实际上我们却无法用matlab求出来。
填坑三:那对于那些求不出来解析解的常微分方程,我们该怎么办呢?其实我们还可尝试求其数值解。至于怎样用matlab求数值解,大家可以自行百度哦。(//在作死边缘疯狂试探)
填坑四:对于要考高数的“难兄难弟”们,认真总结各种微分方程的解法是必要的,切记:投机取巧一时爽,卷子下来火葬场。
下图为小编自己的笔记,虽然丑,但是对小编背诵各种方程的解法还是有用的。
填坑四:下面补充一些用matlab解微分方程的例子供大家参考。
Ps:咱们需要对原方程进行适当的变换。
Ps:无解析解,所以还是乖乖按老师讲的方法做吧。
(3) 一阶线性微分方程
(5) 可降阶的高阶微分方程
Ps:大家可以自己用笔算算对对答案嘛。
(6) 常系数齐次线性微分方程
(7) 常系数非齐次线性微分方程
声明:作者只是一名大二学生,学识有限,如有错误,请评论出来,咱会及时纠正;如有建议,也可以评论出来,咱会择优采纳;如想吐槽,也可评论出来,咱看了也不会生气。
学了两三学期的微积分以后就要利用导数来完整地练习解微分方程了。导数是一种数据相对于另一种的变化速率。例如,速度随着时间的变化率就是速度关于时间的导数(和斜率相比较一下)。每天这种变化率都会出现很多次,例如,复利定律中,利息增加的速度和账户金额成比例,用dV(t)/dt=rV(t) 和 V(0)=P 可以表示出来(P就是初始金额),V(t)是时间的函数,表示目前的账户金额数(用以不断评估利息),r是目前利率(dt是极短的时间间隔,dV(t)是无穷小金额,是V(t)在这个时间的变化,他们的商是增加速率)。虽然信用卡利息通常是每日累积计算,以APR(年度增加率)来表示,这个微分方程还是可以可以解出一个方程,得到连续解V(t)= Pe ^(rt)。本文将教你如何解决最常见类型的微分方程,尤其是力学和物理方程。
定义导数。当变量倾向于0的时候,函数(一般是y)增量和变量(一般是x)增量的比值会取得一个极限值,这就是导数(也称为微分系数,特别在英国)。或者说在一瞬间,变量的微小变化造成的函数的微小变化。以速度距离,速度就是距离对时间的瞬时变化。下面比较一阶导数和二阶导数:
不要混淆阶数(最高导数阶数)和次数(导数的最高次数)。最高导数次数是由最高阶导数的阶数决定的。导数的最高次数则是导数中的项的最高次数。比如图一的微分方程是二阶、三次导数。
了解如何区别通解、完全解和特解。完整解包含一些任意常数,任意常数的数目和导数的最高阶数相等(要解开n阶微分方程,需要进行n次积分,每次积分都需要加入一项任意常数)。例如在复利定律里,微分方程dy/dt=ky是一阶导数,完整解y = ce^(kt) 正好有一个任意常数。特解是用特定数字带入通解来获得的。
一个一阶一级的微分方程可以表达为M dx + N dy = 0,M和N分别是x和y的函数。为了解决这个微分方程,按如下步骤来做:
看看这个变量是否可分离。一个微分方程若可以表达为f(x)dx + g(y)dy = 0,则其变量可分离。f(x)是只关于x的函数,g(y)是只关于y的函数。这些都是最容易解的微分方程。他们可以积分为∫f(x)dx +∫g(y)dy = c,c是一个任意常数。下面是一个通用的方法,参见图2为例。
如果变量是不可分离的,检查该微分方程是否是齐次的。如果把x和y替换为λx和λy,会导致整个函数的值为原函数乘以λ的n次方,那么λ的次数n就是原函数的次数。这样微分方程M dx + N dy = 0就是均匀的。如果出现这种情况,请用以下步骤来解。图3是一个示例。
如果不能用以上方法得出结果,试试可不可以用dy/dx + Py = Q形式的线性方程解出来(P Q 都是只关于x的方程或常数)。记住这里x、y可以交替使用。图4为例:
看看微分方程是否符合图5的等式(1),f(y)是只关于y的函数,或者是一个常数。如果是,就只要用图5标出的方法来做就好。
用常系数求解二阶线性微分方程:看看这个微分方程满足不满足图6中的等式(1)。如果满足,这个微分方程可以简单用下列步骤当作一个二次方程来解。
要解个一般的二阶线性微分方程,要看看该微分方程是否满足图7所示的方程(1)。如果是这样,可以用下列的步骤解决微分方程。以图7的步骤为例。
高阶微分方程更难解,除了以下某些特殊情况:
看看该微分方程是否满足图5中方程(1)形式,f(x)是一个只关于x的函数或一个常数。如果是,则按照图8步骤解。
看看该微分方程满足不满足图9方程(1)的形式。如果是,可如下解决微分方程:
要解更一般的“n”阶线性微分方程,要看看该微分方程是否满足图10方程(1)形式。如果是这样,此微分方程和二阶线性微分方程解决方法类似。如下所示求解:
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。