在Matlab 中使用ode45 简介 Matlab 中常微分方程常用的函数是ODE45,这个函数能够利用--龙哥库塔法--有效求解带时间变量步长的计算。Ode45 用于求解如下的一般问题: 00,,xtxxtfdtdx(1) 其中,时间t 是独立变量,x 为时间相关矢量, xtf,是时间t 和 x 的函数。当(1)右边的 xtf,是固定的,且给定 x 的初始值,那么问题的解是唯一的。 在ME175 中,解法是不完整的,但是只要你解决了问题,就可以获得 ODE 代表的系统运动趋势。这有利于得到一个直观的印象,看起来很复杂的常微分方程,代表的质点运动轨迹确实简单明了的。以下简要解释如何得到运动轨迹: 第一步: 对给定的ODE 方程进行降阶处理,得到一系列一阶方程 这就是你要做的第一步,在一张草稿纸上处理。例如,给定 ODE 方程如下: 1,3,5002yyyeyymy(2) 对本问题,矢量x 有两个组成分量:y 和y ,或 yxyx21(3) 且 211251221xexmdtxdxdtxdx(4) 其中,用(3)中的式子代表了 y,y ,y ,于是把(2)改写为(4)。 如果求解的问题有更多阶数更多变量呢?例如,我们除了有上面的方程(2),同时还有以下的方程: .1,0,sin002233zztzdtzddtzd(5) 那么,我们可以通过构造更大的矢量x 同时求解y,z: zxzxzx543 (6) 然后 zzzyyx,,,, (7) 以及 000000,,,,ttttttzzzyyx(8) 其中,y 变量和z 变量的放置位置对求解不造成影响。实际上,任意次序都是有效的,例如 zzyzyx,,,, 和yyzzzx,,,, 但是重要的是,在整个计算过程中,你使用的顺序都必须和一阶 ODE 方程中定义的变量顺序相同。之后,如果你使用的是(7)中给定的的式子,那么系统的一阶 ODE 方程,由以下方程组组成。 (10) 而涉及的表征变量zzyzyx,,,,结果如下: (11) 基本上,可以处理任意数量的高阶 ODE 方程。重要的是把它们处理成多个一阶的ODE 方程,并且确保记住被求解的矢量X 中,不同变量所分配的顺序。 第二步 编写代码 既然你已经有所求解问题的一阶格式,在你编程的主要代码中,将会用到以下的命令 o...