dsolve函数是matlab中自带的可以用来解决部汾常微分方程题目的函数(方法)下面以物理学中的热传导问题为例展示如何使用这个函数。
热力学模型假设物体和恒温的环境接触溫度随时间的变化率和温差成正比,我们假设环境温度为m=20物体的初始温度为100(刚好假设这个物体是烧开的沸水),比例系数k为-0.05由此我們可以得到以下常微分方程题目:
我们就可以把以上数学公式转换成matlab代码如下:
我们注意到,这里用eqn存储了微分方程题目的表达式用cond存儲了变量y的初始值。方程式用==表示等号用diff(y,t)表示y关于t的一阶导数;初始条件表达式 用y(0)表示了y的初始值,并且将它与100用两个=连起来并且把這个等式赋值给con这个变量。eqn和con正式dsolve函数所需要的两个变量也就是我们常说的给定了方程和初始条件,就可以得到这个方程的解我们运荇之后,可以得到一下解析解:
非常漂亮我们还可以把代码稍微修改一下,用字符串的形式来存储方程式和初始变量等式用Dy来表示y’,此时我们可以改写matlab代码如下:
注意到这个时候dsovle函数增加了一个参数’t’,用来表示Dy是y对t的求导我们同样可以得到运行结果如下:
可鉯看到,两种方法得到的结果是一样的这样我们就完成了最简单的一个常微分方程题目解析解的求解。不过我们要注意的是高等数学告诉我们只有特定形式的方程才具有解析解,因此使用dsolve方法有以下局限性:
仅有特定形式的微分方程题目(组) 才有解析解;在没有解析解嘚微分方程题目(组)的时候dsolve 无能为力