微分方程描述了许多基本的物理定律。它们被用来模拟火箭的轨迹,估计致命疾病的感染率,模拟一个国家的经济增长等。它们无处不在,如果使用得当,可以产生强大的效果。大多数具有实际应用的微分方程是常微分方程 (ODE)。这些方程由具有一个自变量的一个或多个函数(及其导数)组成。大多数 ODE 中的自变量是时间或t。不幸的是,大多数 ODE 都太难或不可能显式求解。获得困难 ODE 结果的下一个最佳步骤是数值积分。
数值积分用于近似 ODE 变量随时间的演变。对于本文,我们将重点关注初始值问题。对于这些类型的问题,数值积分采用初始时间和初始条件,逐步通过预定义的时间间隔,并在每个时间步计算变量的解。数值积分的好处是 ODE 可以根据所使用的方法得到高精度的近似值。此外,由于当今可用的大量计算能力,这些方法可以在几分之一秒内运行。
MATLAB 有许多数值积分器,并且因其计算能力和相对简单的语法而成为许多工程师和物理学家的选择。由于 MATLAB 是由 MathWorks 开发和维护的,因此他们提供了每个 ODE 求解器的详细说明和列表。为您的问题选择正确的求解器可能很关键,但对于大多数应用,ode45求解器是一个很好的起点。ode45求解器是Runge Kutta四阶和五阶求解器。我从示例中学习得最好,所以让我们跳入代码。
首先,让我们定义我们想要研究的常微分方程。最引人入胜的一组 ODE 是洛伦兹系统。这组微分方程由 Edward Lorenz 研究,可用