数值方法求解微分方程的研究——基于切比雪夫多项式的谱方法
Research on Solving Differential Equations by Numerical Method—Spectral Methods Based on Chebyshev Polynomials
DOI: 10.12677/PM.2024.141016, PDF, HTML, XML, 下载: 78  浏览: 219 
作者: 赵 远:云南财经大学,统计与数学学院,云南 昆明
关键词: 谱方法切比雪夫多项式偏微分方程求解Spectral Method Chebyshev Polynomials Solution of PDE
摘要: 谱方法是处理微分方程的常用方法,本文以理论完善的谱方法为基础,详细介绍了切比雪夫多项式通过S-L问题的由来与切比雪夫多项式的部分性质,并利用这些性质将这些正交多项式作为基对函数进行展开,从而数值求解偏微分方程,我们利用案例来展现其具体的运算过程并验证其方法的有效性。
Abstract: Based on Spectral Method, we introduce the origin of Chebyshev polynomials via S-L problems and some properties of Chebyshev polynomials. With these properties, we use these orthogonal poly-nomials as basic functions to solve partial differential equations. Also, we use examples to show the detailed operations and verify its effectiveness.
文章引用:赵远. 数值方法求解微分方程的研究——基于切比雪夫多项式的谱方法[J]. 理论数学, 2024, 14(1): 153-161. https://doi.org/10.12677/PM.2024.141016

1. 引言

偏微分方程是反映未知变量关于时间的导数和关于空间变量的导数之间制约关系的等式。许多领域中的数学模型都可以利用偏微分方程来描述,甚至很多数学、物理和力学分支中的基本方程本身就是微分方程。经过许多年的发展,偏微分方程已经成为当代数学中的一个重要组成部分,是纯数学学科和其他工程学科、自然科学之间的一座桥梁 [1] 。

对于十八、十九世纪建立起来的众多微分方程,数学家们求其显式解往往失败,这种情况促使他们转而证明解的存在性。而研究物理问题过程出现的具体微分方程问题时,往往会使用不同的方法,例如分离系数法、分离变数法,也有许多问题不能严格解出,只能用近似的方法求出满足实际需要的近似程度的解,常用的方法例如变分法、有限差分法。谱方法也很早就出现,它是利用一组基函数将微分方程的解表示出来,但由于计算量大一直没有被广泛使用,直到快速Fourier变换的出现,给谱方法带来了生机,近几十年快速发展,成为有限差分法、有限元法后的第三种数值求解的基本方法。

谱方法最大的魅力就是它具有“无穷阶”收敛性,如果原方程的解无穷光滑,那么用适用的谱方法所求得的近似解将以 N 1 的任意幂次速度收敛于精确解,这里的N为所选取的基函数的个数。这一优点是有限差分法和有限元法无法比拟的,众多的实际应用和数值实例也证实了这一方法的有效性。因此谱方法日益受到重视,但是和差分法与有限元法的研究相比,仍存在一定差距,谱方法在非线性情形下,或问题不是周期情况下,特别是在求解偏微分方程数值解方面也需要更多深入的研究。谱方法理论的日益完善,也被用于处理物理、数学、工程中各种数值问题的处理,比如麦克斯韦方程,也以谱方法为基础,衍生不少新的方法 [2] 。

2. 切比雪夫多项式

2.1. Sturm-Liouville (S-L)问题

微分方程的谱近似都可以视为S-L问题特诊函数的有限展开,方程如下 [3] [4] :

( p u ) + q u = λ ω u u ( 1 , 1 )

其中p,q,ω都是给定的,它们是实值函数且满足:p是连续可微的,在(−1, 1)区间内是正值且在边界 x = ± 1 处连续;q在(−1, 1)内连续非负;权重函数ω在(−1, 1)上连续、非负且可积。方程的一些非平凡的解λ称为方程的特征值。方程的解为 ( λ 0 , u 0 ( x ) ) , ( λ 1 , u 1 ( x ) ) , ( λ 3 , u 3 ( x ) ) ,

在奇异S-L问题中,代数多项式可以用数值方法进行评估和微分,方程组在(−1, 1)上的解满足正交性,这个性质使得方程的解:如勒让德多项式、切比雪夫多项式,由其不同性质可以用于问题的数值求解。

2.2. 正交多项式

