スペクトル法の一部 の基礎の初歩への はじめの一歩 高橋芳幸 はじめに • 偏微分方程式の数値解法としては, これまで に様々なものが考案されている. ここではス ペクトル法に注目し, その「一部の基礎の初 歩の概要を大雑把に」説明したい. • なお, ここでは非常に簡単な例を「多少誤魔 化しつつ」述べているので, 正確な記述と詳 細は様々な文献をあたっていただきたい. 参考文献 • 石岡 (2004), スペクトル法による数値計算入門, 東京大学出版会. • Durran (1999), Numerical Methods for Wave Equations in Geophysical Fluid Dynamics, Springer-Verlag. • Haltiner and Williams (1980), Numerical prediction and dynamic meteorology - 2nd ed., Wiley. 題材とする方程式 • ここでは例として以下に示す 1 次元移流方 程式を離散化を扱う. c t x (1) ただし, ここでは c は定数で, 0 x 2 とし, 周期境界条件とする. 有限差分法 (参考までに) • (1)式は, 有限差分法を用いると以下のよう に離散化される. nj ( x j , tn ), x j jx, tn nt 例えば, 2 次精度の中心差分で離散化すると以下のようになる. nj1 nj1 2t n1 j n1 j c nj1 nj1 2x t n c j 1 nj1 x スペクトル法 (1) • スペクトル法では, 解を有限個の直交関数で展開し, その係数を求 める. • ここでは, 展開関数としてフーリエ級数を用いる. 注:以下では, 非常に簡単な系の話を, 詳細を飛ばして説明していま す. 本当はもっとちゃんとした議論がありますので詳細は文献をあ たってください. • 解を以下のように展開することにする. M ikx a ( t ) e k k M ここで M は切断波数. (1) 式に代入すると, dak (t ) ick ak (t ) dt となり, 常微分方程式になった. (2) c t x スペクトル法 (2) • 時間微分を有限差分法で近似し, 整理すると akn1 akn1 ick akn 2t akn1 akn1 2ick t akn となる. • 実空間での解の構造を求めるには, 離散フーリエ逆変換すれ ばよい. ( (2) 式に代入すればよい.) スペクトル法 (3) (x j , tn1), (x j , tn ) 実空間データ 1 N n ikxj ak (t ) j e N j 1 離散フーリエ変換 akn1 akn1 2ick t akn 時間積分 離散フーリエ逆変換 ( x j , tn1) n j M jkx a ( t ) e k k M 実空間データ スペクトル法 (4) • スペクトル法の利点 – 微分値の見積もり精度が差分法に比べて非常に高い. – 格子点配置に任意性がない. • スペクトル法の欠点 – 滑らかな関数を展開関数に用いると, 物理量の急激な変化を表 すことができない. – 境界条件によっては適した展開関数がない. スペクトル法 (5) • 線型方程式 – 波数空間においても方程式がとても簡単. – 計算量が少ない. • 非線型方程式 – 波数空間での計算が”若干のややこしい”. – (何も考えずに)計算すると計算量が多い. • 非線型方程式を考える際には工夫が必要. スペクトル法 (6) • 以下の非線型方程式を考える. t x • 解を以下のように展開することにして上の式に代入すると, n j M M ikx a ( t ) e k k M M M d ikx ilx im x a ( t ) e a ( t ) e ima ( t ) e k l m dt k M l M m M M i ma (t)a M l M m M より, l i ( l m) x ( t ) e m スペクトル法 (7) M dak (t ) imal (t )am (t ) dt l m k ; l , m M となる. スペクトル法 (8) • 非線形項の計算量に関する考察. M dak (t ) imal (t )am (t ) dt l m k ; l , m M 右辺の計算量は O(M2). • 計算量が多すぎるので, 減らしたい. スペクトル法 (9) • 変換法 – 非線形項(の掛け算)を実空間で計算(微分は波 数空間で評価). dak dt x k akn1 akn1 2t x k n n j M a m M m (t )eim x n n 1 N n ikx j e x j x k N j 1 M imal (t )eim x x j mM n n j スペクトル法 (10) (x j , tn1), (x j , tn ) 実空間データ 1 2M 1 n ikxj ak (t ) e 2M 1 j 1 j imamn eim x x m n 波数空間で微分の評価 離散フーリエ変換 M imam (t )eim x x j mM n 離散フーリエ逆変換 時間積分 実空間での非線型項の評価(掛け算) nj 離散フーリエ逆変換 M a (t)e k M jkx k n n M 1 n ikx j x j e x k 2M 1 k M 離散フーリエ変換 t x k n ( x j , tn1) j x j 実空間データ 時間積分 n1 k a n1 k a スペクトル法 (11) • 変換法を用いた場合の計算量 – 実質的には離散フーリエ(逆)変換の計算量で決 まる • 離散フーリエ変換の計算量は O(M2) • 高速フーリエ変換(Fast Fourier Transform: FFT) を用いると, 計算量は O(MlogM) • FFT を用いると, 何も考えない場合の計算量 (O(M2)) よりも少なくてすむ. スペクトル法 (12) • spmodel の特徴(の一部) – 離散フーリエ変換(を含む各種変換)が簡単. • 離散フーリエ変換 :関数 e_g e_data = e_g( g_data ) • 離散フーリエ逆変換 :関数 g_e g_data = g_e( e_data ) – 微分も簡単 • x 微分 g_dfdx = g_Dx_e( e_g( g_data ) ) スペクトル法 (13) (x j , tn1), (x j , tn ) 実空間データ 1 2M 1 n ikxj ak (t ) e 2M 1 j 1 j imamn eim x x m n 波数空間で微分の評価 離散フーリエ変換 M imam (t )eim x x j mM n 離散フーリエ逆変換 時間積分 実空間での非線型項の評価(掛け算) nj 離散フーリエ逆変換 j x j M a (t)e k M jkx k n n M 1 n ikx j x j e x k 2M 1 k M 離散フーリエ逆変換 g_psi * g_Dx_e( e_psi ) t x k n ( x j , tn1) 実空間データ 時間積分 n1 k a n1 k a スペクトル法 (14) • 変換法を用いる際にはエイリアシングに注意が必要. – 格子点数 N の時, 最初に考える切断波数の選択は M=N/2 • 実空間でのデータ数(自由度)と波数空間でのデータ数が等しい. • 波数 M までの成分を含む 2 項の積は, 波数 2M までの成分を含む. 実際 には折り返されて“偽の”成分が生じる(エイリアシング). • 畳み込み積分の結果は, 波数 M までしか含まない. – そこで, エイリアシングが起こらない程度まで切断波数 を小さくする. • M = (N-1)/3 とすると, 2 項までの積を含む系ではエイリアシングは起こら ない. k1+k2 k’ 0 M N/2 波数 2M 参考文献 • 石岡 (2004), スペクトル法による数値計算入門, 東京大学出版会. • Durran (1999), Numerical Methods for Wave Equations in Geophysical Fluid Dynamics, Springer-Verlag. • Haltiner and Williams (1980), Numerical prediction and dynamic meteorology - 2nd ed., Wiley.
© Copyright 2024 ExpyDoc