谱方法介绍 (pseudospectral approach)
谱方法或配置法是非常有必要另开一篇博客分享的话题,在我之前分享的nsCoutte和swirl flow的底层数值驱动中,实际上都用了这类global方法(傅里叶变换就是最基本的一种)。最为著名的应该是以professor Lloyd N. Trefethen主导的牛津大学团队开发的chefun工具包,在学术研究领域包括湍流模拟、天气预测和非线性波动方程求解等有着广泛的应用。Sheehan Olver改写成了julia语言,在他的课程上也有一些介绍。相比于之前提到的有限体积,有限差分和有限元方法,谱方法有其独有的优势,特别适用于一些简单模型的偏微分方程求解。
特点:对于解析函数,误差通常是以指数形式衰减的(随着N的增加)。
该方法几乎没有耗散dissipative 和 dispersive errors.
对于非顺滑或者间断函数也有非常好的近似。
非常少的插值点就能满足较高的近似精度,节省计算时间和内存。
基函数的选择要求:
$\sum_{k=0}^N a_k \phi_k(x)$ 快速收敛逼近函数v(x);
give coefficients $a_k$, it should be easy to determine $b_k$ such that:
it should be fast to convert between coefficients $a_k$, k=0,…,N, and the values for the sum v(x_i) at some set of modes x_i, i=0,…,N.
对于Periodic Problems, trigonometric expansions 满足这三个要求,快速算法可以通过fft实现。
但对于非周期问题,三角函数展开无法满足条件(1)- an irregularity will arise where the periodicity is artificially imposed. 理论证明这类问题可以通过orthogonal polynomials of Jacobi type 来解决,通过比较著名的是Chebshev 和 Legendre 函数。