欢迎光临散文网 会员登陆 & 注册

什么是龙格库塔?常微分方程的数值解法

2022-01-02 10:37 作者:图通道  | 我要投稿

龙格-库塔法(R-K)是一种求解常微分方程数值解的单步算法,其特殊形式有:欧拉法,改进欧拉法......本推文中基于泰勒级数法推导龙格库塔(显)格式,并附上各算法的matlab数值案例。

R-K格式理论基础

考虑常微分微分方程:

在x-y平面上,上述微分方程的解y=y(x)称作它的积分曲线;积分曲线上一点的切线斜率等于函数f(x,y)的值。

如果按照函数f(x,y)在x-y平面上建立一个方向场,那么积分曲线上每一点的切线方向均与方向场在该点的方向一致。

微分方程具有等效的积分方程形式:

采用数值积分近似右端项,事实上此时已经变成了一个差分方程:

数值积分格式的精度直接影响了微分方程解的精度。在此处称\fai为增量函数,求解的核心过程也就是构造增量函数的过程!以下对增量函数做一些分类,以定义不同的求解格式:

十分经典的求解格式有:

欧拉法,后退欧拉法,梯形法,改进欧拉法

它们对应的数值积分方法图示依次为:

上文提到数值积分格式的精度直接影响了微分方程解的精度(上述的四种经典方法由于积分点的限制,最高也只能到2-阶精度),那如何提高精度呢?答案是增加积分点。

为了更好地理解这一过程,我们从泰勒展开出发。将y(x_{n+1})在x_n点泰勒展开:

将上式中的高阶小量忽略,用\Delta作为求解格式,得到的便是一个p-阶算法。如果构造出的增量函数与\Delta足够接近,那么得到的也将是一个p-阶的求解格式。

现在推导p=2的R-K格式(2个积分点):

最后让"同类项"的系数相等,可以得到:

这里的解不唯一,选择下面一组解,得到的将是改进的欧拉法(又称预估-校正格式:采用欧拉法预估,再用梯形法迭代一次进行校正;本质上是显示算法):

对于更高阶的R-K格式,推导方法一致:

•选择更多的泰勒展开项;

•选择更多的积分点;

•全部展开后比较同类项系数;

下面给出R-K3与R-K4的常用格式:

数值案例

四种经典方法

定义微分方程


欧拉法

改进欧拉法

隐式欧拉法

梯形法

龙格库塔四阶方法


  • MATLAB交流群:1129425848;

  • 文中完整代码:https://mbd.pub/o/bread/YpaZmJls

  • 图图的所有代码:https://mbd.pub/o/bread/YZaYm55t


什么是龙格库塔?常微分方程的数值解法的评论 (共 条)

分享到微博请遵守国家法律