PM Pure Mathematics 2160-7583 Scientific Research Publishing 10.12677/PM.2021.112035 PM-40530 PM20210200000_81661439.pdf 数学与物理 对双曲型方程两种差分格式方法的比较研究 A Comparative Study of Two Difference Schemes for Hyperbolic Equations 欣童 1 2 null 东北大学秦皇岛分校数学与统计学院,河北 秦皇岛 04 02 2021 11 02 261 270 © Copyright 2014 by authors and Scientific Research Publishing Inc. 2014 This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/

显式和隐式差分格式法是求解双曲型偏微分方程的两种常用方法。通过应用这两种方法计算二阶双曲型偏微分方程的数值解和误差,以及分析其程序运行时间,本文对其进行了深刻比较。结果发现:显式差分格式法计算简单,程序运行时间短,但是,当选取的步长比比较小的时候,显示差分格式法的算法不收敛;而隐式差分格式法,对任意的步长比都收敛,但是,其计算过程比较复杂,且程序运行时间较长。 Explicit and implicit difference schemes are two common methods for solving hyperbolic partial differential equations. By using these two methods to calculate the numerical solution and error of the second order hyperbolic partial differential equation, and analyzing the program running time, this paper makes a deep comparison between them. The results show that: the explicit difference scheme method is simple in calculation and its program running time is short, but when the se-lected step ratio is small, it shows that the algorithm of the explicit difference scheme method is not convergent; while the implicit difference scheme method is convergent for any step ratio, but its calculation process is more complex and the program running time is longer.

双曲型方程,显式差分格式法,隐式差分格式法, Hyperbolic Equation Explicit Difference Scheme Method Implicit Difference Scheme Method
摘要

显式和隐式差分格式法是求解双曲型偏微分方程的两种常用方法。通过应用这两种方法计算二阶双曲型偏微分方程的数值解和误差,以及分析其程序运行时间,本文对其进行了深刻比较。结果发现:显式差分格式法计算简单,程序运行时间短,但是,当选取的步长比比较小的时候,显示差分格式法的算法不收敛;而隐式差分格式法,对任意的步长比都收敛,但是,其计算过程比较复杂,且程序运行时间较长。

关键词

双曲型方程,显式差分格式法,隐式差分格式法

A Comparative Study of Two Difference Schemes for Hyperbolic Equations

Xintong Yang

School of Mathematics and Statistics, Northeastern University at Qinhuangdao, Qinhuangdao Hebei

Received: Jan. 13th, 2021; accepted: Feb. 16th, 2021; published: Feb. 24th, 2021

ABSTRACT

Explicit and implicit difference schemes are two common methods for solving hyperbolic partial differential equations. By using these two methods to calculate the numerical solution and error of the second order hyperbolic partial differential equation, and analyzing the program running time, this paper makes a deep comparison between them. The results show that: the explicit difference scheme method is simple in calculation and its program running time is short, but when the selected step ratio is small, it shows that the algorithm of the explicit difference scheme method is not convergent; while the implicit difference scheme method is convergent for any step ratio, but its calculation process is more complex and the program running time is longer.

Keywords:Hyperbolic Equation, Explicit Difference Scheme Method, Implicit Difference Scheme Method

Copyright © 2021 by author(s) and beplay安卓登录

This work is licensed under the Creative Commons Attribution International License (CC BY 4.0).

http://creativecommons.org/licenses/by/4.0/

1. 引言

作为用来刻画未知变量、时间导数、空间变量和导数之间的关系的偏微分方程的一种——二阶双曲型偏微分方程是最为常见和十分重要的 [ 1 ] - [ 6 ]。这是因为双曲型偏微分方程的基本的模型是波动方程,而波动现象普遍存在于我们的生活和生产之中。例如空气中传播的声波、绳运动产生的波、水波等,这些波叫做都是波,具体讲是机械波 [ 7 ] - [ 13 ]。另外,还有工业生产和工程中应用的光波、无线电波等,这些波具体讲作叫做电磁波 [ 14 ] [ 15 ] [ 16 ] [ 17 ],故求解二阶双曲型的偏微分方程具有重要意义。

