1. 课程导入与全景认识
常微分方程(Ordinary Differential Equation,简称 ODE)是描述“一个未知函数及其导数之间关系”的方程。它之所以在工程与科学中无处不在,是因为绝大多数动态系统的变化率都取决于系统当前的状态:放射性物质的衰变速率取决于剩余量,物体的加速度取决于当前受力,种群的增长速率取决于当前种群数量与环境容量。把这些“变化率—状态”的关系写成等式,就得到了常微分方程。
先明确一个贯穿全课程的基本约定:本课程中,自变量通常记为 t(时间),未知函数记为 y(t),导数写作 y'、y'' 或 dy/dt。我们统一采用“导数在左、表达式在右”的标准形式,例如 y' = -ky。后文所有符号、正负号与图示均以此约定为准。
一、阶数与线性/非线性:两个必须先分清的分类维度
阶数由方程中出现的最高阶导数决定。y' = -ky 是一阶,因为它只含一阶导数;y'' + ω²y = 0 是二阶,描述简谐振动;y''' = f(t) 是三阶。阶数决定了求解时需要多少个初始条件:一个 n 阶方程通常需要 n 个初始条件才能确定唯一解,这一点在数值求解时直接对应“需要给定几个初值”。
线性与非线性的判断标准是:未知函数 y 及其各阶导数是否都以一次方出现,且不出现它们之间的乘积、复合或非线性函数。例如 y' + 2y = sin t 是线性的(右端 sin t 只含自变量,不影响线性性);而 y' = y(1 - y)(逻辑斯蒂增长)因含 y² 项而是非线性的;y'' + sin y = 0(单摆大角度模型)因 sin y 而是非线性的。这个区分极其重要:线性方程有成熟的解析解理论与叠加原理,非线性方程往往只能数值求解,且可能出现多解、分岔与对初值极度敏感等复杂现象。
二、建模与数值求解的整体流程
上图给出了本课程的主线。建模阶段的核心不是套公式,而是把物理陈述翻译成变化率语言。以牛顿冷却定律为例:物体温度 T(t) 高于环境温度 T∞ 时降温,降温速率与温差成正比,于是写成 dT/dt = -k(T - T∞),k > 0 为散热系数。这里负号的含义是“温差为正时温度下降”,与我们的符号约定一致。再给定初始温度 T(0) = T0,一个完整的初值问题就建立起来了。
求解阶段有两条路。解析法能得到闭式表达式,例如上述方程的解为 T(t) = T∞ + (T0 - T∞)e^(-kt),便于分析长期行为;但大量非线性方程没有初等闭式解,必须转向数值法。数值法的本质是用离散点上的近似值逐步推进:给定步长 h,从 t0 出发,用当前点的斜率估计下一点。最简单的显式欧拉法为 y_{n+1} = y_n + h·f(t_n, y_n);精度更高的是四阶龙格—库塔法(RK4),它在一个步内取四次斜率加权平均。步长 h 越小通常越精确,但计算量与舍入误差累积也会增加,需要在精度与效率间权衡。
三、一个可动手的示例:把流程走一遍
设某放射性样品初始量 y(0) = 100(单位任意),衰变常数 k = 0.1,模型为 y' = -0.1y,取步长 h = 0.5,用显式欧拉法推进两步:
第1步:y1 = 100 + 0.5 × (-0.1 × 100) = 100 - 5 = 95
第2步:y2 = 95 + 0.5 × (-0.1 × 95) = 95 - 4.75 = 90.25
而解析解在 t = 1 处为 100·e^(-0.1) ≈ 90.48。对比可见欧拉法结果 90.25 略偏低,误差约 0.23。这个偏差不是算错了,而是欧拉法用起点斜率代替整段斜率的系统性误差;把步长减半到 0.25 再算,误差会明显缩小——这正是“步长减半看收敛”的验证思路。通过这个只有两步的小例子,读者应能体会:建模给出方程,数值法给出近似解,验证环节判断近似是否可信,三者缺一不可。
y 及其导数:出现 y²、y·y'、sin y、e^y 等即为非线性;右端只含 t 的函数(如 sin t)不破坏线性性。四、课程目标与学习路径
本课程的目标是让学习者具备三项能力:其一,能把一个实际动态问题正确地写成常微分方程并配上初始条件;其二,能判断方程类型并选择合适的求解策略,对线性低阶方程会手算解析解,对一般方程会用数值法编程求解;其三,能对结果做合理性验证,而不是拿到一串数字就结束。
学习路径按“概念—建模—解析—数值—应用”递进:先掌握定义、阶数与线性/非线性分类,建立符号与术语基础;再学习从物理、生物、工程对象中提炼方程;随后进入一阶方程与二阶线性方程的解析解法;在此基础上引入欧拉法、RK4 等数值方法及其误差与稳定性概念;最后通过综合案例把建模、求解、验证串成完整闭环。建议学习时始终带着一个具体对象(如冷却、衰变、振动、种群)贯穿全程,每学一种方法就回到该对象上算一遍、比一比,这样抽象概念才能落地为可操作的技能。