擬譜法

擬譜法（Pseudo-spectral methods）也稱為離散變數表示（discrete variable representation、DVR）法，是在应用数学及计算科学中求解偏微分方程用的数值分析方法。擬譜法和有密切關係，但在谱方法中基底函數中使用了擬譜的基底函數，也就是可以在分割網格上表示的函數。此作法簡化一些運算子的計算，在使用快速演算法（例如快速傅里叶变换）時可以加速計算速度。

說明
考慮以下的初值問題

有週期性條件。這個例子是勢能為之粒子的薛定谔方程，不過其結構可適用到其他應用。在許多實務上的偏微分方程中，其中有一項是和導數（例如是動能相關的量）有關，另一項則是和另一個函數（此處為勢能）的乘積。

在譜方法中，其解會展開為一組適合基底函數的組合，例如平面波。

將解代入，並且計算係數的方程，可以得到係數的常微分方程

而其元素可以透過顯式的傅立葉轉換求得

若將基底函數的展開到一定項次後截斷，並且找的解，就可以得到偏微分方程的解。一般而言會用進行，例如龙格－库塔法。為了數值解，常微分方程的右側需重覆計算在許多不同時間間隔下的值。此時，譜方法有個和勢能項有關的主要問題。

在譜方法下，和勢能函數的相乘會轉換為向量和矩陣的乘法，其複雜度是，而且在求解係數的微分方程時，需要另外去計算矩陣元素，這也需要時間。

在擬譜法中，會用不同的方式來計算。給定係數，會用反離散傅立葉轉換來計算函數在離散格點下的值。在格點上，計算函數的乘積 ，再用傅立葉轉換轉換回來，可以得到一組新的係數，來代替矩陣乘積運算。

可以證明二個方法有類似的精準度，而且擬譜法可以使用快速傅立葉轉換，其時間複雜度為，理論上比矩陣乘法要快很多。而且，可以直接計算函數，不用再經過額外的積分運算。

技術討論
若用比較抽象的方式來描述，擬譜法是處理在偏微分方程中二個函數和的乘積。為了簡化表示式，省略掉函數中時間的自變數。在概念上，擬譜法包括三個步驟：

 將以及擴展為由有限多個基底函數形成的組合（此為）。
 針對一組給定的基底函數，找到一組分割方式可以將基底函數的純量積轉換為在格點上的加權和。
 在每一個格點將和相乘，來計算函數的乘積。

基底的展開
函數和可以用一組有限基底的函數來擴展：

為了簡化起見，令基底是正交且正規化的，，利用內積配合適當的邊界，其係數為

配合一些計算可得

而。這是譜方法的基礎。為了區分的基底以及正交的基底，有時會將上述擴展稱為有限基底表示（Finite Basis Representation、FBR）。

分割
針對給定基底以及個基底函數，可以設法找到分割方式，也就是個點以及加權，使得

特別的例子包括多項式的高斯求积以及平面波的离散傅里叶变换，特別需注意的是格點及加權都是基底及數量的函數。

利用分割方式，可以透過格點上的值，以另一種方式來表示函數的數值。此表示法有時稱為離散變數表示法（Discrete Variable Representation、DVR），完全等效於基底的展開。

相乘
和函數的相乘會在格點上進行

一般來說這裡會有一些近似，可以計算其中一個係數:

利用譜方法，對應的係數會是。擬譜法則會用以下皂的近似來處理

若乘積可以用給定的有限基底函數組合來表現，則上式在給定分割方式上會完全正確。

特殊的擬譜架構

傅立葉法
若問題中有週期性的邊界條件，其週期為，基底函數可以用平面波來產生，

其中，而是取整函数。

在處截斷的分割為離散傅立葉轉換，格點會平均分佈，間隔為，各點的加權會是相同旳定值。

在討論誤差時，需注意到平面波的乘積也是平面波，，。因此，定量來說，若函數可以用基底函數足夠準確的呈現，只要用個基底函數，即可用擬譜法得到足夠準確的結果。

平面波的擴展一般效果較差，需要許多的基底函數才能收斂。不過。基底展開和格點表示的轉換可以用快速傅立葉轉換進行，其時間複雜度較低，為。因此，平面波是擬譜法中常用的一種基底函數。

多項式
另一種常見的展開方式是多項式，此處會使用高斯求积（Gaussian quadrature），其中提到可以找到加權係數及格點使得

對任意的次或是更低次的多項式都成立。一般而言，加權函數及範圍都是根據特定問題所選定的，因此會選擇幾種分割方式中的一種。若要用在擬譜法，需選擇基底函數為，其中為階多項式，有以下特性

在上述條件下，the 會是正交基底，其內積為。此基底以及分割點可以用在擬譜法中。

有關其誤差，若可以用個基底函數很好的呈現，而可以用階多項式很好的呈現，則其積可以用前個基底函數很好的呈現。且擬譜法用該數量的基底函數，會有足夠準確的結果。

在一些標準問題中，會出現這些多項式。例如量子簡諧振動子可以擴展為埃爾米特多項式，而在轉動問題中，會用雅可比多項式來定義相關的勒壤得多項式。

參考資料

 
 
 
 
 
 
 
 
 

数值分析