求解二阶双曲型的偏微分方程有多种方法。但是,当二阶双曲型偏微分方程的解析解难以求出时,人们常诉诸于数值模拟方法求其数值解。这其中,人们最常用的方法有显式差分格式和隐式差分格式方法 [ 18 ] [ 19 ] [ 20 ] [ 21 ] [ 22 ]。然而,这两种方法各有什么特点,他们分别适合解决什么问题呢?尚没有明确的结论。为此,本文对这个问题做一研究。

2. 利用显式差分格式法进行数值求解 2.1. 数值解和误差分析

现给出一个双曲型波动方程问题,如下所示:

∂ 2 u ∂ t 2 − ∂ 2 u ∂ x 2 = 0 , 0 < x < 1 , 0 < t ≤ 1

u ( x ,   0 ) = e x , ∂ u ∂ t ( x ,   0 ) = e x , 0 < x < 1

u ( 0 ,   t ) = e t , u ( 1 ,   t ) = e 1 + t , 0 < t ≤ 1

该问题精确解为 u ( x , t ) = e x + t 。

首先,利用显式差分格式的方法求解其数值解,并求出此数值解的误差的绝对值。具体做法是:取空间步长h为1/100,时间步长 τ 为1/200,此时的步长比s为1/2,计算固定 x = 0.5 时,时间从0.1到1秒的数值解以及数值解和精确解之差的绝对值(误差),结果如表1所示。再次取空间步长和时间步长分别为1/100和1/100,结果如表2所示。第三次取他们的值分别为1/100和1/50,此时计算结果如表3所示。

