本文是书籍 Spectral Method in MATLAB 第一章 Differentiation matrices 微分矩阵 笔记。
从一个基本问题出发。 给定一组网格节点
二阶差分
考虑等距剖分
令
可以通过
为了简单起见,假设问题是周期性的,取
稀疏矩阵中的省略项为零。观察这个矩阵可知是 Toeplitz 矩阵,沿着对角线有相同的数,比如元素
另一种推导以上两个方程的方法是通过以下的局部插值和微分过程:
对于
- 令
是不大于 2 次的多项式, , , 与 . - 设
.
可以很容易地看出,对于固定的插值函数
其中
, , .
在
四阶差分
这种局部插值的推导表明能够推广到更高阶。下面是四阶差分格式推导:
对于
- 令
是不大于 4 次的多项式, , , 与 . - 设
.
假设数据是周期的,可知方程组等价于矩阵向量乘积
这是一个五对角而不是三对角的循环矩阵。
以上两个矩阵的矩阵是微分矩阵的例子,它们的精度分别为2阶和4阶。对一个足够光滑的函数
Program 1
第一个 MATLAB 程序,Program 1,演示了四阶差分方法的例子,选取
该程序对不同
1 | % p1.m - convergence of fourth-order finite differences |
我们研究了二阶和四阶有限差分。很明显,考虑六阶、八阶和更高阶的方法将导致带宽增加的循环矩阵。谱方法背后的思想是,将这一过程带到极限,并使用无穷阶和无限带宽的微分公式——比如一个稠密矩阵。在下一章中,我们将证明在这个极限下,对于一个无限等距网格,我们得到以下无限矩阵
这是一个反对称(
谱配置方法
实际操作中一个矩阵不可能是无限的。对于有限网格,下面是谱配置方法
- 令
是一个单独的函数(与 无关),使得对所有的 成立 . - 设
.
我们可以自由选择
对于有限的
Program 2
1 | % p2.m - convergence of periodic spectral method (compare p1.m) |
注:谱方法具有 “谱精度”,直到舍入误差超过
观察余切函数,可以发现这个矩阵确实和 Toeplitz 矩阵一样是循环的。
程序2与程序1相同,只是谱方法替换了差分方法,结果有什么不同!输出2中的误差下降得非常快,直到达到如此高的精度,以至于计算机上的舍入误差阻止了进一步的改进。这种显著的行为称为谱精度。我们将在第4章中给出这个短语的更精确的描述,但是现在,需要注意的是,它与有限差分法和有限元法的收敛速度有多大的不同。随着
我们所描述的矩阵是循环的。循环矩阵的作用是卷积,我们将在第3章中看到,卷积可以通过离散傅里叶变换来计算。从历史上看,正是1965年快速傅里叶变换(FFT)的发现,导致了人们对谱方法的兴趣在1970年代激增。第8章 FFT 不仅适用于等距网格上的三角多项式,也适用于Chebyshev网格上的代数多项式。然而,即使没有 FFT 的情况下谱方法也是很强大的。在许多应用中,使用矩阵计算的结果是非常令人满意的。
舍入误差
关于舍入误差,标准IEEE双精度格式 (Double-precision floating-point format)
, 这意味着每次加法, 乘法, 除法和减法都会产生完全正确的结果乘以某个因子 with .
本章小结
谱配置法的基本原理是在网格上给定离散数据,对数据进行全局插值,然后计算插值在网格上的导数。 对于周期性问题,我们通常在等距点上使用三角插值,对于非周期性问题,我们通常在不等距点上使用多项式插值。