1. 引言
在函数逼近方法中,插值法因结构相对简单、数值稳定性高、精度高等特点得到广泛研究和应用。常用的代数多项式和三角多项式函数空间在处理多元问题时刚性太强,计算不稳定,因此,稳定性高和易于实现的径向基函数空间受到广泛关注。
1982年,Franke [1]得出MQ径向基函数插值方法的精度和稳定性较其他方法更优。但是在应用径向基函数插值时需要求解线性方程组,随着插值节点的增多,系数矩阵趋于病态,此时径向基函数插值方法不具有数值稳定性。因此需要使用拟插值方法,其中MQ拟插值方法不仅可以避免求解线性方程组,并且具有多项式再生性、保形性和令人满意的收敛速度。1992年,Beatson和Powell [2]提出了三种一次MQ拟插值算子
。1994年,Wu和Schaback [3]构造了精度不低于上述三种算子且不需要端点处导数值的一次新算子
。一次MQ拟插值算子在处理大规模、高维度的问题时难以提供足够的精度,有时还会出现数值结果不稳定的现象。
相比于一次MQ拟插值算子,三次MQ拟插值算子能更好地还原问题的非线性特征,具有更高的数值稳定性。2009年,Feng和Li [4]基于三次MQ-B样条构造了具有二次多项式再生性和三阶保形性的拟插值算子
。应用MQ拟插值算子数值求解偏微分方程时,常使用MQ拟插值算子进行空间离散,再结合向前欧拉法进行时间离散[5]-[7],得到的数值结果的精度有限,且随着求解时间步长的增加,误差会累积。因此,本文提出一种高精度的数值求解方法,使用拉格朗日乘子法处理边界条件、三次MQ拟插值算子进行空间离散,最后使用四阶龙格–库塔法进行时间离散。
2. 拟插值算子
由给定数据
,
为正的常数,定义一次MQ拟插值算子
为:
其中
(1)
由给定数据
为正的常数,定义三次MQ拟插值算子
[4]为:
其中
(2)
(3)
3. Sine-Gordon方程
Sine-Gordon方程是19世纪被发现的一种非线性偏微分方程,可以用于描述多种物理现象,如约瑟夫森结的量子隧穿[8]、附着在可拉伸线上的刚性摆的运动和金属中的位错现象[9]。Sine-Gordon方程的精确解只有在特殊情况可以获得,通常使用数值解法,如有限差分法、有限元法[10]和B-样条配置法[11]等。Sine-Gordon方程的形式如下
(4)
初始条件为
边界条件为
其中
是已知的函数。
4. 拉格朗日乘子法
首先按空间步长
对(4)进行离散,可以得到
(5)
其中
。
边界条件可以用以下约束矩阵近似
将此约束矩阵和(5)联立,引入拉格朗日乘子,化为如下方程组
其中
为联立求解,约束矩阵对时间t求二阶导
联立(5)可得如下方程组
可写为矩阵形式
(6)
其中
,
为
的单位矩阵,
为
的零矩阵。展开如下:
用三次MQ拟插值算子
的二阶导数近似
,即
其中
由(2)和(3)给出。简记使用
的方法为LLdMQ。
左除求解方程组(6),取前n + 1行是一个关于
的常微分方程组,使用四阶龙格–库塔进行求解即可。
5. 数值算例
例1 考虑Sine-Gordon方程:
初始条件为
边界条件为
精确解为
计算中,选择
。
使用下述三种范数评估数值结果:
其中
是精确解,
是数值解。
Table 1. The error between the numerical solution and the exact solution of Example 1 obtained by LLdMQ method, where
表1. 使用LLdMQ方法得到的例1的数值解与精确解之间的误差,其中
t |
|
|
RMS |
0.1 |
2.70763 × 10−8 |
2.23954 × 10−7 |
1.11837 × 10−8 |
0.2 |
2.10389 × 10−7 |
1.75245 × 10−6 |
8.75132 × 10−8 |
0.3 |
6.68035 × 10−7 |
5.64439 × 10−6 |
2.81868 × 10−7 |
0.4 |
1.45660 × 10−6 |
1.25514 × 10−5 |
6.26789 × 10−7 |
0.5 |
2.56886 × 10−6 |
2.26791 × 10−5 |
1.13254 × 10−6 |
0.6 |
3.94854 × 10−6 |
3.58525 × 10−5 |
1.79039 × 10−6 |
0.7 |
5.51261 × 10−6 |
5.16344 × 10−5 |
2.57850 × 10−6 |
0.8 |
7.17236 × 10−6 |
6.94448 × 10−5 |
3.46791 × 10−6 |
0.9 |
8.84828 × 10−6 |
8.86471 × 10−5 |
4.42683 × 10−6 |
1.0 |
1.04778 × 10−5 |
1.08592 × 10−4 |
5.42284 × 10−6 |
Figure 1. The absolute error between the numerical solution and the exact solution of Example 1 obtained by LLdMQ method, where
图1. 使用LLdMQ方法得到的例1的数值解与精确解之间的绝对误差,其中
从表1和图1可以得出,LLdMQ方法在t = 0.1到t = 1中任意时刻的
和RMS误差均较小,整体精度较高。
Table 2. The
error obtained by LLdMQ, LdMQ, LDMQ method in Example 1 is compared with that obtained by LEMQ method in Ma’s paper, where
表2. 使用LLdMQ,LdMQ,LDMQ方法得到的例1的
误差与Ma文中LEMQ方法得到的
误差对比,其中
t |
LLdMQ |
LdMQ |
LEMQ [12] |
LEMQ |
0.1 |
2.70763 × 10−8 |
1.31430 × 10−5 |
1.5378 × 10−5 |
1.53836 × 10−5 |
0.2 |
2.10389 × 10−7 |
2.52045 × 10−5 |
4.2499 × 10−5 |
4.26424 × 10−5 |
0.3 |
6.68035 × 10−7 |
3.54048 × 10−5 |
9.0176 × 10−5 |
9.10860 × 10−5 |
0.4 |
1.45660 × 10−6 |
4.34241 × 10−5 |
1.6248 × 10−4 |
1.65798 × 10−4 |
0.5 |
2.56886 × 10−6 |
4.93755 × 10−5 |
2.5840 × 10−4 |
2.67298 × 10−4 |
0.6 |
3.94854 × 10−6 |
5.36551 × 10−5 |
3.7271 × 10−4 |
3.92352 × 10−4 |
0.7 |
5.51261 × 10−6 |
5.67684 × 10−5 |
4.9759 × 10−4 |
5.35366 × 10−4 |
0.8 |
7.17236 × 10−6 |
5.91988 × 10−5 |
6.2418 × 10−4 |
6.89835 × 10−4 |
0.9 |
8.84828 × 10−6 |
6.13392 × 10−5 |
7.4389 × 10−4 |
8.49459 × 10−4 |
1.0 |
1.04778 × 10−5 |
6.34724 × 10−5 |
7.4389 × 10−4 |
1.00883 × 10−3 |
从表2可以得出,LLdMQ方法在t = 0.1到t = 1中任意时刻的
误差均优于LdMQ,LEMQ [12],LDMQ方法,其中LLdMQ方法在t = 0.1到t = 0.9中任意时刻的
误差均比LdMQ方法至少小一个数量级。
Table 3. The error between the numerical solution and the exact solution of Example 1 obtained by LLdMQ method, where
表3. 使用LLdMQ方法得到的例1的数值解与精确解之间的误差,其中
t |
|
|
RMS |
1 |
1.04778 × 10−5 |
1.08592 × 10−4 |
5.42284 × 10−6 |
2 |
2.03397 × 10−5 |
2.47381 × 10−4 |
1.23536 × 10−5 |
3 |
3.92021 × 10−5 |
5.98542 × 10−4 |
2.98897 × 10−5 |
4 |
5.15423 × 10−5 |
7.28496 × 10−4 |
3.63794 × 10−5 |
5 |
2.46843 × 10−5 |
3.65894 × 10−4 |
1.82719 × 10−5 |
6 |
3.07180 × 10−5 |
3.54078 × 10−4 |
1.76818 × 10−5 |
7 |
3.92121 × 10−5 |
6.46678 × 10−4 |
3.22936 × 10−5 |
8 |
2.26343 × 10−5 |
2.27981 × 10−4 |
1.13848 × 10−5 |
9 |
3.36228 × 10−5 |
4.49253 × 10−4 |
2.24346 × 10−5 |
10 |
3.79370 × 10−5 |
4.91271 × 10−4 |
2.45329 × 10−5 |
Figure 2. The absolute error between the numerical solution and the exact solution of Example 1 obtained by LLdMQ method, where
图2. 使用LLdMQ方法得到的例1的数值解与精确解之间的绝对误差,其中
从表3和图2可以得出,LLdMQ方法在t = 0.1到t = 10中任意时刻的
和RMS误差与LdMQ方法在t = 0.1到t = 10中任意时刻的
和RMS误差是同一个数量级,能还原非线性特征,适合非线性偏微分方程的长时间仿真。
Table 4. The error between the numerical solution and the exact solution of Example 1 obtained by LLdMQ method, where
表4. 使用LLdMQ方法得到的例1的数值解与精确解之间的误差,其中
t |
|
|
RMS |
10 |
3.79370 × 10−5 |
4.91271 × 10−4 |
2.45329 × 10−5 |
20 |
4.12375 × 10−5 |
5.22671 × 10−4 |
2.61010 × 10−5 |
30 |
3.41203 × 10−5 |
5.11947 × 10−4 |
2.55654 × 10−5 |
40 |
3.11899 × 10−5 |
4.89222 × 10−4 |
2.44306 × 10−5 |
50 |
2.92117 × 10−5 |
4.58141 × 10−4 |
2.28785 × 10−5 |
60 |
2.56762 × 10−5 |
4.15502 × 10−4 |
2.07492 × 10−5 |
70 |
2.34366 × 10−5 |
3.57192 × 10−4 |
1.78373 × 10−5 |
80 |
1.82100 × 10−5 |
2.81794 × 10−4 |
1.40721 × 10−5 |
90 |
1.16020 × 10−5 |
1.93533 × 10−4 |
9.66457 × 10−6 |
100 |
7.35848 × 10−6 |
1.06276 × 10−4 |
5.30717 × 10−6 |
Figure 3. The absolute error between the numerical solution and the exact solution of Example 1 obtained by LLdMQ method, where
图3. 使用LLdMQ方法得到的例1的数值解与精确解之间的绝对误差,其中
从表4和图3可以得出,LLdMQ在计算到t = 100,即10000个时间步长后依旧可以保持较高精度,误差数量级与计算到t = 10时基本保持一致,能还原非线性特征,适合非线性偏微分方程的长时间仿真。
Table 5. The maximum values of
and RMS error of Example 1 obtained by LLdMQ method, where
表5. 使用LLdMQ方法得到的例1的
和RMS误差的最大值,其中
c2 |
|
|
RMS |
0.5 |
3.04090 × 1060 |
1.51748 × 1061 |
7.57792 × 1059 |
0.2 |
1.19739 × 10−2 |
1.21534 × 10−1 |
6.06914 × 10−3 |
0.1 |
3.10346 × 10−3 |
3.19692 × 10−2 |
1.59647 × 10−3 |
0.01 |
5.22194 × 10−5 |
5.41140 × 10−4 |
2.70232 × 10−5 |
1 × 10−4 |
1.07921 × 10−5 |
1.11849 × 10−4 |
5.58549 × 10−6 |
1 × 10−8 |
1.04778 × 10−5 |
1.08592 × 10−4 |
5.42284 × 10−6 |
从表5可以得出,在
时,LLdMQ方法的
和RMS误差的最大值均最小。本文使用并行计算的方式寻找最优的形状参数c。
Table 6. The minimum values of
and RMS error of Example 1 obtained by LLdMQ method, where
表6. 使用LLdMQ方法得到的例1的
和RMS误差的最小值,其中
|
|
|
RMS |
tCPU/s |
0.01 |
1.25531 × 10−11 |
1.60005 × 10−10 |
7.99026 × 10−12 |
3 |
0.001 |
2.74208 × 10−14 |
2.26144 × 10−13 |
1.12931 × 10−14 |
27 |
0.0001 |
2.78640 × 10−17 |
2.28440 × 10−16 |
1.14078 × 10−17 |
378 |
0.00001 |
3.38813 × 10−20 |
2.28617 × 10−19 |
1.14166 × 10−20 |
7888 |
从表6可以得出,随着
的减小,LLdMQ方法的
和RMS误差的最小值均减小,但求解所需的时间tCPU显著增大。
Table 7. The minimum values of
and RMS error of Example 1 obtained by LLdMQ method, where
表7. 使用LLdMQ方法得到的例1的
和RMS误差的最小值,其中
|
|
|
RMS |
tCPU/s |
(0.001, 0.01) |
2.74208 × 10−14 |
2.26144 × 10−13 |
1.12931 × 10−14 |
3 |
(0.001, 0.001) |
4.38018 × 10−16 |
1.04416 × 10−14 |
1.65075 × 10−16 |
425 |
(0.0001, 0.01) |
2.78640 × 10−17 |
2.28440 × 10−16 |
1.14078 × 10−17 |
31 |
(0.0001, 0.001) |
5.96311 × 10−19 |
1.17968 × 10−17 |
1.86501 × 10−19 |
5375 |
从表7可以得出,随着
和
的减小,LLdMQ方法的
和RMS误差的最小值均减小,但求解所需的时间tCPU显著增大。
6. 总结
本文使用三次MQ拟插值算子结合拉格朗日乘子方法对Sine-Gordon方程进行数值求解,通过数值实验,得出三次MQ拟插值算子较一次MQ拟插值算子具有更高的精度和数值稳定性,拉格朗日乘子方法较三次MQ拟插值算子结合向前欧拉法更能还原问题的非线性特征、稳定性更高和更适合长时间仿真。后续将进一步研究使用本文提出的拉格朗日乘子方法求解更高维的非线性偏微分方程。
基金项目
国家自然科学基金(12172186, 11772166)。
NOTES
*第一作者。
#通讯作者。