解析的偏微分方程式を解くプロセスのクラス
擬スペクトル法 [1] は 離散変数表現(DVR)法とも呼ばれ、 偏微分方程式 を解くために 応用数学 や 科学計算 で使用される 数値法 の一種です。 スペクトル法 と密接に関連していますが、追加の擬スペクトル基底によって 基底 を補完し、求積グリッド [ 定義が必要 ]上の関数の表現を可能にします。これにより、特定の演算子の評価が簡素化され、 高速フーリエ変換 などの高速アルゴリズムを使用する場合に計算を大幅に高速化できます 。
具体的な例を挙げて動機づける
初期値問題を例に挙げる
私
∂
∂
t
ψ
(
x
、
t
)
=
[
−
∂
2
∂
x
2
+
五
(
x
)
]
ψ
(
x
、
t
)
、
ψ
(
t
0
)
=
ψ
0
{\displaystyle i{\frac {\partial }{\partial t}}\psi (x,t)={\Bigl [}-{\frac {\partial ^{2}}{\partial x^{2}}}+V(x){\Bigr ]}\psi (x,t),\qquad \qquad \psi (t_{0})=\psi _{0}}
周期条件付き 。この特定の例は、 ポテンシャル内の粒子に対する シュレー ディンガー方程式ですが、構造はより一般的です。多くの実用的な偏微分方程式には、導関数(運動エネルギーの寄与など)を含む項と、関数(たとえば、ポテンシャル)との乗算が含まれます。
ψ
(
x
+
1
、
t
)
=
ψ
(
x
、
t
)
{\displaystyle \psi (x+1,t)=\psi (x,t)}
五
(
x
)
{\displaystyle V(x)}
スペクトル法では、解は 適切な基底関数、例えば平面波、に展開される。
ψ
{\displaystyle \psi}
ψ
(
x
、
t
)
=
1
2
π
∑
ん
c
ん
(
t
)
e
2
π
私
ん
x
。
{\displaystyle \psi (x,t)={\frac {1}{\sqrt {2\pi }}}\sum _{n}c_{n}(t)e^{2\pi inx}.}
同一の係数を挿入して等しくすると、係数に関する
常微分方程式 の集合が得られる。
私
d
d
t
c
ん
(
t
)
=
(
2
π
ん
)
2
c
ん
+
∑
け
五
ん
−
け
c
け
、
{\displaystyle i{\frac {d}{dt}}c_{n}(t)=(2\pi n)^{2}c_{n}+\sum _{k}V_{nk}c_{k},}
ここで、要素は 明示的なフーリエ変換によって計算される。
五
ん
−
け
{\displaystyle V_{nk}}
五
ん
−
け
=
∫
0
1
五
(
x
)
e
2
π
私
(
け
−
ん
)
x
d
x
。
{\displaystyle V_{nk}=\int _{0}^{1}V(x)\ e^{2\pi i(kn)x}dx.}
解は、基底関数への展開を切り捨て、 の解を見つけること によって得られます 。一般に、これは ルンゲ・クッタ法 などの 数値法 によって行われます。数値解を得るためには、常微分方程式の右辺を異なる時間ステップで繰り返し評価する必要があります。この時点で、スペクトル法にはポテンシャル項に関する大きな問題があります 。
いいえ
{\displaystyle N}
c
ん
(
t
)
{\displaystyle c_{n}(t)}
五
(
x
)
{\displaystyle V(x)}
スペクトル表現では、関数との乗算は ベクトル行列乗算に変換され、 としてスケールされます 。また、 係数の微分方程式を解く前に行列要素を明示的に評価する必要があり、これには追加の手順が必要です。
五
(
x
)
{\displaystyle V(x)}
いいえ
2
{\displaystyle N^{2}}
五
ん
−
け
{\displaystyle V_{nk}}
擬似スペクトル法では、この項は別の方法で評価されます。係数 が与えられると 、逆離散フーリエ変換により 、離散グリッド ポイント における関数の値が得られます 。これらのグリッド ポイントでは、関数に が乗算され、結果が再びフーリエ変換されます。これにより、 行列積 の代わりに使用される 新しい係数のセットが生成されます 。
c
ん
(
t
)
{\displaystyle c_{n}(t)}
ψ
{\displaystyle \psi}
x
じゅう
=
2
π
じゅう
/
いいえ
{\displaystyle x_{j}=2\pi j/N}
ψ
′
(
x
私
、
t
)
=
五
(
x
私
)
ψ
(
x
私
、
t
)
{\displaystyle \psi '(x_{i},t)=V(x_{i})\psi (x_{i},t)}
c
ん
′
(
t
)
{\displaystyle c'_{n}(t)}
∑
け
五
ん
−
け
c
け
(
t
)
{\displaystyle \sum _{k}V_{nk}c_{k}(t)}
どちらの方法も精度は同様であることが示されています。ただし、擬似スペクトル法では、 としてスケールする高速フーリエ変換を使用できるため、 行列乗算よりもはるかに効率的です。また、追加の積分を評価せずに関数 を直接使用することもできます。
お
(
いいえ
行
いいえ
)
{\displaystyle O(N\ln N)}
五
(
x
)
{\displaystyle V(x)}
技術的な議論
より抽象的な方法では、擬似スペクトル法は 2 つの関数の乗算を偏微分方程式の一部として扱います 。 表記を簡略化するために、時間依存性は省略されています。概念的には、次の 3 つのステップで構成されます。
五
(
x
)
{\displaystyle V(x)}
ふ
(
x
)
{\displaystyle f(x)}
ふ
(
x
)
、
ふ
〜
(
x
)
=
五
(
x
)
ふ
(
x
)
{\displaystyle f(x),{\tilde {f}}(x)=V(x)f(x)}
基底関数の有限集合で展開される(これが スペクトル法 である)。
与えられた基底関数のセットに対して、これらの基底関数のスカラー積をグリッド ポイント上の加重和に変換する求積法が求められます。
積は 各グリッドポイントで乗算して計算されます。
五
、
ふ
{\displaystyle V,f}
基盤の拡大
関数は 有限基底で展開できる 。
ふ
、
ふ
〜
{\displaystyle f,{\tilde {f}}}
{
ϕ
ん
}
ん
=
0
、
…
、
いいえ
{\displaystyle \{\phi _{n}\}_{n=0,\ldots ,N}}
ふ
(
x
)
=
∑
ん
=
0
いいえ
c
ん
ϕ
ん
(
x
)
{\displaystyle f(x)=\sum _{n=0}^{N}c_{n}\phi _{n}(x)}
ふ
〜
(
x
)
=
∑
ん
=
0
いいえ
c
〜
ん
ϕ
ん
(
x
)
{\displaystyle {\tilde {f}}(x)=\sum _{n=0}^{N}{\tilde {c}}_{n}\phi _{n}(x)}
簡単にするために、適切な境界を持つ 内積 を使用して 、基底を直交かつ正規化するとします 。係数は次のように得られます。
⟨
ϕ
ん
、
ϕ
メートル
⟩
=
δ
ん
メートル
{\displaystyle \langle \phi _{n},\phi _{m}\rangle =\delta _{nm}}
⟨
f
,
g
⟩
=
∫
a
b
f
(
x
)
g
(
x
)
¯
d
x
{\displaystyle \langle f,g\rangle =\int _{a}^{b}f(x){\overline {g(x)}}dx}
a
,
b
{\displaystyle a,b}
c
n
=
⟨
f
,
ϕ
n
⟩
{\displaystyle c_{n}=\langle f,\phi _{n}\rangle }
c
~
n
=
⟨
f
~
,
ϕ
n
⟩
{\displaystyle {\tilde {c}}_{n}=\langle {\tilde {f}},\phi _{n}\rangle }
少し計算してみると
c
~
n
=
∑
m
=
0
N
V
n
−
m
c
m
{\displaystyle {\tilde {c}}_{n}=\sum _{m=0}^{N}V_{n-m}c_{m}}
となります 。これがスペクトル法の基礎となります。 の基底を 求積基底と区別するために、この展開は有限基底表現 (FBR) と呼ばれることもあります。
V
n
−
m
=
⟨
V
ϕ
m
,
ϕ
n
⟩
{\displaystyle V_{n-m}=\langle V\phi _{m},\phi _{n}\rangle }
ϕ
n
{\displaystyle \phi _{n}}
直交
与えられた基底 と基底関数の数に対して、求積法、すなわち、 次のような点と重み
の集合を見つけようとすることができる。
{
ϕ
n
}
{\displaystyle \{\phi _{n}\}}
N
+
1
{\displaystyle N+1}
N
+
1
{\displaystyle N+1}
⟨
ϕ
n
,
ϕ
m
⟩
=
∑
i
=
0
N
w
i
ϕ
n
(
x
i
)
ϕ
m
(
x
i
)
¯
n
,
m
=
0
,
…
,
N
{\displaystyle \langle \phi _{n},\phi _{m}\rangle =\sum _{i=0}^{N}w_{i}\phi _{n}(x_{i}){\overline {\phi _{m}(x_{i})}}\qquad \qquad n,m=0,\ldots ,N}
特殊な例としては、 多項式の ガウス積分法や平面波の 離散フーリエ変換があります。グリッド ポイントと重みは、基底 と 数 の関数である ことに留意してください 。
x
i
,
w
i
{\displaystyle x_{i},w_{i}}
N
{\displaystyle N}
求積法では、グリッド ポイントの値を通じて
関数の別の数値表現が可能になります。この表現は離散変数表現 (DVR) と呼ばれることもあり、基底の展開と完全に同等です。
f
(
x
)
,
f
~
(
x
)
{\displaystyle f(x),{\tilde {f}}(x)}
f
(
x
i
)
=
∑
n
=
0
N
c
n
ϕ
n
(
x
i
)
{\displaystyle f(x_{i})=\sum _{n=0}^{N}c_{n}\phi _{n}(x_{i})}
c
n
=
⟨
f
,
ϕ
n
⟩
=
∑
i
=
0
N
w
i
f
(
x
i
)
ϕ
n
(
x
i
)
¯
{\displaystyle c_{n}=\langle f,\phi _{n}\rangle =\sum _{i=0}^{N}w_{i}f(x_{i}){\overline {\phi _{n}(x_{i})}}}
乗算
次に、関数との乗算 が各グリッドポイントで実行されます。
V
(
x
)
{\displaystyle V(x)}
f
~
(
x
i
)
=
V
(
x
i
)
f
(
x
i
)
.
{\displaystyle {\tilde {f}}(x_{i})=V(x_{i})f(x_{i}).}
一般的に、これは追加の近似を導入します。これを確認するには、係数の1つを計算します 。
c
~
n
{\displaystyle {\tilde {c}}_{n}}
c
~
n
=
⟨
f
~
,
ϕ
n
⟩
=
∑
i
w
i
f
~
(
x
i
)
ϕ
n
(
x
i
)
¯
=
∑
i
w
i
V
(
x
i
)
f
(
x
i
)
ϕ
n
(
x
i
)
¯
{\displaystyle {\tilde {c}}_{n}=\langle {\tilde {f}},\phi _{n}\rangle =\sum _{i}w_{i}{\tilde {f}}(x_{i}){\overline {\phi _{n}(x_{i})}}=\sum _{i}w_{i}V(x_{i})f(x_{i}){\overline {\phi _{n}(x_{i})}}}
しかし、スペクトル法を用いると、同じ係数は となる 。擬似スペクトル法では、追加の近似が導入される。
c
~
n
=
⟨
V
f
,
ϕ
n
⟩
{\displaystyle {\tilde {c}}_{n}=\langle Vf,\phi _{n}\rangle }
⟨
V
f
,
ϕ
n
⟩
≈
∑
i
w
i
V
(
x
i
)
f
(
x
i
)
ϕ
n
(
x
i
)
¯
.
{\displaystyle \langle Vf,\phi _{n}\rangle \approx \sum _{i}w_{i}V(x_{i})f(x_{i}){\overline {\phi _{n}(x_{i})}}.}
積が 与えられた基底関数の有限集合で表すことができる場合、選択された求積法により上記の式は正確になります。
V
f
{\displaystyle Vf}
特殊な擬似スペクトル方式
フーリエ法
周期を持つ周期境界条件 がシステムに課される場合、基底関数は平面波によって生成され、
[
0
,
L
]
{\displaystyle [0,L]}
ϕ
n
(
x
)
=
1
L
e
−
ı
k
n
x
{\displaystyle \phi _{n}(x)={\frac {1}{\sqrt {L}}}e^{-\imath k_{n}x}}
ここで 、 天井関数 はです 。
k
n
=
(
−
1
)
n
⌈
n
/
2
⌉
2
π
/
L
{\displaystyle k_{n}=(-1)^{n}\lceil n/2\rceil 2\pi /L}
⌈
⋅
⌉
{\displaystyle \lceil \cdot \rceil }
におけるカットオフの求積法は、 離散フーリエ変換 によって与えられます 。グリッド ポイントは等間隔で配置され、 間隔は で 、定数の重みは です 。
n
max
=
N
{\displaystyle n_{\text{max}}=N}
x
i
=
i
Δ
x
{\displaystyle x_{i}=i\Delta x}
Δ
x
=
L
/
(
N
+
1
)
{\displaystyle \Delta x=L/(N+1)}
w
i
=
Δ
x
{\displaystyle w_{i}=\Delta x}
誤差の議論では、2 つの平面波の積も平面波であり、 であることに注意してください 。したがって、定性的に、関数が基底関数 で十分に正確に表現できる場合 、基底関数を使用すると擬似スペクトル法で正確な結果が得られます 。
ϕ
a
+
ϕ
b
=
ϕ
c
{\displaystyle \phi _{a}+\phi _{b}=\phi _{c}}
c
≤
a
+
b
{\displaystyle c\leq a+b}
f
(
x
)
,
V
(
x
)
{\displaystyle f(x),V(x)}
N
f
,
N
V
{\displaystyle N_{f},N_{V}}
N
f
+
N
V
{\displaystyle N_{f}+N_{V}}
平面波の展開は品質が悪いことが多く、収束するには多くの基底関数が必要です。ただし、基底展開とグリッド表現間の変換は、 として適切にスケーリングされる 高速フーリエ変換を 使用して実行できます。結果として、平面波は擬似スペクトル法で遭遇する最も一般的な展開の 1 つです。
N
ln
N
{\displaystyle N\ln N}
多項式
もう一つの一般的な展開は、古典的な多項式への展開である。ここでは、 ガウス積分法 が使用され、これは常に重み と点を見つけることができることを述べている 。
w
i
{\displaystyle w_{i}}
x
i
{\displaystyle x_{i}}
∫
a
b
w
(
x
)
p
(
x
)
d
x
=
∑
i
=
0
N
w
i
p
(
x
i
)
{\displaystyle \int _{a}^{b}w(x)p(x)dx=\sum _{i=0}^{N}w_{i}p(x_{i})}
は次数以下の任意の 多項式に対して成り立つ 。通常、重み関数 と範囲は 特定の問題に対して選択され、求積法の異なる形式のいずれかにつながる。これを擬スペクトル法に適用するには、基底関数 を選択する 。ここで は次数 の多項式であり、次 の性質を
持つ。
p
(
x
)
{\displaystyle p(x)}
2
N
+
1
{\displaystyle 2N+1}
w
(
x
)
{\displaystyle w(x)}
a
,
b
{\displaystyle a,b}
ϕ
n
(
x
)
=
w
(
x
)
P
n
(
x
)
{\displaystyle \phi _{n}(x)={\sqrt {w(x)}}P_{n}(x)}
P
n
{\displaystyle P_{n}}
n
{\displaystyle n}
∫
a
b
w
(
x
)
P
n
(
x
)
P
m
(
x
)
d
x
=
δ
m
n
.
{\displaystyle \int _{a}^{b}w(x)P_{n}(x)P_{m}(x)dx=\delta _{mn}.}
これらの条件下では、 は スカラー積 に関して正規直交基底を形成します 。 この基底は、求積点とともに擬スペクトル法に使用できます。
ϕ
n
{\displaystyle \phi _{n}}
⟨
f
,
g
⟩
=
∫
a
b
f
(
x
)
g
(
x
)
¯
d
x
{\displaystyle \langle f,g\rangle =\int _{a}^{b}f(x){\overline {g(x)}}dx}
誤差の議論では、が 基底関数 によって適切に表現され、 が次 数の多項式によって適切に表現される場合 、それらの積は最初の基底関数で展開でき 、擬スペクトル法は、その数の基底関数に対して正確な結果を与えることに注意してください。
f
{\displaystyle f}
N
f
{\displaystyle N_{f}}
V
{\displaystyle V}
N
V
{\displaystyle N_{V}}
N
f
+
N
V
{\displaystyle N_{f}+N_{V}}
このような多項式は、いくつかの標準的な問題で自然に発生します。たとえば、量子調和振動子はエルミート多項式で理想的に展開され、ヤコビ多項式は回転問題で典型的に現れるルジャンドル関数を定義するために使用できます。
注記
^ Orszag, Steven A. (1972年9月). 「擬スペクトル近似とスペクトル近似の比較」. 応用数学研究 . 51 (3): 253–259. doi :10.1002/sapm1972513253.
参考文献
Orszag, Steven A. (1969). 「乱流シミュレーションの数値的手法」. 流体物理学 . 12 (12): II-250. doi :10.1063/1.1692445.
Gottlieb, David; Orszag, Steven A. (1989). スペクトル法の数値解析: 理論と応用 ( 第 5 版)。フィラデルフィア、ペンシルバニア州: Society for Industrial and Applied Mathematics。ISBN 978-0898710236 。
Hesthaven, Jan S.; Gottlieb, Sigal ; Gottlieb, David (2007). 時間依存問題に対するスペクトル法 (第 1 版). Cambridge [ua]: Cambridge Univ. Press. ISBN 9780521792110 。
Jie Shen、Tao Tang、Li-Lian Wang (2011)「スペクトル法:アルゴリズム、分析、アプリケーション」(Springer Series in Computational Mathematics、V. 41、Springer)、 ISBN 354071040X 。
Trefethen, Lloyd N. (2000). MATLAB におけるスペクトル法 (第 3 版)。フィラデルフィア、ペンシルバニア州: SIAM。ISBN 978-0-89871-465-4 。
Fornberg, Bengt (1996). 擬似スペクトル法の実践ガイド . ケンブリッジ: ケンブリッジ大学出版局. ISBN 9780511626357 。
ボイド、ジョン P. (2001)。チェビシェフおよびフーリエスペクトル法 (第 2 版、改訂版)。ニューヨーク州ミネオラ: Dover Publications。ISBN 978-0486411835 。
フナロ、ダニエレ (1992)。微分方程式の多項式近似。ベルリン: Springer-Verlag。 ISBN 978-3-540-46783-0 。
de Frutos, Javier; Novo, Julia (2000 年 1 月)。「精度が向上した ナビエ-ストークス方程式のスペクトル要素法」。SIAM Journal on Numerical Analysis。38 ( 3): 799–819。doi : 10.1137 /S0036142999351984。
Claudio, Canuto; M. Yousuff, Hussaini; Alfio, Quarteroni ; Thomas A., Zang (2006). 単一領域におけるスペクトル法の基礎 . ベルリン: Springer-Verlag. ISBN 978-3-540-30726-6 。
Press, WH; Teukolsky, SA; Vetterling, WT; Flannery, BP (2007)。「セクション 20.7. スペクトル法」。 数値レシピ: 科学計算の技法 (第 3 版)。ニューヨーク: Cambridge University Press。ISBN 978-0-521-88068-8 。