スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

周期的境界条件の差分法への適用

境界で関数がなめらかにつながっていることを意味する、周期的境界条件下での数値解析方法について考えます。

今回は、案外 直感でうまくいきます。

Tags : 数学 数値解析

1次元の周期的境界条件(以下、周期条件)は、一般に次のような形をしています。

u(0,t) = u(L,t) …… (#-1)
∂u/∂x|x=0 = ∂u/∂x|x=L …… (#-2)

( ただし、x=0 を左端、x=L を右端としています。)

この式は、関数u(x,t)がx方向に周期Lをもっていることを表しています。
また、数学的には x=0 と x=L での関数値と傾きが共に等しいという条件になっています。



いつもどおり、1次元の熱伝導方程式
∂u/∂t = α・∂2u/∂x2 (0≦x≦L, α>0) …… (*)
を例にとって考えます。

また、差分法の計算に使う差分スキームにはFTCSスキームを採用することにします。

偏微分方程式から差分方程式に変換する際の記号を

ud(xi,tn) : u(x,t)を離散化した関数 (uinと書くことも多い)
⊿x : xを離散化する間隔 (サンプリング間隔)
⊿t : tを離散化する間隔 (サンプリング間隔)
xi : xを間隔⊿xで離散化したときのi番目 ( xi = i・⊿x )
tn : tを間隔⊿tで離散化したときのn番目 ( tn = n・⊿t )
N : xを分割する数( L = N・⊿x が成り立つ )

と書くことにすると、(*)式に対応する差分方程式は

ud(xi,tn+1)
= (1-2v)・ud(xi,tn) + v・{ ud(xi-1,tn) + ud(xi+1,tn) }
 ( i=1,2,…,N-1 )

ただし
v := α・⊿t/(⊿x2)
(参照)

これを行列で書くと
\begin{pmatrix} u_d\left ( x_1, t_{n+1} \right )\\ u_d\left ( x_2, t_{n+1} \right )\\ u_d\left ( x_3, t_{n+1} \right )\\ u_d\left ( x_4, t_{n+1} \right )\\ \vdots\\ u_d\left ( x_{M-1}, t_{n+1} \right ) \end{pmatrix} = \begin{pmatrix} 1-2v & v & 0 & \ldots & \ldots & 0\\ v & 1-2v & v & \ddots &  & \vdots\\ 0 & v & 1-2v & v & \ddots & \vdots\\ \vdots & \ddots & \ddots & \ddots & \ddots & 0\\ \vdots &  & \ddots & \ddots & \ddots & v\\ 0 & \ldots & \ldots & 0 & v & 1-2v \end{pmatrix}\begin{pmatrix} u_d\left ( x_1, t_n \right )\\ u_d\left ( x_2, t_n \right )\\ u_d\left ( x_3, t_n \right )\\ u_d\left ( x_4, t_n \right )\\ \vdots\\ u_d\left ( x_{M-1}, t_n \right ) \end{pmatrix}
( 以前の画像を流用したので使ってる文字が違う。MをNに読み替えてください。)

周期条件は、udが周期Lをもっているという条件なので、端点も含めた差分方程式は、直感的に
\begin{pmatrix} u_d\left ( x_0, t_{n+1} \right )\\ u_d\left ( x_1, t_{n+1} \right )\\ u_d\left ( x_2, t_{n+1} \right )\\ u_d\left ( x_3, t_{n+1} \right )\\ \vdots\\ u_d\left ( x_N, t_{n+1} \right ) \end{pmatrix} = \begin{pmatrix} 1-2v & v & 0 & \ldots & 0 & v\\ v & 1-2v & v & \ddots &  & 0\\ 0 & v & 1-2v & v & \ddots & \vdots\\ \vdots & \ddots & \ddots & \ddots & \ddots & 0\\ 0 &  & \ddots & \ddots & \ddots & v\\ v & 0 & \ldots & 0 & v & 1-2v \end{pmatrix}\begin{pmatrix} u_d\left ( x_0, t_n \right )\\ u_d\left ( x_1, t_n \right )\\ u_d\left ( x_2, t_n \right )\\ u_d\left ( x_3, t_n \right )\\ \vdots\\ u_d\left ( x_N, t_n \right ) \end{pmatrix}
となることが予想できます。


長くなるのでここでは省略しますが、
実際、(#-1),(#-2)式をNeumann条件のときと同じ要領で差分方程式に変換すると、↑の行列表示と全く同じ式が得られます。


もちろん、FTCSスキーム以外の差分スキームを用いる場合でも、同じようにして周期条件を実現できます。
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

fura2

Author : fura2
数学・コンピュータを中心に、考えたこと・やったことを書いていきます。

誤植等を含め、間違いはご指摘いただければ幸いです。

FC2カウンター
検索フォーム
最新記事
最新コメント
最新トラックバック
月別アーカイブ
リンク
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。