スペクトル法

**スペクトル法**は、主に高速フーリエ変換を用いた微分方程式の数値解法の総称であり、応用数学や科学計算で使用されている。 微分方程式の解をある「基底関数」の和によって近似し、方程式を充足する和の係数を求める。基底関数の選び方としては、例えば正弦波を用いる方法があり、この場合の解の近似表現はフーリエ級数になる。 

スペクトル法は有限要素法と密接に関連しており、基本的にはどちらも同じアイデアに基づいている。これらの主な違いは、近似に用いる基底関数の定義域にある。スペクトル法は近似対象とする関数の定義域全体に渡って非零になるような基底関数を使用するため全体をカバーできるのに対し、有限要素法はある点の近傍など限られた範囲にのみ基底関数を用い、残りはゼロであると仮定する。こうした理由から、スペクトル法と有限要素法はそれぞれ、大域的アプローチ、局所的アプローチと呼ばれ区別される。 

大域的アプローチの性質から、スペクトル法は解が滑らかな関数である場合に誤差が指数関数に従い収束するという特性（「指数収束」）を持ち、有限要素法よりも遥かに高速に収束することが知られている。 ただし、指数収束は解が滑らか**でない**場合には保証されないため、たとえば単連結な三次元定義域におけるといった課題に対しては一般に成立しない。これはインパルス波の微分不可能性に起因する。なお、有限要素法の分野でも、要素の次数がグリッド幅*h*と反比例して大きくなるような手法を「」と呼ぶことがあるが、これはスペクトル法とは厳密には異なる手法である。（「#スペクトル要素法との関係」で後述） 

スペクトル法を使用すると、 常微分方程式 （ODE）や偏微分方程式 （PDE）などの微分方程式を含む固有値問題を解くことができる。 時間依存のPDEにスペクトル法を適用した場合、解は時間依存の係数を持つ基底関数の合計として記述される。これをPDEに代入すると、ODEの任意の数値法を使用して解くことができる係数のODEシステムが生成される。 ODEの固有値問題も同様に行列固有値問題に変換される 。 

スペクトル法は、1969年より数学者のスティーブン・オルザグによって出版された複数編に渡る論文により確立されたものであるが、一連の論文は今日で多く実装されている周期幾何問題を対象にしたフーリエ級数を用いたもの以外にも、以下のような手法を含んでいる。 

*  有限幾何・非有界幾何のための多項式スペクトル法 
*  高次非線形問題のための擬球スペクトル法 
*  定常問題の高速解法のためのスペクトル反復法 

これらのスペクトル法は、通常、選点法や、およびタウ法のいずれかを用いることで実装される。 

スペクトル法は有限要素法よりも計算コストが低くなるが、複素幾何や不連続係数の問題では精度が低下する。 この誤差の増加は、 ギブス現象によるものである。 

## スペクトル法の例

### 具体例（線形の場合）
ここでは、基本的な多変量計算とフーリエ級数の理解を前提としている。 もしg(x,y)が2つの実変数を取る既知の複素関数であり、*g*が*x*, *y*に関して周期的であるとき（つまり、 g(x,y)=g(x+2\pi,y)=g(x,y+2\pi)である場合 ）、以下を満たす関数 *f*(*x*, *y*) を見つけることを考える。 

: \left(\frac{\partial^2}{\partial x^2}+\frac{\partial^2}{\partial y^2}\right)f(x,y)=g(x,y)\quad \text{for all } x,y

ただし、左辺は*x*, *y*における*f*の2次偏微分係数をそれぞれ示している。これはポアソン方程式であり、物理的には熱伝導の問題、またはポテンシャル理論の問題として解釈できる。 

フーリエ級数で*f*と*g*を書くと、 

: f=:\sum a_{j,k}e^{i(jx+ky)}
: g=:\sum b_{j,k}e^{i(jx+ky)}

であり、これを微分方程式に代入すると、次の方程式が得られる。 

: \sum -a_{j,k}(j^2+k^2)e^{i(jx+ky)}=\sum b_{j,k}e^{i(jx+ky)}

ここで偏微分を無限和と交換している。これは、たとえば*f*に連続的な2次導関数があると仮定した場合に正当である。フーリエ展開の一意性定理により、フーリエ係数を項ごとに等しくする必要がある。 

: （*） a_{j,k}=-\frac{b_{j,k}}{j^2+k^2} 

これは、フーリエ係数*a<sub>j</sub>*,*k*の陽な表現である。 

周期的境界条件から、ポアソン方程式は*b*0,0 = 0の場合に限り解を持つ。したがって、我々は自由に解の平均値*a*0,0を選択することができる。これは、積分定数の選択に対応する。 