考虑一族定义在(−1, 1)上的多项式 p 0 ( x ) , p 1 ( x ) , p 2 ( x ) , 若满足

( p m ( x ) , p n ( x ) ) ω = 1 1 p m ( x ) p n ( x ) ω ( x ) d x = 0 , m n

那么它是(−1, 1)上的正交多项式系。当权重函数 ω 1 时便是最常见的形式

( p m ( x ) , p n ( x ) ) = 1 1 p m ( x ) p n ( x ) d x = 0 , m n

正常我们只在有限维内(即多项式的个数小于等于N)考虑,满足上面条件即在(−1, 1)上两两正交。

2.3. 由S-L问题引出切比雪夫多项式

( 1 x 2 T k ( x ) ) + k 2 1 x 2 T k ( x ) = 0

问题令S-L问题中

p ( x ) = 1 x 2 , q ( x ) = 0 , ω ( x ) = 1 1 x 2

可以得到

T k ( x ) = cos k x , z = arccos x

或者写成

T k = cos ( k cos 1 x )

因切比雪夫多项式是由S-L问题推导出的特殊情况,故其内积也满足正交性:即当 k l ( T m , T l ) ω = 0 ,且当 k = l = 0 ( T m , T l ) ω = π k = l 0 ( T m , T l ) ω = π / 2 。写出其具体表达式:

T 0 = 1 , T 1 = cos z = x , T 2 = cos 2 z = 2 cos 2 z 1 = 2 x 2 1

而由等式

cos ( k + 1 ) z + cos ( k 1 ) z = 2 cos z cos k z

将切比雪夫多项式带入有

T k + 1 2 x T k + T k 1 = 0

利用此公式,可以得到

T 3 = 2 × x T 2 T 1 = 4 x 3 3 x

如果需要,也不难推导出其后面每项的具体展开表达式。

2.4. 切比雪夫展开

类似傅里叶展开,我们也可以将函数用切比雪夫多项式展开成有限个多项式的和的形式,即:

u ( x ) = k = 0 u ^ k T k ( x )

其中

u ^ k = 2 π C k 1 1 u ( x ) T k ( x ) ω ( x ) d x

