形式陈述
本框架的基本对象是常微分方程公理库常微分方程Ordinary differential equation · ODE未知函数及其单一自变量导数组成的方程。初值问题
若 不显含 ,问题称为 autonomous;否则是 nonautonomous。给定终点 ,时间网格写成
固定步长令所有 ,变步长则允许 由预定网格或运行中的控制策略改变。数值状态 近似 ,全部状态构成离散数值轨道公理库序列Sequence以自然数为定义域的函数。;保存整个轨道需要 空间,只推进最终状态的一步法可复用 工作向量。
在相应初值问题于该时间段存在唯一解时,若从时刻 的状态 出发,精确解在长度 后的值记为流映射
一步方法用可计算映射 代替它:
多步方法则让 同时依赖若干先前状态或函数值。前者的状态只需包含当前 ;后者必须把历史纳入算法状态,启动、变步长和重启也会因此具有不同规则。
显式方法能从已有数据直接算出 。隐式方法把新状态放进方程右侧,得到
之类的代数问题,每一步还需非线性或线性求解。显式与隐式描述计算依赖,不等同于低阶与高阶,也不直接判定方法是否适合刚性问题。
局部缺陷从精确状态起步比较两个映射:
全局误差则比较累计后的状态
局部缺陷如何传播成全局误差,需要方法稳定性和 对状态的连续控制。除此之外,隐式方程未完全求解会产生代数求解误差,每次函数求值与状态更新还会产生舍入误差;它们与离散化误差公理库离散化误差与截断误差Discretization error · Truncation error区分连续问题的离散缺陷与离散解的全局误差,并说明一致性为何不能单独保证收敛。不能合并成一个没有来源标签的数字。
算法输入至少包括 、网格或步长策略、方法参数和工作预算;误差控制或隐式求解还要提供各自的容差。输出应包含末状态或轨道、实际到达时间、接受与拒绝步数、函数及 Jacobian 求值数,以及完成、事件终止、预算耗尽、非有限值或隐式求解失败等状态。固定网格一步法在完成全部 次更新且每步有效后结束;变步长控制和误差接受规则由专门页面展开。
若一步需要 次函数求值,显式总成本通常为 次步进和 次求值,再加 的向量组合。隐式方法的主成本取决于每步非线性迭代次数、Jacobian 构造和线性系统求解,不能只按 stage 数与显式方法比较。
直觉
连续解是一条随时间延展的轨道,时间步进用有限个落脚点追踪它。精确流 告诉我们真实轨道一步会走到哪里,数值映射 则规定算法实际迈出的那一步;误差分析研究这两种一步动作的差异怎样沿轨道传播。
固定步长像按均匀节拍拍摄,变步长则在变化剧烈处增加帧数、平缓处减少帧数。无论节拍怎样变化,每个状态都必须携带明确时间;把非自治问题只写成 会丢掉 对右端的影响。
例子与边界
对衰减方程
精确一步因子为 。前向 Euler、后向 Euler 和其他一步法会给出各自的数值放大因子;比较这些因子能看见离散轨道是否复制连续衰减,但具体公式、阶数和刚性实验留在Euler 方法公理库Euler 方法Euler method · Forward Euler · Backward Euler以前向与后向 Euler 建立一阶时间步进基线,并用局部缺陷、全局误差和测试方程放大因子揭示适用边界。及后续稳定性页面。
初值问题不是所有微分方程计算的通用外壳。边值问题同时约束区间两端,通常需要全局离散或射击;微分代数方程含代数约束,初始状态还要满足一致性;随机微分方程的增量含随机项,误差与收敛概念也不同。把这些对象直接塞进同一个 公式,会隐藏各自必须维护的结构。
连续系统的平衡稳定、数值算法的有限精度稳定和时间步进的离散放大性质也不是同一个概念。连续解衰减不能保证任意步长下的数值轨道衰减;数值轨道有界也不能说明它在给定终点足够准确。
推论与应用
Euler 方法公理库Euler 方法Euler method · Forward Euler · Backward Euler以前向与后向 Euler 建立一阶时间步进基线,并用局部缺陷、全局误差和测试方程放大因子揭示适用边界。提供最小的一步基线,Runge–Kutta 方法公理库Runge–Kutta 方法Runge-Kutta method · RK method · Butcher tableau用一步内多个相互依赖的 stage 统一显式与隐式 Runge–Kutta 方法,并以 Butcher tableau、阶条件和稳定函数刻画结构。在一步内增加多个 stage,多步法则复用历史。它们都应以本页的网格、状态、流映射、数值映射和退出状态为共同接口,避免反复定义“数值积分”。
实验报告应保存实际时间网格、函数求值数、局部诊断、全局参考误差和退出原因。只给最终曲线而不说明步长与状态,无法区分真实动力学、离散误差、非线性求解误差和绘图采样效果。
参考资料
- NIST Digital Library of Mathematical Functions, §3.7: Ordinary Differential Equations.
- Ernst Hairer, Syvert P. Nørsett, and Gerhard Wanner, Solving Ordinary Differential Equations I: Nonstiff Problems, 2nd rev. ed., Springer, 1993.
- MIT OpenCourseWare, 18.330 Introduction to Numerical Analysis, ODE initial-value problem notes.