龙格-库塔(Runge–Kutta)法 (Dopri5, Euler method,Explicit midpoint method)

在数值分析中,龙格-库塔方法是一系列隐式和显式迭代方法,其中包括欧拉方法, 显式中心点法,后向欧拉方法, ,用于联立非线性方程近似解的时间离散化。[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=1sbiki

其中,

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=hf(tn+cih,yn+j=1saijkj)

这里,(h) 是步长,(t_n) 是当前时间,(y_n) 是当前解的值,(a_{ij})、(b_i)、(c_i) 是 DP 方法的系数。

Dopri5 方法

dopri5 方法是 Dormand-Prince 方法的一个变种,具有自适应步长特性。以下是 dopri5 方法的一些详细解释:

自适应步长:

dopri5 方法会根据当前解的变化情况自动调整步长。通过计算估计误差,它可以在需要时减小步长以提高数值精度,或者在解变化缓慢时增大步长以提高计算效率。

阶数和系数:

dopri5 方法通常采用 5 阶精度。它的系数是事先确定的,并用于计算多个估计值和控制步长。

控制误差:

dopri5 方法使用一种控制策略,通过比较计算得到的两个解之间的估计误差来决定是否接受当前步长。这有助于确保数值解在变化剧烈的区域具有更高的精度。

总体而言,Dormand-Prince 方法和其变种 dopri5 是一类强大的常微分方程求解器,适用于广泛的数学和科学计算问题。详细的公式和参数可以在相关的数值分析文献中找到。

  • 23
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值