在惯性导航以及VIO等实际问题中利用IMU求解位姿需要对IMU测量值进行积分得到需要的位置和姿态,其中主要就是求解微分方程。但之前求解微分方程的解析方法主要是应用于一些简单和特殊的微分方程求解中,对于一般形式的微分方程,一般很难用解析方法求出精确解,只能用数值方法求解。该系列主要介绍一些常用的常微分方程的数值解法,主要包括:
- [常微分方程的数值解法系列一] 常微分方程
- [常微分方程的数值解法系列二] 欧拉法
- [常微分方程的数值解法系列三] 改进欧拉法(预估校正法)
- [常微分方程的数值解法系列四] 中值法
- [常微分方程的数值解法系列五] 龙格-库塔(RK4)法
这个系列后面文章会用到前面文章的理论和技术,所以建议按照顺序查看。
简介
而在具体求解微分方程中,一般来说给定的条件是
{ x ′ ( t ) = f ( t , x ( t ) ) , a ≤ t ≤ b x ( t 0 ) = x 0 \begin{cases} \mathbf{x}^{\prime}(t)=f(t, \mathbf{x}(t)), \quad a \leq t \leq b \\ \mathbf{x}({t_0}) = x_0 \end{cases} {
x′(t)=f(t,x(t)),a≤t≤bx(t0)=x0
即给定微分方程以及原方程在初始点的值,求原方程在某个 t t t下的 x ( t ) x(t) x(t)原方程的值,这类问题就是(一阶)常微分方程初值求解问题。
(这里不对常微分方程或者偏微分方程等概念,以及求解微分方程的其他条件如边界条件情况做详细介绍,需要了解的话可以自己google,不影响本系列介绍。)
解法介绍
一般来说,(一阶)常微分方程数值解法基本思想是:
在区间 [ a , b ] [a, b] [a,b]中插入一系列间隔相同为 Δ t \Delta t Δt的离散点
a ≤ t 0 < t 1 < ⋯ < t i < ⋯ < t n − 1 < t n ≤ b a \leq t_0 < t_1< \cdots < t_i < \cdots < t_{n-1} < t_n \leq b a≤t