在数值分析中,龙格-库塔方法是一系列隐式和显式迭代方法,其中包括欧拉方法, 显式中心点法, ,后向欧拉方法, ,用于联立非线性方程近似解的时间离散化。[2]这些方法是由德国数学家Carl Runge和Wilhelm Kutta。
显式欧拉法(1阶)
中点法(2阶)
https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods#Explicit_Runge.E2.80.93Kutta_methods
dopri5
dopri5
方法是 Dormand-Prince 方法的一个变种,Dormand-Prince 方法是一种经典的 Runge-Kutta 方法,用于求解常微分方程(ODE)。以下是关于 Dormand-Prince 方法和 dopri5
方法的一些详细解释:
Dormand-Prince (DP) 方法
基本思想:
Dormand-Prince 方法是基于 Runge-Kutta 方法的一种,其核心思想是通过计算多个估计值来逼近解的导数,然后利用这些估计值来更新解的值。
公式:
给定一个一阶 ODE:
d y d t = f ( t , y ) \frac{dy}{dt} = f(t, y) dtdy=f(t,y)
Dormand-Prince 方法的一步更新公式为:
y n + 1 = y n + ∑ i = 1 s b i ⋅ k i y_{n+1} = y_n + \sum_{i=1}^{s} b_i \cdot k_i yn+1=yn+i=1∑sbi⋅ki
其中,
k i = h ⋅ f ( t n + c i ⋅ h , y n + ∑ j = 1 s a i j ⋅ k j ) k_i = h \cdot f(t_n + c_i \cdot h, y_n + \sum_{j=1}^{s} a_{ij} \cdot k_j) ki=h⋅f(tn+ci⋅h,yn+j=1∑saij⋅kj)
这里,(h) 是步长,(t_n) 是当前时间,(y_n) 是当前解的值,(a_{ij})、(b_i)、(c_i) 是 DP 方法的系数。
Dopri5 方法
dopri5
方法是 Dormand-Prince 方法的一个变种,具有自适应步长特性。以下是 dopri5
方法的一些详细解释:
自适应步长:
dopri5
方法会根据当前解的变化情况自动调整步长。通过计算估计误差,它可以在需要时减小步长以提高数值精度,或者在解变化缓慢时增大步长以提高计算效率。
阶数和系数:
dopri5
方法通常采用 5 阶精度。它的系数是事先确定的,并用于计算多个估计值和控制步长。
控制误差:
dopri5
方法使用一种控制策略,通过比较计算得到的两个解之间的估计误差来决定是否接受当前步长。这有助于确保数值解在变化剧烈的区域具有更高的精度。
总体而言,Dormand-Prince 方法和其变种 dopri5
是一类强大的常微分方程求解器,适用于广泛的数学和科学计算问题。详细的公式和参数可以在相关的数值分析文献中找到。