常微分方程的多区域配置方法
A Multi-Domain Collocation Method of Ordinary Differential Equations
DOI: 10.12677/aam.2024.135242, PDF, HTML, XML, 下载: 55  浏览: 118  科研立项经费支持
作者: 尹荣华, 周颖慧, 孙明蕾, 赵俊瑶, 申嘉旭:河南科技大学数学与统计学院,河南 洛阳
关键词: 常微分方程Lagrange插值多区域配置法等距节点Ordinary Differential Equations Lagrange Interpolation Multi-Domains Collocation Method Equidistant Node
摘要: 以等距节点为插值节点,构造常微分方程的Lagrange插值逼近算法格式,将常微分方程转化成矩阵方程求解。通过将区域分解的方式提高算法精度,数值实验证明本文所提算法的高精度,此方法可以广泛应用到其他常微分方程的求解中。
Abstract: Using equidistant nodes as interpolation nodes, construct a Lagrange interpolation approximation algorithm format for ordinary differential equations, and transform the ordinary differential equations into matrix equations for solution. By decomposing regions, the algorithm accuracy is improved, and numerical experiments have demonstrated the high accuracy of the proposed algorithm. This method can be widely applied to the solution of other ordinary differential equations.
文章引用:尹荣华, 周颖慧, 孙明蕾, 赵俊瑶, 申嘉旭. 常微分方程的多区域配置方法[J]. 应用数学进展, 2024, 13(5): 2541-2548. https://doi.org/10.12677/aam.2024.135242

1. 引言

常微分方程是现代数学的一个重要分支,在物理学,微分几何,计算数学,计算机图形学,图象处理以及大量的边缘科学诸如电磁流体力学、化学流体力学、动力气象学、海洋动力学、地下水动力学等学科中都有许多重要的应用。因此,对于常微分方程的求解就显得尤为重要。对于常微分方程的精确解求解办法有很多种方法 [1] 。对于常微分方程的数值求解方法 [2] 也有很多,有学者采用Milstein方法 [3] ,也有学者采用Birkhoff配点法 [4] ,还有学者采用龙格–库塔法,利用泰勒展开式求解二阶常微分方程 [5] 。最近,有人利用Lagrange插值 [6] 函数的优点,采用等距节点来求解偏微分方程 [7] 单区域时空方向上的数值解,也有学者对KdV方程采用Legendre-Hermite时空二元谱配置方法 [8] ,采用非等距节点求解偏微分方程,而文献 [9] 给出多区域非等距节点谱配法求解偏微分方程。而本文将考虑对常微分方程采用等距节点构造Lagrange插值算法,并给出多区域等距节点谱配法求解常微分方程的算法格式。

我们以下面的二阶常微分方程为例,记 x = x ,考虑常微分方程的初边值问题:

{ x 2 u + 2 x u + u = e x , x ( 1 , 1 ) , u ( 1 ) = 2 e , u ( 1 ) = 0. (1)

先通过构造单区域上的Lagrange插值逼近算法来逼近上述方程的精确解,再将区间(−1, 1)分解成两部分,构造多区域上的Lagrange插值逼近算法,将方程转化成矩阵方程求解。通过数值实验发现,该算法所求的近似解能够很好的逼近精确解,而且该算法实施较为容易,易于理解。

2. 基于等距节点的拉格朗日多项式的微分矩阵推导

h = ( b a ) / N x 0 = a x k = x 0 + k h k = 0 , 1 , , N 。则以 x k 为节点的Lagrange插值基函数为:

φ n ( x ) = ( x x 0 ) ( x x 1 ) ( x x n 1 ) ( x x n + 1 ) ( x x N ) ( x n x 0 ) ( x n x 1 ) ( x n x n 1 ) ( x n x n + 1 ) ( x n x N ) , n = 0 , 1 , , N .

ω ( x ) = ( x x 0 ) ( x x 1 ) ( x x N ) ,则有:

φ n ( x ) = ω ( x ) ( x x n ) x ω ( x n ) .

P N ( a , b ) 为次数 N 的多项式集合,对于 u ( x ) C ( a , b ) ,其插值多项式为:

P N ( x ) = n = 0 N u n φ n ( x ) , u n = u ( x n ) , x [ a , b ] .

P N ( a , b ) 关于x求一阶导数,并令 x = x k , k = 0 , 1 , 2 , , N ,得:

x P N ( x k ) = m = 0 N x φ n ( x k ) u n .

D = ( d k n ) ( N + 1 ) × ( N + 1 ) 矩阵,且 d k n = x φ n ( x k ) ,由文献 [7] 可知:

d k n = { ( 1 ) n k k ! ( N k ) ! h ( k n ) n ! ( N n ) ! , k n , 1 h ( ( 1 + 1 2 + + 1 n ) ( 1 + 1 2 + + 1 N n ) ) , 0 < k = n < N , 1 h ( 1 + 1 2 + + 1 N ) , k = n = 0 , 1 h ( 1 + 1 2 + + 1 N ) , k = n = N .

对于 d k n 的具体推导在文献 [7] 中有详细推导,由文献 [10] 可知,m阶微分矩阵与一阶微分矩阵的关系是: D m = D ( m )

3. 常微分方程多区域Lagrange插值逼近算法格式

Ω = ( 1 , 1 ) ,(1)式的Lagrange插值逼近方法就是求多项式 u M ( x ) P M ( Ω ) 满足:

{ x 2 u M + 2 x u M + u M = e x , x ( 1 , 1 ) , u M ( 1 ) = 2 e , u M ( 1 ) = 0. (2)

其数值解可以写成:

u M ( x ) = n = 0 M u ^ n φ n ( x ) , u ^ n = u ^ ( x n ) .

3.1. 单区域

3.1.1. 单区域常微分方程Lagrange插值逼近算法构造

将数值解带入(2)中有:

{ n = 0 M u ^ n x 2 φ n ( x k ) + 2 n = 0 M u ^ n n φ n ( x k ) + n = 0 M u ^ n φ n ( x k ) = e x k , k = 1 , 2 , , M 1 , n = 0 M u ^ n φ n ( x 0 ) = 2 e , n = 0 M u ^ n φ n ( x M ) = 0. (3)

由微分矩阵定义可以将(3)转化为(4):

{ n = 0 M u ^ n d k , n ( 2 ) + 2 n = 0 M u ^ n d k , n + u ^ k = e x k , k = 1 , 2 , , M 1 , u ^ 0 = 2 e , u ^ M = 0. (4)

则(4)为:

{ n = 1 M 1 u ^ n d k , n ( 2 ) + u ^ 0 d k , 0 ( 2 ) + u ^ M d k , M ( 2 ) + 2 n = 1 M 1 u ^ n d k , n + u ^ k = e x k 2 u ^ 0 d k , 0 2 u ^ M d k , M , k = 1 , 2 , , M 1 , u ^ 0 = 2 e , u ^ M = 0. (5)

k = 1 , 2 , , M 1 ,(5)式可以写成:

( d 1 , 1 ( 2 ) d 1 , M 1 ( 2 ) d M 1 , 1 ( 2 ) d M 1 , M 1 ( 2 ) ) ( u ^ 1 u ^ M 1 ) + 2 ( d 1 , 1 d 1 , M 1 d M 1 , 1 d M 1 , M 1 ) ( u ^ 1 u ^ M 1 ) + ( u ^ 1 u ^ M 1 ) = ( e x 1 e x M 1 ) ( u ^ 0 ( d 1 , 0 ( 2 ) d M 1 , 0 ( 2 ) ) + u ^ M ( d 1 , M ( 2 ) d M 1 , M ( 2 ) ) ) 2 ( u ^ 0 ( d 1 , 0 d M 1 , 0 ) + u ^ M ( d 1 , M d M 1 , M ) ) .

我们不妨记:

A = ( d 1 , 1 ( 2 ) d 1 , M 1 ( 2 ) d M 1 , 1 ( 2 ) d M 1 , M 1 ( 2 ) ) , B = ( d 1 , 1 d 1 , M 1 d M 1 , 1 d M 1 , M 1 ) ,

X = ( u ^ 1 u ^ M 1 ) , D = u ^ 0 ( d 1 , 0 ( 2 ) d M 1 , 0 ( 2 ) ) + u ^ M ( d 1 , M ( 2 ) d M 1 , M ( 2 ) ) ,

C = ( e x 1 e x M 1 ) , F = 2 ( u ^ 0 ( d 1 , 0 d M 1 , 0 ) + u ^ M ( d 1 , M d M 1 , M ) ) .

我们可以得到如下矩阵方程:

A X + 2 B X + X = C D F . (6)

3.1.2. 单区域数值结果

我们将(6)式转化为:

( A + 2 B + E ) X = C D F . (7)

其中E表示 M 1 阶单位阵,则(7)式可以求得近似解为:

X = ( A + 2 B + E ) 1 ( C F D ) .

我们用 L -来衡量精确解与数值解之间的误差:

E M = max 1 k M 1 | u ( x k ) u M ( x k ) | .

而方程(1)的精确解为: u ( x ) = 1 2 ( x 1 ) 2 e x

可以得到误差图(图1),对最大误差 E M 取对数可以得到随着插值节点数M的增大,最大误差 E M 呈下降趋势,且误差效果良好,可以说明上述所提算法格式良好,具有高精度。

3.2. 多区域

3.2.1. 区域常微分方程的Lagrange插值逼近算法构造

为了能够得到更高误差精度,我们将整个求解区域 ( 1 , 1 ) 分解成两个区域 Ω 1 = ( 1 , c ) Ω 2 = ( c , 1 ) 。数值解展开为:

u M ( x ) | Ω i = u M i ( x ) = n = 0 M i u M ( i ) φ n ( x ) , x Ω i , i = 1 , 2.

Figure 1. Single area error plot

图1. 单区域误差图

由(1)的解 u H 2 ( Ω ) ,在公共边界处有数值解的函数值和导数值相等,即:

函数值: n = 0 M 1 u ^ n ( 1 ) φ n ( x M 1 ) = n = 0 M 2 u ^ n ( 2 ) φ n ( x ˜ 0 )

导数值: n = 0 M 1 u ^ n ( 1 ) x φ n ( x M 1 ) = n = 0 M 2 u ^ n ( 2 ) x φ n ( x ˜ 0 )

由微分矩阵定义,将上述两式联立可以得到:

u ^ M 1 ( 1 ) = u ^ 0 ( 2 ) = n = 1 M 2 u ^ n ( 2 ) d ˜ 0 , n n = 0 M 1 1 u ^ n ( 1 ) d M 1 , n d M 1 , M 1 d ˜ 0 , 0 . (8)

其中 d k , m 表示区域 Ω 1 上的微分矩阵, d ˜ k , m 表示区域 Ω 2 上的微分矩阵, x k Ω 1 , k = 1 , 2 , , M 1

x ˜ k Ω 2 , k = 1 , 2 , , M 2

在区域 Ω 1 用数值解逼近区域 Ω 1 的精确解得到:

{ n = 0 M 1 u ^ n ( 1 ) x 2 φ n ( x k ) + 2 n = 0 M 1 u ^ n ( 1 ) n φ n ( x k ) + n = 0 M 1 u ^ n ( 1 ) φ n ( x k ) = e x k , k = 1 , 2 , , M 1 1 , n = 0 M 1 u ^ n ( 1 ) φ n ( x 0 ) = 2 e . (9)

对(9)利用微分矩阵定义并将端点值提出可以得到:

n = 1 M 1 1 u ^ n ( 1 ) d k , n ( 2 ) + u ^ 0 ( 1 ) d k , 0 ( 2 ) + u ^ M 1 ( 1 ) d k , M 1 ( 2 ) + 2 n = 1 M 1 1 u ^ n ( 1 ) d k , n + u ^ k ( 1 ) = e x k ( 2 u ^ 0 ( 1 ) d k , 0 + 2 u ^ M 1 ( 1 ) d k , M 1 ) , k = 1 , 2 , , M 1 1. (10)

将(8)式带入到(10)式中有:

n = 1 M 1 1 u ^ n ( 1 ) d k , n ( 2 ) + 2 n = 1 M 1 1 u ^ n ( 1 ) d k , n + u ^ k ( 1 ) + u ^ M 2 ( 2 ) d ˜ 0 , M 2 u ^ 0 ( 1 ) d M 1 , 0 d M 1 , M 1 d ˜ 0 , 0 ( 2 d k , M 1 + d k , M 1 ( 2 ) ) = e x k n = 1 M 2 1 u ^ n ( 2 ) d ˜ 0 , n n = 1 M 1 1 u ^ n ( 1 ) d M 1 , n d M 1 , M 1 d ˜ 0 , 0 ( 2 d k , M 1 + d k , M 1 ( 2 ) ) u ^ 0 ( 1 ) ( d k , 0 ( 2 ) + 2 d k , 0 ) , k = 1 , 2 , , M 1 1. (11)

将(11)式展开,并记:

G = ( d 1 , 1 ( 2 ) d 1 , M 1 1 ( 2 ) d M 1 1 , 1 ( 2 ) d M 1 1 , M 1 1 ( 2 ) ) , H = ( d 1 , 1 d 1 , M 1 1 d M 1 1 , 1 d M 1 1 , M 1 1 ) ,

X 1 = ( u ^ 1 ( 1 ) u ^ M 1 1 ( 1 ) ) , X 2 = ( u ^ 1 ( 2 ) u ^ M 2 1 ( 2 ) ) , F 1 = ( d 1 , 0 ( 2 ) + 2 d 1 , 0 d M 1 1 , 0 ( 2 ) + 2 d M 1 1 , 0 ) ,

E 1 = ( d M 1 , 1 d M 1 , M 1 1 ) , E 2 = ( d ˜ 0 , 1 d ˜ 0 , M 1 1 ) ,

C 1 = ( e x 1 e x M 1 1 ) , D 1 = ( d 1 , M 1 ( 2 ) + 2 d 1 , M 1 d M 1 1 , M 1 ( 2 ) + 2 d M 1 1 , M 1 ) .

由(1)式中边界值可知, u ^ 0 ( 1 ) = 2 e u ^ M 2 ( 2 ) = 0 。(11)式可以转化成下列矩阵方程:

G X 1 + 2 H X 1 + X 1 2 e d M 1 , 0 d M 1 , M 1 d ˜ 0 , 0 D 1 = C 1 E 2 X 2 E 1 X 1 d M 1 , M 1 d ˜ 0 , 0 D 1 2 e F 1 . (12)

同理,对区域 Ω 2 仿照区域 Ω 1 可以得到:

{ n = 0 M 2 u ^ n ( 2 ) x 2 φ n ( x ˜ k ) + 2 n = 0 M 2 u ^ n ( 2 ) n φ n ( x ˜ k ) + n = 0 M 2 u ^ n ( 2 ) φ n ( x ˜ k ) = e x ˜ k , k = 1 , 2 , , M 2 1 , n = 0 M 2 u ^ n ( 2 ) φ n ( x ˜ M 2 ) = 0. (13)

有微分矩阵定义以及(8)式可以得到(14)式:

n = 1 M 2 1 u ^ n ( 2 ) d ˜ k , n ( 2 ) + 2 n = 1 M 2 1 u ^ n ( 2 ) d ˜ k , n + u ^ k ( 2 ) + u ^ M 2 ( 2 ) d ˜ 0 , M 2 u ^ 0 ( 1 ) d M 1 , 0 d M 1 , M 1 d ˜ 0 , 0 ( 2 d ˜ k , 0 + d ˜ k , 0 ( 2 ) ) = e x ˜ k n = 1 M 2 1 u ^ n ( 2 ) d ˜ 0 , n n = 1 M 1 1 u ^ n ( 1 ) d M 1 , n d M 1 , M 1 d ˜ 0 , 0 ( 2 d ˜ k , 0 + d ˜ k , 0 ( 2 ) ) u ^ M 2 ( 2 ) ( d ˜ k , M 2 ( 2 ) + 2 d ˜ k , M 2 ) , k = 1 , 2 , , M 2 1. (14)

将(14)式展开,并记:

P = ( d ˜ 1 , 1 ( 2 ) d ˜ 1 , M 2 1 ( 2 ) d ˜ M 2 1 , 1 ( 2 ) d ˜ M 2 1 , M 2 1 ( 2 ) ) , Q = ( d ˜ 1 , 1 d ˜ 1 , M 2 1 d ˜ M 2 1 , 1 d ˜ M 2 1 , M 2 1 ) ,

C 2 = ( e x ˜ 1 e x ˜ M 2 1 ) , D 2 = ( d ˜ 1 , 0 ( 2 ) + 2 d ˜ 1 , 0 d ˜ M 2 1 , 0 ( 2 ) + 2 d ˜ M 2 1 , 0 ) , F 2 = ( d ˜ 1 , M 2 ( 2 ) + 2 d ˜ 1 , M 2 d ˜ M 2 1 , M 2 ( 2 ) + 2 d ˜ M 2 1 , M 2 ) .

将(14)式转化成如下矩阵方程:

P X 2 + 2 Q X 2 + X 2 2 e d M 1 , 0 d M 1 , M 1 d ˜ 0 , 0 D 2 = C 2 E 2 X 2 E 1 X 1 d M 1 , M 1 d ˜ 0 , 0 D 2 . (15)

3.2.2. 多区域数值结果

将(12)和(15)式联立可以得到:

( G + 2 H 0 0 P + 2 Q ) ( X 1 X 2 ) + ( X 1 X 2 ) 2 e d M 1 , 0 d M 1 , M 1 d ˜ 0 , 0 ( D 1 D 2 ) = ( C 1 C 2 ) 2 e ( F 1 0 ) 1 d M 1 , M 1 d ˜ 0 , 0 ( D 1 D 2 ) ( E 1 E 2 ) ( X 1 X 2 ) . (16)

(16)可以等价于:

( ( G + 2 H 0 0 P + 2 Q ) + I + 1 d M 1 , M 1 d ˜ 0 , 0 ( D 1 D 2 ) ( E 1 E 2 ) ) ( X 1 X 2 ) = ( C 1 C 2 ) 2 e ( F 1 0 ) + 2 e d M 1 , 0 d M 1 , M 1 d ˜ 0 , 0 ( D 1 D 2 )

不妨令:

R = ( ( G + 2 H 0 0 P + 2 Q ) + I + 1 d M 1 , M 1 d ˜ 0 , 0 ( D 1 D 2 ) ( E 1 E 2 ) ) , S = ( C 1 C 2 ) 2 e ( F 1 0 ) + 2 e d M 1 , 0 d M 1 , M 1 d ˜ 0 , 0 ( D 1 D 2 ) , Y = ( X 1 X 2 ) .

则(16)可以写成下列方程:

Y = R 1 S . (17)

其中I为 M 1 + M 2 2 阶单位矩阵。利用(17)式可以求出(1)式的数值解,我们令 c = 0.1 ,仍然用用 L -来衡量精确解与数值解之间的误差,其中 E M 1 表示区域 Ω 1 上的误差, E M 2 表示区域 Ω 2 上的误差, E M 表示整个区域上的误差, M = M 1 + M 2

E M 1 = max 1 k M 1 1 | u 1 ( x k ) u M 1 ( x k ) | E M 2 = max 1 k M 2 1 | u 2 ( x k ) u M 2 ( x k ) | E M = max ( E M 1 , E M 2 ) .

图2是多区域误差图,可以看出,误差量级与 M 成线性关系,最大误差 E M 随着插值节点数 M 的增大而减小,可以看到,多区域的误差精度能达到−12,明显比单区域高,由此可以说明多区域的Lagrange插值效果比单区域的Lagrange插值效果好,也体现了本文所提算法格式有效。

Figure 2. Multi region error plot

图2. 多区域误差图

4. 结论

本文通过构造Lagrange插值算法逼近格式求解常微分方程的数值解,将常微分方程转化成矩阵方程求解,通过数值实验结果可以得出,本文所提算法格式良好。为了进一步提高算法精度,通过将区域分解的方式,可以提高误差精度,数值结果也证明了这一结论。本文所提算法格式简单,易于操作,计算所用的节点个数少即可达到较高精度,对于求解其他常微分方程也适用。

基金项目

河南省大学生创新创业训练计划项目(No.202310464051)。

参考文献

参考文献

[1] 王高雄. 常微分方程[M]. 第3版. 北京: 高等教育出版社, 2006.
[2] 倪兴. 常微分方程数值解法及其应用[D]: [硕士学位论文]. 合肥: 中国科学技术大学, 2010.
https://doi.org/10.7666/d.y1705078
[3] 李焕荣. 随机常微分方程的几种数值求解方法及其应用[J]. 重庆工商大学学报(自然科学版), 2021, 38(6): 82-88.
https://doi.org/10.16055/j.issn.1672-058X.2021.0006.011
[4] 庄清渠, 王金平. 四阶常微分方程的Birkhoff配点法[J]. 华侨大学学报(自然科学版), 2018, 39(2): 306-311.
https://doi.org/10.11830/ISSN.1000-5013.201707005
[5] 户永清, 陈正文. 一种二阶常微分方程的数值解法[J]. 四川文理学院学报, 2023, 33(5): 39-44.
https://doi.org/10.3969/j.issn.1674-5248.2023.05.008
[6] 唐仁献. Lagrange基本插值多项式的性质及应用[J]. 零陵学院学报, 1995(S1): 49-51.
[7] 乔炎, 王川, 王秦. Burgers方程混合问题的Lagrange插值逼近[J]. 应用数学进展, 2022, 11(5): 2507-2514.
https://doi.org/10.12677/AAM.2022.115265
[8] 马亚楠, 王天军, 李冰冰. Korteweg-de Vries 方程的时空谱配置方法[J]. 数值计算与计算机应用, 2021, 42(4): 351-360.
[9] Tan, J. and Wang, T.-J. (2024) A Multi-Domain Spectral Collocation Method for the Fokker-Planck Equation in an Infinite Channel. Mathematics and Computers in Simulation, 220, 533-551.
https://doi.org/10.1016/j.matcom.2024.02.014
[10] Shen, J., Tang, T. and Wang, L.L. (2011) Spectral Methods: Algorithms, Analysis and Applications. Springer Series in Computational Mathematics, Vol. 41, Springer-Verlag, Berlin, Heidelberg.
https://doi.org/10.1007/978-3-540-71041-7