ここからアルゴリズムを構成するため、有限数の周波数のみを解く。 これにより、h^nに比例する誤差が発生する。ただしh:=1/nであり、nは処理対象の最大周波数である。 

#### アルゴリズム

# *g*のフーリエ変換(*b<sub>j,k</sub>*) を計算 
# 式(*)を用いて*f*のフーリエ変換(*a<sub>j,k</sub>*)を計算 
# (*a<sub>j,k</sub>*)の逆フーリエ変換を実行して*f*を計算 

ここでは幅*n*の周波数の有限窓のみに関心があるため、このアルゴリズムは高速フーリエ変換を使用して実行できる。したがって、アルゴリズムはグローバルに時間で実行できる。 

### 非線形の場合
スペクトルアプローチを使用し、強制的な非定常非線形バーガース方程式を解く。 

与えられたu(x,0)周期領域でx\in\left[0,2\pi\right) 、次式を満たすu \in \mathcal{U}を見つけることを考える。 

: \partial_{t} u + u \partial_{x} u = \rho \partial_{xx} u + f \quad \forall x\in\left[0,2\pi\right), \forall t>0

ここで、 *&#x3C1;*は粘度係数である。 弱保存形では、これは次式のようになる。 

: \left\langle \partial_{t} u, v \right\rangle = \left\langle \partial_x \left(-\frac{1}{2} u^2 + \rho \partial_{x} u\right), v \right\rangle + \left\langle f, v \right\rangle \quad \forall v\in \mathcal{V}, \forall t>0

ただし、\langle f, g \rangle := \int_{0}^{2\pi} f(x)
 \overline{g(x)}\,dxは内積である。 部分積分と周期性により、 

: \langle \partial_{t} u, v \rangle = \left\langle  \frac{1}{2} u^2 - \rho \partial_{x} u , \partial_x v\right\rangle+\left\langle f, v \right\rangle \quad \forall v\in \mathcal{V}, \forall t>0.

フーリエ- ガラーキン法を適用するには、以下の両方を選択する。 

: \mathcal{U}^N := \left\{ u : u(x,t)=\sum_{k=-N/2}^{N/2-1} \hat{u}_{k}(t) e^{i k x}\right\}  

: \mathcal{V}^N :=\operatorname{span}\left\{ e^{i k x} : k\in -N/2,\dots,N/2-1\right\}

ただし、\hat{u}_k(t):=\frac{1}{2\pi}\langle u(x,t), e^{i k x} \rangle 。 これにより、u\in\mathcal{U}^Nの探索は以下の問題に帰着される。 

: \langle \partial_{t} u, e^{i k x} \rangle = \left\langle \frac{1}{2} u^2 - \rho \partial_{x} u , \partial_x e^{i k x} \right\rangle + \left\langle f, e^{i k x} \right\rangle \quad \forall k\in \left\{ -N/2,\dots,N/2-1 \right\}, \forall t>0.

ここで、直交関係\langle e^{i l x}, e^{i k x} \rangle = 2 \pi \delta_{lk}を利用している。ただし\delta_{lk}はクロネッカーデルタである。上記の3つの項をkについて整理すると次のようになる。 

: 
\begin{align}
\left\langle \partial_{t} u, e^{i k x}\right\rangle &= \left\langle   \partial_{t} \sum_{l} \hat{u}_{l} e^{i l x}  ,   e^{i k x} \right\rangle = \left\langle  \sum_{l} \partial_{t} \hat{u}_{l} e^{i l x}  ,   e^{i k x} \right\rangle = 2 \pi \partial_t \hat{u}_k,
\\
\left\langle f, e^{i k x} \right\rangle &= \left\langle  \sum_{l} \hat{f}_{l} e^{i l x}  ,   e^{i k x}\right\rangle= 2 \pi \hat{f}_k, \text{ and}
\\
\left\langle
 \frac{1}{2} u^2 - \rho \partial_{x} u
 ,
 \partial_x e^{i k x}
\right\rangle
&=
\left\langle
  \frac{1}{2}
  \left(\sum_{p} \hat{u}_p e^{i p x}\right)
  \left(\sum_{q} \hat{u}_q e^{i q x}\right)
  - \rho \partial_x \sum_{l} \hat{u}_l e^{i l x}
  ,
  \partial_x e^{i k x}
\right\rangle
\\
&=
\left\langle
  \frac{1}{2}
  \sum_{p} \sum_{q} \hat{u}_p \hat{u}_q e^{i \left(p+q\right) x}
  ,
  i k e^{i k x}
