数值方法与常微分方程求解
1. 一阶初值问题数值求解器
1.1 欧拉法和龙格 - 库塔法概述
在求解一阶常微分方程(ODE)及其系统的近似解时,有许多算法可供选择。欧拉法通常因其教学和实践上的便利性而首先被介绍。该算法易于可视化,它沿着定义系统的向量场的切线进行计算,并且实现起来相对简单。龙格 - 库塔法虽然代码稍复杂一些,但能给出更好的结果。
1.2 误差分析
- 欧拉法误差 :根据泰勒定理,欧拉法单步的误差为 $O(h^2)$,其中 $h$ 是步长 $t_{i + 1} - t_i$。假设初始点 $(t_0, y_0)$ 精确已知,近似值 $y_1$ 与精确初值问题解 $y(t_1)$ 之间的局部截断误差是二次误差项 $\frac{h^2}{2} f’‘(\xi)$,其中 $\xi \in (t_0, t_1)$。由于每一步的初始点并非精确已知,这些误差会逐步累积。
- 龙格 - 库塔法误差 :龙格 - 库塔法的实现难度与欧拉法相近,但推导和分析更为复杂。它每一步需要四倍于欧拉法的浮点运算和函数求值,但所需的步数却少得多。对于这两种方法以及其他许多算法,有大量定理可用于界定方法的误差,一般指的是计算 $n$ 步后在一个区间上累积的全局误差。本质上,如果知道初值问题在某个区间上存在唯一解,并且能推断出解及其导数的各种界,就可以得到该方法的误差界,其阶数比单步局部误差低一阶。因此,欧拉法是 $O(h)$ 方法,而龙格 - 库塔法是 $O(h^4)$ 方法。在实际应用中,如果在给定的固定区间内将步数加倍(即 $h$ 减半),欧拉法的误差大约减半,而龙格 - 库塔法的
数值方法与常微分方程求解
超级会员免费看
订阅专栏 解锁全文
2767

被折叠的 条评论
为什么被折叠?