C k = { 2 , k = 0 1 , k 1

2.5. 方程的逼近方法与高斯积分

将有限项:其中 T k ( x ) 为切比雪夫多项式,选其作为试函数(trial function)。从方程近似的角度来看,典型的谱方法有两种:分为在物理空间离散求解的Collocation法与在谱空间进行离散求解的Galerkin法。具体做法Collocation法是在定义域内取点,取的点的数量取决于试函数中待定系数的个数,使得残差在这些点上等于零。取点的位置可以是随意的,但一般均匀取点或者根据分析调整。Galerkin法为通过对基函数在定义域内的加权积分满足原方程,得到一组易于求解的线性代数方程,边界条件自然能够满足。Collocation法适用于非线性问题,Galerkin法适用于线性问题。

在用Collocation法计算时,可以选用点如下搭配点

x j = cos π j N

选取其不仅可以保证的计算的精确度,而且可以利用快速傅里叶变换使计算更加简便。

在计算展开系数时,通常可以用数值方法高斯积分来简化计算过程。注意下面这个方程组:

j = 0 N ( x j ) k ω j = 1 1 x k ω ( x ) d x

其中 x 0 < x 1 < < x N 为N + 1阶正交多项式 P N + 1 的根, ω ˙ 0 , , ω N 为上线性方程的解,但是 x i ω i 不容易找到,便引出了高斯–拉道(Gauss-Radau)、高斯–洛巴托(Guass-Lobatto)积分。而我们选取的搭配点来自高斯–洛巴托积分:对于 q ( x ) = P N + 1 ( x ) + a P N ( x ) + b P N 1 ( x ) ,选取a,b使得 q ( 1 ) = q ( 1 ) = 0 1 = x 0 < x 1 < < x N q ( x ) 的根,对

j = 0 N ( x j ) k ω j = 1 1 x k ω ( x ) d x , 0 k N

j = 0 N P ( x j ) ω j = 1 1 P ( x ) ω ( x ) d x , P 2 N 1

2.6. 系数的推导

取前N + 1项对等式两边同时乘以 T m ( x ) 并取内积

( T m ( x ) , u ( x ) ) ω = ( k = 0 N u ^ k T k ( x ) , T m ( x ) ) ω

由切比雪夫多项式的正交性,右侧当 k m 时恒为0,k = m时有

( u ^ m T m ( x ) , T m ( x ) ) ω = u ^ m ( T m ( x ) , T m ( x ) ) ω = π 2 c m u ^ m

其中

c m = { 2 , m = 0 1 , m 1

左侧应用上述高斯积分公式

1 1 T m ( x ) u ( x ) ω ( x ) d x = π N i = 0 N T m ( x i ) u ( x ) c ¯ i

其中

c ¯ i = { 2 i = 0 / k = N 1 1 i N 1

两侧联立可以得到上述展开多项式的系数 [5] [6]

u ^ K = 2 c ¯ k N i = 0 N 1 C ¯ i u i cos k π i N , k = 0 , , N

2.7. 微分

考虑其展开的前N + 1项

u N ( x ) = k = 0 N u ^ k T k ( x )

则其一阶微分写成

U N ( x ) = k = 0 N u ^ k T k ( x ) = k = 0 N u k ( 1 ) T k ( x )

T k = d d z ( cos k z ) d z d x = k sin k z sin z

同时又有 2 sin θ cos k θ = sin ( k + 1 ) θ sin ( k 1 ) θ ,两边同除 sin θ

2 T k ( x ) = 1 k + 1 T k + 1 ( x ) 1 k 1 T k 1 ( x )

将其带入一阶微分等式,得到

2 k = 0 N u ^ k T k ( x ) = k = 0 N u k ( 1 ) ( 1 k + 1 T k + 1 1 k 1 T k 1 )

使 T k 对应的系数相等,左侧为 2 u ^ k ,右侧分别为

u k 1 ( 1 ) 1 k u k + 1 ( 1 ) 1 k

考虑上式要满足k ≥ 2则有

2 k u ^ k = u k 1 ( 1 ) u k + 1 ( 1 ) ( k 2 )

当k = 1时单独考虑,综合上式总结得到:

2 k u ^ k = C k 1 u k 1 ( 1 ) u k + 1 ( 1 )

k N 时, u ^ k ( 1 ) = 0

0 k N 1 时, C k u ^ k ( 1 ) = u ^ k + 2 ( 1 ) + 2 ( k + 1 ) u ^ k + 1

其具体形式为 [7] [8] [9] :

C N 1 u ^ N 1 ( 1 ) = 2 N u ^ N

C N 2 u ^ N 2 ( 1 ) = 2 ( N 1 ) u ^ N 1

C N 3 u ^ N 3 = u ^ N 1 + 2 ( N 2 ) u ^ N 2 = 2 C N 1 N u ^ N + 2 ( N 2 ) u ^ N 2

3. 计算案例

3.1. 热传导方程概括

u t 2 u x 2 = 0

其定义在(−1, 1)上,有以下边界条件:

u ( 1 , t ) = 0 , u ( 1 , t ) = 0

令其初始条件为:

u ( x , 0 ) = sin π x

已知此方程的精确解为:

u ( x , t ) = e π 2 t sin π x

3.2. 数值求解

利用上述方法先将初始条件展开为有限项切比雪夫多项式的和,初始条件对应时间为0的状态,即:

sin π x = k = 0 N a k ( 0 ) T k ( x )

利用Collocation法的对应公式求解得到系数 a k ( 0 ) :以x轴上分为32个区间,切比雪夫多项式展开至k = 20,通过matlab程序按照上面的算法首先得到初始条件的切比雪夫系数,ui为对应sinπx的数值,k = 0时对应的系数计算公式为:

u ^ 0 = 2 c ¯ 0 32 i = 0 32 1 C ¯ i u i cos 0

k = 1时对应的值为:

u ^ 1 = 2 c ¯ 1 32 i = 0 32 1 C ¯ i u i cos π i 32

以此类推可以得到时间为0时所有的系数,再将以k从大到小的顺序先得到一次导数对应的系数,再以相同的方法得到二阶导数的系数,对其求两阶导得到对应的系数 a k ( 2 ) ( 0 ) ,对应函数 u t = u x ,右侧等于

k = 0 N a k ( 2 ) ( 0 ) T k ( x )

此时左侧可以使用数值方法进行估计,若采用向前欧拉法,左侧即为 ( a k ( 1 ) T k ( x ) a k ( 0 ) T k ( x ) ) / Δ t ,令左右两侧相等,可以得到

a k ( 1 ) = a k ( 0 ) + Δ t a k ( 2 ) ( 0 )

类似的,也可以使用改进欧拉法或龙格库塔法等增加拟合的精度。以时间为依据不断迭代,可以得到ak关于时间t的变化情况,而通过 a k ( t ) 可以推出函数在不同时刻与x坐标的值 [10] 。

3.3. 计算优化——FFT

使用谱方法计算谱系数会占用大量资源,故在方法出现的若干年间一直没有像有限元法与有限差分法一样得到广泛应用,直到快速傅里叶变换(FFT)的出现,快速傅里叶变换虽然没有为傅里叶变换增加新的理论内容,但其使原先N2复杂度降低到Nlog2N [11] ,故选取点数时也需要满足为2的整数幂次,快速傅里叶变换使系数计算效率大大提高,谱方法也再次获得广泛应用。

离散傅里叶变换的公式如下:

x ^ [ k ] = n = 0 N 1 e i 2 π N n k x [ n ]

e i 2 π 简记为ω, e i 2 π N n k 表示为 ω N n k ,由其性质我们可以得到1) ω N k = ω N k + N 2) ω N k = ω N k + N / 2 3)