\right\rangle
-
\left\langle
  \rho i \sum_{l} l \hat{u}_l e^{i l x}
  ,
  i k e^{i k x}
\right\rangle
\\
&=
-\frac{i k}{2}
\left\langle
  \sum_{p} \sum_{q} \hat{u}_p \hat{u}_q e^{i \left(p+q\right) x}
  ,
  e^{i k x}
\right\rangle
- \rho k
\left\langle
  \sum_{l} l \hat{u}_l e^{i l x}
  ,
  e^{i k x}
\right\rangle
\\
&=
- i \pi k \sum_{p+q=k} \hat{u}_p \hat{u}_q - 2\pi\rho{}k^2\hat{u}_k.
\end{align}


これらの3つの項をkについてまとめることで次式を得る。 

: 
2 \pi \partial_t \hat{u}_k
=
- i \pi k \sum_{p+q=k} \hat{u}_p \hat{u}_q 
- 2\pi\rho{}k^2\hat{u}_k
+ 2 \pi \hat{f}_k
\quad k\in\left\{ -N/2,\dots,N/2-1 \right\}, \forall t>0.


両辺を2\piで除することで、最終的に次式を得る。 

: 
\partial_t \hat{u}_k
=
- \frac{i k}{2} \sum_{p+q=k} \hat{u}_p \hat{u}_q 
- \rho{}k^2\hat{u}_k
+ \hat{f}_k
\quad k\in\left\{ -N/2,\dots,N/2-1 \right\}, \forall t>0.


フーリエ変換後の初期条件\hat{u}_{k}(0)と外力\hat{f}_{k}(t) を入力として与えることで、この常微分方程式の結合系の時間発展は、ルンゲ＝クッタ法などを使った数値積分によって解くことができる。 第一項（非線形項）は畳み込み演算であるため、これも効率的に評価するための変換がいくつか存在する。 BoydおよびCanutoらの参考文献を参照してください。詳細については。 

## スペクトル要素法との関係
gが無限回微分可能な関数であるとき、高速フーリエ変換を使用する数値アルゴリズムは、グリッドサイズhのどの多項式よりも速く収束することを示すことができる。 つまり、*n*が正であるとき、任意の十分小さな値hに対し、誤差がC_nh^n以下になるような C_nが存在する。*n*>0に対し、C_nが適切に選ばれることでこの誤差条件が満たされる手法はn次スペクトル法と呼ばれる。 

スペクトル要素法もまた非常に高次の有限要素法であるため、収束特性には類似点がある。 ただし、スペクトル法は特定の境界値問題の固有分解を用いるためそれだけ適用範囲が狭くなるが、有限要素法はこうした固有分解に依存しないため、任意の楕円境界値問題に対して適用することができる。 

## 関連記事

* 有限要素法 
*  
* 
* 
* 
* 選点法 

## 参考文献

* Bengt Fornberg (1996): *A Practical Guide to Pseudospectral Methods*, Cambridge University Press, Cambridge, UK
* John P. Boyd (2000): ''Chebyshev and Fourier Spectral Methods'', 2nd Ed.
* Canuto C., Hussaini M. Y., Quarteroni A., and Zang T.A. (2006): *Spectral Methods. Fundamentals in Single Domains*, Springer-Verlag, Berlin Heidelberg
* Javier de Frutos, Julia Novo: ''A Spectral Element Method for the Navier–Stokes Equations with Improved Accuracy''
* ''Polynomial Approximation of Differential Equations'', by Daniele Funaro, (Lecture Notes in Physics, Volume 8), Spinger-Verlag, Heidelberg 1992
* D. Gottlieb and S. Orzag (1977): *Numerical Analysis of Spectral Methods : Theory and Applications*, SIAM, Philadelphia, PA
* J. Hesthaven, S. Gottlieb and D. Gottlieb (2007): *Spectral Methods for Time-Dependent Problems*, Cambridge UP, Cambridge, UK
* Steven A. Orszag (1969): *Numerical Methods for the Simulation of Turbulence*, Phys. Fluids Supp. II, 12, 250–257
* 
* Jie Shen, Tao Tang and Li-Lian Wang (2011): *Spectral Methods: Algorithms, Analysis and Applications*, Springer (Series in Computational Mathematics, V. 41, Springer), 
* Lloyd N. Trefethen (2000): *Spectral Methods in MATLAB*, SIAM, Philadelphia, PA
* 石岡圭一：「スペクトル法による数値計算入門　第2版」、東京大学出版会、ISBN 978-4-13-060608-0 (2025年9月25日)。