Runge-Kutta算法学习

原理

此方法主要用来求取微分方程或者微分方程组的数值解,主要思想是将微分方程化为差分方程,然后迭代解出差分方程在一系列点上的值

因此求解步骤主要分为两步:

  • 离散:将微分方程离散化,建立差分方程。而离散化的方法主要有差商法、泰勒级数法与数值积分法(利用矩形或者梯形的面积来计算积分)。
  • 递推:由已知的y(0)逐步计算出解在一系列点上的值。

欧拉方法

其中差商法的基本公式为:
d y d x = f ( x , y ) \frac{dy}{dx}=f(x,y) dxdy=f(x,y)
也就是说
y i + 1 − y i h ≈ f ( x i , y i ) \frac{y_{i+1}-y_i}{h}\approx f(x_i,y_i) hyi+1yif(xi,yi)
所以,欧拉公式可以表示为:
y i + 1 = y i + h f ( x i , y i ) y_{i+1}=y_i+hf(x_i,y_i) yi+1=yi+hf(xi,yi)
这样利用简单的差商法可以得到一般的欧拉方法。但是欧拉方法的局部截断误差会在后面的迭代计算中逐步累积,计算结果和实际数值相差较大。属于一阶精度的计算方法。

对于欧拉方法,减小步长h可以提高计算精度,但是同时也会增大计算负担。该方法尽管效率不高,但是简单易用是他的优势。

为了进一步提高欧拉方法的计算精度,可以改变做差的方式。使用向后差商公式或者中心差商公式。这两种做差方法可以多利用迭代中前一次或者前前一次的数值信息,参与本次数值的计算,从而提高计算精度。因此这种方法也称为两步法,这是一种二阶方法。

其中采用了中心差商的欧拉方法公式如下:
y ′ ( x i ) = y ( x i + 1 ) − y ( x i − 1 ) 2 h − h 2 6 y ( 3 ) ( ξ i ) y'(x_{i})= \frac{y(x_{i+1})-y(x_{i-1})}{2h}-\frac{h^{2}}{6}{y^{(3)}}(\xi_i) y(xi)=2hy(xi+1)y(xi1)6h2y

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值