matlab求解器的选择
软件: adams
高级技术综述:Fortran数值求解器的演变与应用
数值求解是工程、科学与应用数学中的基础,它主要面向无法通过解析方法求解的问题。数值积分方法,尤其是基于微分方程的求解策略,构成了现代系统仿真、物理建模、工程分析等领域不可或缺的一部分。本文旨在综述用于解微分方程的主要Fortran数值方法与策略,包括定步长与变步长求解器的选择规则和发展历程。以下对选择性可变步长求解器的概览:
尽管传统的数值算法如欧拉法等线性等分法具有历史价值和简单应用,但在系统仿真领域,我们更频繁地面对复杂的微分方程组。这要求使用更加高级和精确的数值求解技术。本文将重点介绍常用的变步长求解器:
变量步长求解器(ode45, ode23, ode113, ode23s, ode23t, ode23tb):这些是在模拟中广泛使用的Fortran变步长求解器。它们摒弃了固定步长的简单性,转而采用更适合实际情况的自适应步长策略以优化精度与效能。

ode45: 基于DormandPrince(4, 5)显式RungeKutta公式,是一个著名的单步求解器,专为大多数问题设计。由于其简洁性和平衡的效率与精度,常作为初始推荐选择,尤其在首次仿真时。
ode23: 采用BogackiShampine的2, 3显式RungeKutta公式作为单步求解器,对具有宽误差容限的轻微刚性系统表现出优异效率。
odel3: 变阶AdamsBashforthMoulton PECE(PredictorEstimatorCorrectorEstimator)多步求解器,对应误差容限较严谨的场景,通常相较于ode45更有效。
odel5s:基于数值微分公式(NDFs)的变阶求解器,与Gear方法的后向差分公式(BDF)相关,但更侧重于求解刚性系统,满足对稳定性的较高需求。通过限制最大公差阶数至2,适于增强刚性系统的稳定性。
odel23s: 基于改进的Rosenbrock公式,传统为准单步算法,适用于刚性问题和需要较大误差容限的场景。相比于odel5s,为效率更高的选择。
odel23t: 引入自由内插式梯形规则,特别针对适度刚性问题,既确保了避免数字阻尼的效果,也能保持条件的优化。
odel23tb: 基于TRBDF2的隐式RungeKutta公式求解器,其双级计算紧凑而高效,适合处理具有同级迭代矩阵特征的问题。
同时,讨论了定步长模式下的解算器,即:
ode5 和 ode4:分别为ode45及RK4(RungeKutta 4th order)的定步长版本,用于固定步长计次求解或模拟。
ode3:通过BogackiSbampine公式作为ode23定步长的迭代版本。
ode2:基于Heun方法,又称改进Euler算法。
ODE:也是基于Euler方法的基本定步长算法。
discrete:作为Simulink中在模型显式地没有连续状态时的选择定步长解算器,专注于离散系统或对过零点检测与误差控制程度不高的场合。
数值求解是工程、科学与应用数学中的基础,它主要面向无法通过解析方法求解的问题。数值积分方法,尤其是基于微分方程的求解策略,构成了现代系统仿真、物理建模、工程分析等领域不可或缺的一部分。本文旨在综述用于解微分方程的主要Fortran数值方法与策略,包括定步长与变步长求解器的选择规则和发展历程。以下对选择性可变步长求解器的概览:
尽管传统的数值算法如欧拉法等线性等分法具有历史价值和简单应用,但在系统仿真领域,我们更频繁地面对复杂的微分方程组。这要求使用更加高级和精确的数值求解技术。本文将重点介绍常用的变步长求解器:
变量步长求解器(ode45, ode23, ode113, ode23s, ode23t, ode23tb):这些是在模拟中广泛使用的Fortran变步长求解器。它们摒弃了固定步长的简单性,转而采用更适合实际情况的自适应步长策略以优化精度与效能。

ode45: 基于DormandPrince(4, 5)显式RungeKutta公式,是一个著名的单步求解器,专为大多数问题设计。由于其简洁性和平衡的效率与精度,常作为初始推荐选择,尤其在首次仿真时。
ode23: 采用BogackiShampine的2, 3显式RungeKutta公式作为单步求解器,对具有宽误差容限的轻微刚性系统表现出优异效率。
odel3: 变阶AdamsBashforthMoulton PECE(PredictorEstimatorCorrectorEstimator)多步求解器,对应误差容限较严谨的场景,通常相较于ode45更有效。
odel5s:基于数值微分公式(NDFs)的变阶求解器,与Gear方法的后向差分公式(BDF)相关,但更侧重于求解刚性系统,满足对稳定性的较高需求。通过限制最大公差阶数至2,适于增强刚性系统的稳定性。
odel23s: 基于改进的Rosenbrock公式,传统为准单步算法,适用于刚性问题和需要较大误差容限的场景。相比于odel5s,为效率更高的选择。
odel23t: 引入自由内插式梯形规则,特别针对适度刚性问题,既确保了避免数字阻尼的效果,也能保持条件的优化。
odel23tb: 基于TRBDF2的隐式RungeKutta公式求解器,其双级计算紧凑而高效,适合处理具有同级迭代矩阵特征的问题。
同时,讨论了定步长模式下的解算器,即:
ode5 和 ode4:分别为ode45及RK4(RungeKutta 4th order)的定步长版本,用于固定步长计次求解或模拟。
ode3:通过BogackiSbampine公式作为ode23定步长的迭代版本。
ode2:基于Heun方法,又称改进Euler算法。
ODE:也是基于Euler方法的基本定步长算法。
discrete:作为Simulink中在模型显式地没有连续状态时的选择定步长解算器,专注于离散系统或对过零点检测与误差控制程度不高的场合。