擬譜法

来自testwiki
imported>Cewbot2024年12月21日 (六) 20:33的版本 (清理跨語言連結數值方法成為內部連結:編輯摘要的紅色連結經繁簡轉換後存在,非bot錯誤編輯 (本次機械人作業已完成38.5%))
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转到导航 跳转到搜索

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

說明

考慮以下的初值問題

itψ(x,t)=[2x2+V(x)]ψ(x,t),ψ(t0)=ψ0

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

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

ψ(x,t)=12πncn(t)e2πinx.

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

iddtcn(t)=(2πn)2cn+kVnkck,

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

Vnk=01V(x) e2πi(kn)xdx.

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

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

在擬譜法中,會用不同的方式來計算。給定係數cn(t),會用反離散傅立葉轉換來計算函數ψ在離散格點xj=2πj/N下的值。在格點上,計算函數的乘積 ψ(xi,t)=V(xi)ψ(xi,t),再用傅立葉轉換轉換回來,可以得到一組新的係數c'n(t),來代替矩陣乘積運算kVnkck(t)

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

技術討論

若用比較抽象的方式來描述,擬譜法是處理在偏微分方程中二個函數V(x)f(x)的乘積。為了簡化表示式,省略掉函數中時間的自變數。在概念上,擬譜法包括三個步驟:

  1. f(x)以及f~(x)=V(x)f(x)擴展為由有限多個基底函數形成的組合(此為Template:Link-en)。
  2. 針對一組給定的基底函數,找到一組分割方式可以將基底函數的純量積轉換為在格點上的加權和。
  3. 在每一個格點將Vf相乘,來計算函數的乘積。

基底的展開

函數ff~可以用一組有限基底的函數來擴展{ϕn}n=0,,N

f(x)=n=0Ncnϕn(x)
f~(x)=n=0Nc~nϕn(x)

為了簡化起見,令基底是正交且正規化的,ϕn,ϕm=δnm,利用內積f,g=abf(x)g(x)dx配合適當的邊界a,b,其係數為

cn=f,ϕn
c~n=f~,ϕn

配合一些計算可得

c~n=m=0NVnmcm

Vnm=Vϕm,ϕn。這是譜方法的基礎。為了區分ϕn的基底以及正交的基底,有時會將上述擴展稱為有限基底表示(Finite Basis Representation、FBR)。

分割

針對給定基底{ϕn}以及N+1個基底函數,可以設法找到分割方式,也就是N+1個點以及加權,使得

ϕn,ϕm=i=0Nwiϕn(xi)ϕm(xi)n,m=0,,N

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

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

f(xi)=n=0Ncnϕn(xi)
cn=f,ϕn=n=0Nwif(xi)ϕn(xi)

相乘

和函數V(x)的相乘會在格點上進行

f~(xi)=V(xi)f(xi).

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

c~n=f~,ϕn=iwif~(xi)ϕn(xi)=iwiV(xi)f(xi)ϕn(xi)

利用譜方法,對應的係數會是c~n=Vf,ϕn。擬譜法則會用以下皂的近似來處理

Vf,ϕniwiV(xi)f(xi)ϕn(xi).

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

特殊的擬譜架構

傅立葉法

若問題中有週期性的邊界條件,其週期為[0,L],基底函數可以用平面波來產生,

ϕn(x)=1Leıknx

其中kn=(1)nn/22π/L,而取整函数

nmax=N處截斷的分割為離散傅立葉轉換,格點會平均分佈xi=iΔx,間隔為Δx=L/(N+1),各點的加權會是相同旳定值wi=Δx

在討論誤差時,需注意到平面波的乘積也是平面波,ϕa+ϕb=ϕcca+b。因此,定量來說,若函數f(x),V(x)可以用Nf,NV基底函數足夠準確的呈現,只要用Nf+NV個基底函數,即可用擬譜法得到足夠準確的結果。

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

多項式

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

abw(x)p(x)dx=i=0Nwip(xi)

對任意的2N+1次或是更低次的多項式p(x)都成立。一般而言,加權函數w(x)及範圍a,b都是根據特定問題所選定的,因此會選擇幾種分割方式中的一種。若要用在擬譜法,需選擇基底函數為ϕn(x)=w(x)Pn(x),其中Pnn階多項式,有以下特性

abw(x)Pn(x)Pm(x)dx=δmn.

在上述條件下,the ϕn會是正交基底,其內積為f,g=abf(x)g(x)dx。此基底以及分割點可以用在擬譜法中。

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

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

參考資料

Template:Reflist


Template:数值偏微分方程