ω N k = ω N / 2 k / 2 ,若以N = 4为例,原来出现的 ω 4 i ( i = 1 , 2 , 3 , , 9 ) 则仅剩下 ω 4 1 ω 2 1 两个值,公式的右侧写成矩阵形式并利用这一特点变换有以下:

[ 1 1 1 1 1 ω 4 1 ω 2 1 ω 4 1 1 ω 2 1 1 ω 2 1 1 ω 4 1 ω 2 1 ω 4 1 ] [ x 0 x 1 x 2 x 3 ] = | x 0 + x 1 + x 2 + x 3 x 0 + ω 4 1 x 1 + ω 2 1 x 2 ω 4 1 x 3 x 0 + ω 2 1 x 1 + x 2 + ω 2 1 x 3 x 0 ω 4 1 x 1 + ω 2 1 x 2 + ω 4 1 x 3 | = [ ( x 0 + x 2 ) + ( x 1 + x 3 ) ( x 0 x 2 ) + ω 4 1 ( x 1 x 3 ) ( x 0 + x 2 ) ( x 1 + x 3 ) ( x 0 x 2 ) ω 4 1 ( x 1 x 3 ) ]

可以看出对其奇偶项可以进行拆分并提取公共项

{ X ( k ) = n = 0 , 1 x 2 n ω 2 n k + ω 4 k n = 0 , 1 x 2 n + 1 ω 2 n k k = 0 , 1 X ( k + 2 ) = n = 0 , 1 x 2 n ω 2 n k ω 4 k n = 0 , 1 x 2 n + 1 ω 2 n k k = 0 , 1

在这个过程中,我们仅需计算前2个点,后2个的点利用对称性易得。若N的值为2次幂时,不断拆分奇偶下标项的过程可以一直递归下去,故其计算量为0 (Nlog2N)。

3.4. 误差分析

3.4.1. 实际误差分析

选取恰当的x步长、展开次数与时间步长使结果随时间收敛,并在运算过程中选取其中部分时间拟合数值与实际数值对比进行分析误差。

T = 0.01

T = 0.05

选取两个时间点的数值解与精确解进行对比,发现整体符合,随着x轴上选取点数的增加,数值解的值也与精确值更加接近。

3.4.2. 理论误差分析

无论是应用Galerkin法还是插值(Collocation)法,近似解与精确解之间都会存在误差,其取决于解的光滑性,一般来说精确解越光滑近似解就越准确。Canuto (1988)与Mercier (1989) [3] 进行过误差理论分析,在 H ω P ( 1 , 1 ) 范数中,使用Galerkin法误差满足

u u N H ω P ( 1 , 1 ) C N 1 2 + 2 p m u H ω P ( 1 , 1 )

在同样的范数下,使用Collocation法的误差满足

u u N H ω P ( 1 , 1 ) C N 2 p m u H ω P ( 1 , 1 )

同时,在处理N阶切比雪夫近似时,舍入误差(计算值与真实值误差)是必须考虑的问题。一个造成原因是计算切比雪夫展开的导数系数采用了公式计算,其不必借助FFT算法,计算简单,而微分矩阵却可以到达更好的精确度。造成它的一个原因是矩阵的元的维度的巨大差异,如在一阶微分矩阵中,最小的元是 O ( 1 ) 而最大的是 O ( N 2 ) ;另一个原因可以在矩阵元素的计算中找到,它涉及几乎相等的数的减法,Rothman (1991)观察到并提出了一种减小误差的简单方法:使用三角恒等式来表示 ( x i x j ) ( 1 x i ) 2 ,令

x i x j = 2 sin ( j + i ) π 2 N sin ( j i ) π 2 N , i x i 2 = sin 2 i π N

数值实验展现了这一简单过程的有效性 [4] [12] [13] ,同时在二阶微分中使用微分矩阵D2效果甚至更差。另一个舍入误差产生的原因是它不能很准确得展现一个常数的微分计算矩阵 [14] [15] ,即:

j = 0 N d i , j ( 1 ) = 0 , i = 0 , , N

3.4.3. 总结

整体过程展现谱方法的有效性,提供了偏微分方程区别于有限元法的一种数值解法,方法逻辑顺序清晰理论成熟,类似的方法可以应用于不同的问题,解决各种无法得到数值解的微分方程问题。

参考文献

[1] 向新民. 谱方法的数值分析[M]. 北京: 科学出版社, 2000.
[2] Gottlieb, D. and Orszag, S.A. (1977) Numerical Analysis of Spectral Methods: Theory and Applications. Society for Industrial and Applied Mathematics.
https://doi.org/10.1137/1.9781611970425
[3] Canuto, C., Hussaini, M.Y., Quarteroni, A. and Zang, T.A. (1988) Spectral Method in Fluid Dynamics. Springer Verlag, Berlin.
https://doi.org/10.1007/978-3-642-84108-8
[4] Boyd, J.P. (2013) Chebyshev and Fourier Spectral Methods. Courier Corporation.
[5] Butcher, J.C. (1987) The Numerical Analysis of Ordinary Differential Equations, Runge-Kutta and General Linear Methods. John Wiley & Sons, Chichester.
[6] Hairer, E., Norsett, S.P. and Wanner, G. (1987) Solving Ordinary Differential Equation I: Nonstiff Problems. Springer-Verlag, Berlin.
https://doi.org/10.1007/978-3-662-12607-3
[7] Orszag, S.A. (1980) Spectral Method for Problems in Complex Gemetries. Journal of Computational Physics, 37, 70-92.
https://doi.org/10.1016/0021-9991(80)90005-4
[8] Canuto, C. and Quarteroni, A. (1982) Approximation Results for Orthogonal Polynomials in Sobolev Spaces. Mathematics of Computation, 38, 67-86.
https://doi.org/10.1090/S0025-5718-1982-0637287-3
[9] Canuto, C. and Quarteroni, A. (1982) Error Estimates for Spectral and Pseudo-Spectral Approximations of Hyperbolic Equations. SIAM Journal on Numerical Analysis, 19, No. 3.
https://doi.org/10.1137/0719044
[10] Canuto, C. and Quarteroni, A. (1981) Spectral and Pseudo Spectral Methods for Parabolic Problems with Nonperiodic Boundary Conditions. Calcolo, 18, 197-217.
https://doi.org/10.1007/BF02576357
[11] 郭本瑜. Navier-stokes方程的谱解法[J]. 中国科学(A辑数学物理学天文学技术科学), 1985(8): 715.
[12] Guo, B. (1985) Spectral Method for Solving Navier-Stokes Equation. Science in China, Series A, 28, 1139-1153.
[13] Bar-Yoseph, P.Z., Fisher, D. and Gottlieb, O. (1996) Spectral Element Methods for Nonlinear Spatiotemporal Dynamics of an Euler-Bernoulli Beam. Computational Mechanics, 19, 136-151.
https://doi.org/10.1007/BF02824851
[14] Gear, C.W. and Petzold, L.R. (1984) ODE Methods for the Solution of Differential/Algebraic Systems. SIAM Journal on Numerical analysis, 21, 716-728.
[15] Butcher, J.C. (1964) Implicit Runge-Kutta Processes. Mathematics of Computation, 18, 50-64.
https://doi.org/10.1090/S0025-5718-1964-0159424-9