Exact solution, numerical solution and absolute error at some nodes ( h = 1 / 100 , τ = 1 / 200
(x, t) 数值解 精确解 误差
(0.5, 0.1) 1.822118166 1.822118800 6.347874e−07
(0.5, 0.2) 2.013751546 2.013752707 1.161856e−06
(0.5, 0.3) 2.225539354 2.225540928 1.574483e−06
(0.5, 0.4) 2.459601248 2.459603111 1.863540e−06
(0.5, 0.5) 2.718279878 2.718281828 1.950804e−06
(0.5, 0.6) 3.004165434 3.004166024 5.895138e−07
(0.5, 0.7) 3.320117694 3.320116923 7.712292e−07
(0.5, 0.8) 3.669298711 3.669296668 2.042968e−06
(0.5, 0.9) 4.055203232 4.055199967 3.264843e−06
(0.5, 1.0) 4.481693496 4.481689070 4.426127e−06

表1. 部分节点处精确解、数值解和误差绝对值 ( h = 1 / 100 , τ = 1 / 200 )

Exact solution, numerical solution and absolute error at some nodes ( h = 1 / 100 , τ = 1 / 100
(x, t) 数值解 精确解 误差
(0.5, 0.1) 1.822116048 1.822118800 2.752419e−06
(0.5, 0.2) 2.013747175 2.013752707 5.532384e−06
(0.5, 0.3) 2.225532561 2.225540928 8.367720e−06
(0.5, 0.4) 2.459591824 2.459603111 1.128680e−05
(0.5, 0.5) 2.718267510 2.718281828 1.431885e−05
(0.5, 0.6) 3.004154737 3.004166024 1.128680e−05
(0.5, 0.7) 3.320108555 3.320116923 8.367720e−06
(0.5, 0.8) 3.669291135 3.669296668 5.532385e−06
(0.5, 0.9) 4.055197214 4.055199967 2.752419e−06
(0.5, 1.0) 4.481689070 4.481689070 1.421085e−14

表2. 部分节点处精确解、数值解和误差绝对值 ( h = 1 / 100 , τ = 1 / 100 )

Exact solution, numerical solution and absolute error at some nodes ( h = 1 / 100 , τ = 1 / 50
(x, t) 数值解 精确解 误差
(0.5, 0.1) 1.822107578 1.822118800 1.122231e−05
(0.5, 0.2) 2.013729376 2.013752707 2.333121e−05
(0.5, 0.3) 2.41268389 2.225540928 1.871430e+01
(0.5, 0.4) −8.865401847e+04 2.459603111 8.865648e+04
(0.5, 0.5) 3.950775415e+10 2.718281828 3.950775e+10
(0.5, 0.6) −1.641415244e+16 3.004166024 1.641415e+16
(0.5, 0.7) 6.038232892e+21 3.320116923 6.038233e+21
(0.5, 0.8) −1.689514915e+27 3.669296668 1.689515e+27
(0.5, 0.9) 6.910972393e+31 4.055199967 6.910972e+31
(0.5, 1.0) 4.011360911e+38 4.481689070 4.011361e+38

表3. 部分节点处精确解、数值解和误差绝对值 ( h = 1 / 100 , τ = 1 / 50 )

由表1、表2、表3中的数据可以看出,当取空间步长和时间步长分别为1/100和1/200时,有效数字位数可以达到6位;当取空间步长和时间步长分别为1/100和1/100时,有效数字位数可以达到5位,他们都很好的逼近了精确解。然而,当空间步长和时间步长分别为1/100和1/50时误差非常大,此时显式差分格式方法也不收敛。

进一步,我们绘制出了空间步长和时间步长分别为1/10和1/20,1/20和1/40,1/40和1/80时,在某一时刻的误差曲线和整体的误差曲面图,如图1和图2所示。由这两个图可以看出,当空间步长和时间步长取1/10和1/20时数值解的误差较大,随着步长减小,每个坐标的误差均减小。

图1. t = 1时不同步长时对应的误差曲线

图2. 不同步长时对应的误差曲面

为分析不同步长下显式差分格式的准确程度,我们固定步长比为1/2,依次取空间步长为1/10、1/20一直到1/1280,计算在 x = 0.5 处的最大误差,以及步长细分时最大误差的比值。结果如表4所示。

Maximum error of asynchronous long time numerical solutio
h τ E ∞ ( h , τ ) E ∞ ( 2 h , 2 τ ) / E ∞ ( h , τ )
1/10 1/20 4.369783e−04 *
1/20 1/40 1.106462e−04 3.9493
1/40 1/80 2.771186e−05 3.9927
1/80 1/160 6.926296e−06 4.0010
1/160 1/320 1.732371e−06 3.9982
1/320 1/640 4.330753e−07 4.0002
1/640 1/1280 1.082610e−07 4.0003
1/1280 1/2560 2.706447e−08 4.0001

表4. 取不同步长时数值解的最大误差

根据表4可知,当时间步长从1/10变化到1/1280时,最大误差从 4.37 × 10 − 4 减小到 2.71 × 10 − 8 ,误差大幅度减小,说明步长越小,数值解的误差越小。同时,当时间步长与空间步长同时缩小为原来的1/2时,最大误差缩小为原来1/4。

2.2. 显式差分格式的计算时间

程序的运行时间反应了算法的复杂程度和计算效率,因此下面计算当步长比固定为1/2时不同步长情况下的显式差分格式的程序运行时间。考虑计算机运行的不稳定性,5次重复运行,取时间的平均值,结果如表5,平均时间变化图如图3所示。

从表5可以看出,当空间步长和时间步长为1/10和1/20时,程序运行的时间约为0.001秒,而当空间步长和时间步长为1/5120和1/10,240,运行时间约为0.8秒,时间的变化非常大。从图3可以看出,当步长减小时,程序的运行时间逐渐增加,并且增加速度越来越快。

Calculation time of explicit difference scheme with different step siz
次数 第一次 第二次 第三次 第四次 第五次 均值
空间步长
1/10 0.0047938 0.0002119 0.0001499 0.0002869 0.0002791 0.00114432
1/20 0.0020701 0.0003073 0.0002474 0.0003799 0.0002699 0.00065492
1/40 0.00131 0.0008426 0.000534 0.0008998 0.0005666 0.0008306
1/80 0.0017145 0.0017343 0.0011322 0.0019457 0.0015674 0.00161882
1/160 0.0055483 0.0035192 0.0030814 0.0046287 0.0048612 0.00432776
1/320 0.0059902 0.0087562 0.0080683 0.0074664 0.0091803 0.00789228
1/640 0.0167173 0.0210556 0.0145226 0.0205995 0.022362 0.0190514
1/1280 0.056834 0.049551 0.0543222 0.0576309 0.0643534 0.0565383
1/2560 0.2265084 0.2034202 0.2008477 0.2072619 0.2111032 0.20982828
1/5120 0.7837198 0.7825685 0.796066 0.8442899 0.8129564 0.80392012

表5. 不同步长下的显式差分格式计算时间

图3. 显式差分格式不同步长下的时间均值

3. 利用隐式差分格式进行数值求解 3.1. 数值解与误差分析

下面利用隐式差分格式的方法再次求解上述问题的数值解,并求出其数值解的误差的绝对值。取空间步长为1/100,时间步长为1/100,此时的步长比为1,计算固定 x = 0.5 时,时间从0.1到1秒的数值解以及数值解和精确解之差的绝对值(误差)。结果如表6所示。其次再取空间步长和时间步长分别为1/200和1/200,再次求其数值解和误差,结果如表7所示。

进一步,我们也绘制出了当空间步长和时间步长取1/10和1/20,1/20和1/40,1/40和1/80时在某一时间的误差曲线和整体的误差曲面图,如图4和图5所示。由这两个图可以看出,当空间步长和时间步长取1/10和1/20时数值解的误差较大,随着步长减小,每个坐标的误差均减小。

Exact solution, numerical solution and absolute error at some nodes ( h = 1 / 100 , τ = 1 / 100
(x, t) 数值解 精确解 误差
(0.5, 0.1) 1.822120583 1.822118800 1.782186e−06
(0.5, 0.2) 2.013757202 2.013752707 4.494834e−06
(0.5, 0.3) 2.225549190 2.225540928 8.261075e−06
(0.5, 0.4) 2.459616334 2.459603111 1.322333e−05
(0.5, 0.5) 2.718301086 2.718281828 1.925730e−05
(0.5, 0.6) 3.004189370 3.004166024 2.334548e−05
(0.5, 0.7) 3.320143880 3.320116923 2.695716e−05
(0.5, 0.8) 3.669326801 3.669296668 3.013383e−05
(0.5, 0.9) 4.055232931 4.055199967 3.296452e−05
(0.5, 1.0) 4.481724504 4.481689070 3.543386e−05

表6. 部分节点处精确解、数值解和误差绝对值 ( h = 1 / 100 , τ = 1 / 100 )

Exact solution, numerical solution and absolute error at some nodes ( h = 1 / 200 , τ = 1 / 200
(x, t) 数值解 精确解 误差
(0.5, 0.1) 1.822119249 1.822118800 4.481301e−07
(0.5, 0.2) 2.013753836 2.013752707 1.128893e−06
(0.5, 0.3) 2.225543002 2.225540928 2.073096e−06
(0.5, 0.4) 2.459606428 2.459603111 3.316704e−06
(0.5, 0.5) 2.71828668 2.718281828 4.856486e−06
(0.5, 0.6) 3.004171899 3.004166024 5.875128e−06
(0.5, 0.7) 3.320123669 3.320116923 6.746337e−06
(0.5, 0.8) 3.669304218 3.669296668 7.550346e−06
(0.5, 0.9) 4.055208217 4.055199967 8.250381e−06
(0.5, 1.0) 4.481697926 4.481689070 8.855396e−06

表7. 部分节点处精确解、数值解和误差绝对值 ( h = 1 / 200 , τ = 1 / 200 )

图4. t = 1时不同步长时对应的误差曲线

图5. 不同步长时对应的误差曲面

为分析不同步长下显式差分格式的准确程度,我们固定步长比为1,依次取空间步长为1/10、1/20一直到1/640,计算在 x = 0.5 处的最大误差,以及步长细分时最大误差的比值,结果如表9所示。

根据表8中数据可知,当时间步长从1/10变化到1/640时,最大误差从0.003508减小到 8.67 × 10 − 7 ,误差大幅度减小,说明步长越小,数值解的误差越小。同时,当时间步长与空间步长同时缩小为原来的1/2时,最大误差缩小为原来1/4,最大误差的变化趋势与显式差分格式的变化趋势相似。

Maximum error of asynchronous long time numerical solutio
h τ E ∞ ( h , τ ) E ∞ ( 2 h , 2 τ ) / E ∞ ( h , τ )
1/10 1/10 0.003508 *
1/20 1/20 8.859737e−04 3.9592
1/40 1/40 2.219485e−04 3.9918
1/80 1/80 5.544056e−05 4.0034
1/160 1/160 1.385442e−05 4.0017
1/320 1/320 3.464567e−06 3.9989
1/640 1/640 8.660718e−07 4.0003

表8. 取不同步长时数值解的最大误差

3.2. 隐式差分格式的计算时间

下面计算当步长比固定为1时不同步长情况下的隐式差分格式的程序运行时间,考虑计算机运行的不稳定性,也重复运行5次,取时间的平均值,结果如表9所示,平均时间变化图如图6所示。

Calculation time of implicit difference scheme with different step siz
次数 第一次 第二次 第三次 第四次 第五次 均值
空间步长
1/10 0.0186939 0.0009902 0.001156 0.0007517 0.001077 0.00453376
1/20 0.001981 0.0010297 0.0011978 0.0008154 0.0015323 0.00131124
1/40 0.00188 0.0022067 0.0013037 0.0022999 0.0017808 0.00189422
1/80 0.0031734 0.0039992 0.0026563 0.0040584 0.0041335 0.00360416
1/160 0.0085506 0.0071591 0.0075017 0.0075606 0.0075743 0.00766926
1/320 0.0157689 0.0157646 0.0215593 0.0180831 0.0157901 0.0173932
1/640 0.0452257 0.0463501 0.0503514 0.0506271 0.0431067 0.0471322
1/1280 0.1284789 0.1374374 0.1315172 0.133334 0.1284799 0.13184948
1/2560 0.4834762 0.521275 0.4831454 0.4791363 0.4928879 0.49198416
1/5120 1.8339433 1.8788296 1.8842463 1.8218807 1.8325131 1.8502826

表9. 不同步长下的隐式差分格式计算时间

从表9可以看出,当空间步长和时间步长为1/10和1/10时,程序运行的时间约为0.0045秒,而当空间步长和时间步长为1/5120和1/10240,运行时间约为1.85秒,时间的变化也非常大。从图6可以看出,当步长减小时,程序的运行时间逐渐增加,并且增加速度越来越快。与显式差分格式方法比较,隐式差分格式方法的运行时间较长,这说明隐式差分格式的复杂度较高。

图6. 隐式差分格式不同步长下的时间均值

4. 两种差分格式的比较和分析

本文对显式差分格式和隐式差分格式方法的特点进行了比较和分析,结论如下:

1) 运用显式差分格式得到数值解的收敛性取决于选取的步长比,当步长比小于等于1时算法是收敛的,因此需要注意设置的时间和空间步长;而隐式差分格式在任何情况下都是收敛的;

2) 在算法收敛的情况下显式差分格式和隐式差分格式得到的数值解的误差都比较小,并且设置的步长越小,划分的格数越多,运用两种方法得到的数值解的误差都越小,说明这两种方法都能很好地逼近精确解;

3) 对于显式差分格式和隐式差分格式方法,当步长比固定时,步长以2的倍数减小时,数值解的最大误差几乎以4的常速率减小;

4) 运用显式差分法和隐式差分法求解运行的时间均随划分的格数的增加而增加,说明格数越多,计算的次数越多,复杂度越高;

5) 当划分的格数相同时,运用显式差分法求解运行的时间要比隐式差分法运行的时间短,说明显式差分格式法比隐式差分格式法计算简单,求解效率更高。

