常微分方程初值问题的数值解法中三种算法的比较

2022-03-22 10:50:37 | 浏览次数:

【摘 要】 常微分方程是用来描述物理模型的重要工具之一,有限差分法是一种有效求解常微分方程近似解的方法,它是基于差商代替导数或者积分插值,然后构造差分格式,根据差分迭代格式来求解原微分方程,从而求得原微分方程的近似解。本文对常用的求解常微分数值解法: Euler法,梯形公式法,Runge-Kutta法进行了阐述,同时借助Matlab软件对给出的算例验证算法的有效性,并对这三种算法进行比较分析。

【关键词】 常微分方程;数值解;算法比较

上式在实际的计算过程中是应用最广泛的Runge-Kutta法公式,也被称为经典的四阶显示Runge-Kutta公式。

三、三種方法的实例比较

我们通过两个具体的实例分析解析解和三种算法得到的数值解之间的关系。

(2)利用三种算法求其数值解。分别选取步长为h=0.1,利用三种算法来求解该方程在x=0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0处的数值解,将数值解的结果与解析式所求解的结果作比较。首先分别利用Euler公式、梯形公式公式、四级四阶Runge-Kutta公式,使用Matlab求解方程的数值解。

从图1和图2中可以很清晰地看出四级四阶Runge-Kutta方法比梯形公式法和Euler公式法与解析解更加接近。近似度最差的是Euler法,Euler法的数值解与解析解的数值差最大,梯形公式法优于Euler法,效果最好的还是Runge-Kutta法。Runge-Kutta法得到的数值解明显接近解析解的值,且随着数值增加,梯形公式法和Euler法与解析解的误差越来越大,但是Runge-Kutta法的计算过于复杂,而Euler相对而言简单许多。同时,我们对相关数值解和解析解进行误差分析,如图3。

综上,Runge-Kutta法的数值解明显精确度更高,更加接近于解析解,误差也接近于0,但是其计算复杂程度明显较高,计算机编程代码比Euler法和梯形公式法复杂许多,所以在实际应用时要灵活采取不同的方法计算。

2.三种方法的实例比较(2)

我们考虑如下常微分方程初值问题的解析解与数值解

从图4和图5中我们可以看出,当x的取值接近初值时,三个数值解与解析解非常接近,当随着x的逐渐增大,Euler法的数值越来越偏离解析值,梯形法次之,Runge-Kutta法的数值与解析值最接近,并且误差也几乎为0。这一结果和例1得到的结果是统一的。

【参考文献】

[1]张文生.微分方程数值解[M].北京:科学出版社,2014.

[2]张艺,解烈军.微分方程初值问题泰勒级数法的实现[J].大学数学,2007,23(3):177-181.

[3]孟纯青.含余项的常微分方程数值计算方法[J].首都师范大学学报(自然科学版),…2015,36(1):13-19.

[4]魏明强.一阶常微分方程数值解中四种算法的实例比较[J].中国传媒大学学报(自然科学版),2016,23(2):41-44.

[5]孙美玲.常微分方程数值解法的Matlab计算与可视比较[J].高教学刊,2016(19):60-61.

[6]孙礼俊.常微分方程的有限差分方法及其简单应用[D].安徽大学,2010.

【基金项目:国家自然科学基金项目(11501309);江苏省“青蓝工程”优秀青年骨干教师项目;江苏省大学生创新创业训练计划性项目(201810304086X)】

推荐访问: 初值 解法 三种 方程 数值