微分方程的阶(Order of Differential Equations)

微分方程是包含某个函数及其一个或多个导数的方程,常用于描述变化过程。

注意:导数的形式为

\frac{dy}{dx} ]


微分方程的“阶”

微分方程的阶(Order)是指其中所出现的最高阶导数的阶数。
常微分方程(ODE)是只涉及一个自变量的导数的微分方程,目标通常是求解使该方程成立的函数


ODE 的基本类型

  1. 一阶微分方程(1st Order ODE)

  2. 二阶微分方程(2nd Order ODE)


一阶微分方程

一阶方程仅含一阶导数,如:

d y d x + P y = Q \frac{dy}{dx} + Py = Q

其中 x x y y 为变量。


二阶微分方程

当出现的最高阶导数是二阶导数时,该方程为二阶微分方程,例如:

d 2 y d x 2 + n d y d x + m y 2 = P \frac{d^2y}{dx^2} + n\frac{dy}{dx} + my^2 = P

使用 MATLAB 中的 dsolve 求解微分方程

示例:

解方程:

d 3 y d x 3 + 2 d 2 y d x 2 + 5 d y d x + 4 y = 5 x , y ( 0 ) = 1 , y ( 0 ) = 3 \frac{d^3y}{dx^3} + 2\frac{d^2y}{dx^2} + 5\frac{dy}{dx} + 4y = 5x,\quad y(0)=1,\quad y'(0)=3

使用 MATLAB 命令:

>> s = dsolve('D3y+2*D2y+5*Dy+4*y=5*x', 'y(0)=1', 'Dy(0)=3')

输出结果 s 将包含微分方程的解析解。


MATLAB 中常用的 ODE 求解器

求解器 精度 适用场景说明
ode45 中等 适用于大多数常规问题
ode23 较低 对于容忍误差较大的问题更高效
ode113 低至高 适合误差要求高或函数计算量大的情况

ODE 实例:存款利息增长

有 $10,000 存入银行定期账户,年利率为 2%。构造微分方程如下:

微分方程模型:

d M d t = 2 100 M = 0.02 M (1) \frac{dM}{dt} = \frac{2}{100}M = 0.02M \quad \text{(1)} M ( 0 ) = 10000 (2) M(0) = 10000 \quad \text{(2)}

对 (1) 积分得到:

M ( t ) = M ( 0 ) e 0.02 t = 10000 e 0.02 t M(t) = M(0) \cdot e^{0.02t} = 10000 \cdot e^{0.02t}

用 MATLAB dsolve 实现:

>> syms M(t)
>> eqn = diff(M, t) == 0.02*M;
>> S = dsolve(eqn, M(0) == 10000)

S =
10000*exp(t/50)

使用 ode45 数值解法

函数原型:

[t, y] = ode45(odefun, tspan, y0)

参数说明:

  • odefun:微分函数,可用匿名函数表示;

  • tspan:积分区间 [t0, tf]

  • y0:初始条件;

  • t:返回的时间点;

  • y:返回的解值。


示例:模拟银行存款增长

function [T, M] = money_in_bank(R)
    % 初始金额
    M0 = 1000;

    % 利率
    R = 2; % 单位:%

    % 时间范围(年)
    T0 = 1;
    Tf = 30;

    % 使用解析表达式(从 dsolve 得到的)
    S = @(T, M) 0.02*M;

    % 数值求解
    [T, M] = ode45(S, [T0, Tf], M0);

    % 绘图
    plot(T, M, '-o')
    legend('M(t)')
    xlabel('Years')
    ylabel('Money in Bank')
end

参考资料

如需我帮你推导某个具体 ODE 或写出 MATLAB 解法,也可以告诉我。


最后修改: 2025年04月16日 星期三 11:41