综上所述,隐式差分格式法和显式差分格式法都是求解双曲型偏微分方程数值解的有效方法,但是各有特点。显式差分格式法对设置的步长比有限制,太小的步长比可能导致数值解不收敛,但是其程序运行时间短,计算效率高,而隐式差分格式法对任意的步长都可以求解,但是程序运行的时间较长,计算较复杂。

文章引用

杨欣童. 对双曲型方程两种差分格式方法的比较研究A Comparative Study of Two Difference Schemes for Hyperbolic Equations[J]. 理论数学, 2021, 11(02): 261-270. https://doi.org/10.12677/PM.2021.112035

参考文献 References Shiralashetti, S.C. and Hanaji, S.I. (2021) Taylor Wavelet Collocation Method for Benjamin-Bona-Mahony Partial Differential Equations. Results in Applied Mathematics, 9, Article ID: 100139.
https://doi.org/10.1016/j.rinam.2020.100139
唐宁. 基于偏微分方程的舰船图像增强处理方法[J]. 舰船科学技术, 2020, 42(22): 40-42. 刘文豪. 几类物理背景下的非线性偏微分方程解析解的研究[D]: [硕士学位论文]. 武汉: 中国矿业大学数学学院, 2020. 刘蕊. 双曲型边界观测器在输油管道中的应用研究[D]: [硕士学位论文]. 济南: 济南大学,2020. 余红蕾. 偏微分方程去噪模型中方向扩散与应用探讨[J]. 宁夏师范学院学报, 2020, 41(4): 11-17+35. 周红玲. 偏微分方程数值解法在生物持久生存中的应用[J]. 商丘职业技术学院学报, 2019, 18(3): 80-83.
http://dx.chinadoi.cn/10.3969/j.issn.1671-8127.2019.03.018
项巧敏. 非线性边界条件下线性双曲系统的混沌动力学研究[D]: [博士学位论文]. 广州: 华南理工大学数学学院, 2018. 刘建卫, 胡兴昊. 波动方程可打性分析在欧标码头工程中的应用[J]. 中国港湾建设, 2020, 40(11): 33-37.
http://dx.chinadoi.cn/10.7640/zggwjs202011007
石孟常, 李慧龙, 狄福生, 麻志国. 基于波动方程的浅水多次波衰减技术研究及应用[J]. 中国石油和化工标准与质量, 2020, 40(18): 134-135+137. 王钧. 三维地震波场数值模拟方法及应用[J]. 煤炭与化工, 2020, 43(11): 46-50. 曾祥芝, 杨文采. 基于变系数声波方程的地震深度偏移[J]. 应用数学学报, 2020, 43(6): 923-938. 张锐, 季中华, 李春红, 邹玲玲, 郭文军. 基于地震数据Q场建立及补偿处理应用技术研究[C]//中国石油学会石油物探专业委员会(SPG)、国际勘探地球物理学家学会(SEG). SPG/SEG南京2020年国际地球物理会议论文集. 河北: 石油地球物理勘探编辑部, 2020: 3. 张艺耀. 矿井断层超前探波动方程理论及声波波场特征研究[J]. 煤炭科技, 2020, 41(4): 61-63+75. Thomson, W.T. (1950) Transmission of Elastic Waves through a Stratified Solid Medium. Journal of Applied Physics, 21, 89.
https://doi.org/10.1063/1.1699629
Haskell, N.A. (1953) The Dispersion of Surface Waves on Multilayered Media. Bulletin of the Seismological Society of America, 43, 17-34.
https://doi.org/10.1029/SP030p0086
Alterman, Z. and Karal, F.C. (1968) Propagation of Elastic Waves in Layered Media by Finite Difference Methods. Bulletin of the Seismological Society of America, 58, 367-398. Smith, W.D. (1975) The Application of Finite Element Analysis to Body Wave Propagation Problems. Geophysical Journal International, 42, 747-768.
https://doi.org/10.1111/j.1365-246X.1975.tb05890.x
吴强, 邓定文. 一维非线性耦合波动方程组的显式差分格式[J]. 南昌航空大学学报, 2020, 34(3): 34-39. 李继芳. 二维分数阶延迟波动方程的交替方向隐式差分法[D]: [硕士学位论文]. 湘潭: 湘潭大学数学与计算科学学院, 2020. 冯瑜. 两类边值条件二维波动方程的有限差分格式[D]: [硕士学位论文]. 太原: 山西大学数学科学学院, 2019. 姜蕴芝. 求解波动方程的高精度紧致显式差分格式[D]: [硕士学位论文]. 银川: 宁夏大学数学计算机学院, 2016. 智敏. 声波方程隐式高阶有限差分数值模拟[J]. 煤田地质与勘探, 2016, 44(2): 106-111.
http://dx.chinadoi.cn/10.3969/j.issn.1001-1986.2016.02.019
Baidu
map