Euler’s Method 是求解常微分方程初值问题的一种简单而经典的数值方法。它通过迭代的线性逼近来估计函数值随时间的变化,使用差商来近似一定步长的导数。

欧拉法用于求解形式为 的常微分方程,其中 是未知函数, 为自变量,

y'=f(x,y) \\ \\ y(x_{0})=y_{0} \end{cases}$$ ### 前向欧拉法 **Forward Euler** 一阶数值积分方法 $$y_{n+1} = y_n + h \cdot f (x_n, y_n)$$ 实际上欧拉法的思想很简单,精度也不够高 一阶精度:时间误差与步长的一次方成正比 当步长较大时,可能不稳定 精度较低,不足以解决需要高精度的问题。 ### 后向欧拉法 **Backward Euler** 一阶数值积分方法 线性外推来估计下一个时间点的解 $$y_{n+1} = y_n + h \cdot f (x_{n+1}, y_{n+1})$$ 后向欧拉法比前向欧拉法更稳定 ### 梯形法 **Trapezoidal** 二阶数值积分方法 结合前向欧拉法和后向欧拉法 利用当前点和下一个时间点的导数的平均值来估计下一个时间点的解 $$\begin{align} \dfrac{y_{n+1}-y_{n}}{x_{n+1}-x_{n}}=\dfrac{1}{2}(f(x_{n},y_{n})+f(x_{n+1},y_{n+1})) \end{align}$$ $$\begin{align} y_{n+1}=y_{n}+ \dfrac{h}{2}(f(x_{n},y_{n})+f(x_{n+1},y_{n+1})) \end{align}$$ ### 改进欧拉法 **改进欧拉法 (Improved Euler's Method)** $\overline{y_{n+1}}=y_{n}+hf(x_{n},y_{n})$ $$\begin{align} y_{n+1}=y_{n}+ \dfrac{h}{2}(f(x_{n},y_{n})+f(x_{n+1},\overline{y_{n+1}} )) \end{align}$$ 尽管欧拉法在精度和稳定性方面有局限性,但它仍然是理解和学习数值方法的基础。对于更复杂或要求更高的问题,通常会使用更高阶的方法,如[[龙格-库塔法\|龙格-库塔法]]。 ### 欧拉法应用 将连续时间项离散化,在每个采样周期内通过线性[[插值\|插值]]和[[差分方程\|差分方程]]来近似连续时间的积分过程。实际上就是[[模拟控制器离散化\|模拟控制器离散化]]的差分变换法: | | 微分项<br> | 积分项 | | ---- | ----------------------------------- | -------------------------------------------------- | | 原项 | $\dfrac{1}{s}$ | $\dfrac{N}{1+ \dfrac{N}{s}}$ | | 前向欧拉 | $\dfrac{T_{s}}{z-1}$ | $\dfrac{N}{1+ \dfrac{NT_{s}}{z-1}}$ | | 反向欧拉 | $\dfrac{T_{s}z}{z-1}$ | $\dfrac{N}{1+ \dfrac{NT_{s}z}{z-1}}$ | | 梯形法 | $\dfrac{T_{s}}{2} \dfrac{z+1}{z-1}$ | $\dfrac{N}{1+ \dfrac{N}2 \dfrac{T_{s}(z+1)}{z-1}}$ |