スポンサーサイト

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

Dirichlet境界条件の差分法への適用

境界での関数値を指定する、Dirichlet(ディリクレ)境界条件の下での数値解析方法について考えます。

以前から何度もやっている方法をちょこっと変えるだけで実現できます。

Tags : 数学 数値解析

話を簡単にするため、1次元の熱伝導方程式
∂u/∂t = α・∂2u/∂x2 ( 0<x<L, α>0 ) …… (*-1)
について考えます。

一般のDirichlet条件は、時間に依存する関数 a(t), b(t) を用いて
u(0,t) = a(t) …… (*-2)
u(L,t) = b(t) …… (*-3)
と書くことができます。
( 物理で登場する多くの場合、a(t), b(t) は定数関数です。 )


適当な差分スキームを用いて(*-1)~(*-3)式を数値的に解くことを考えます。

用いる差分スキームにFTCSスキームを採用した場合には、(*-1)式は次のような差分方程式に変換されます。(参照)
ud(xi,tn+1) = (1-2v)・ud(xi,tn) + v・{ ud(xi-1,tn) + ud(xi+1,tn) } …… (#-1)
 ( i = 1, 2, …, N-1 )

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

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 が成り立つ )

境界での差分方程式は、(*-2),(*-3)式から
ud(0,tn) = a(tn) …… (#-2)
ud(xN,tn) = b(tn) …… (#-3)

ud(xi,0)は、別途、初期条件として指定されるので、(#-1)~(#-3)式を繰り返し用いることで、順次、時刻tnでのudを求めることができます。


他の差分スキームを用いる場合も同様にして差分方程式を作ることができます。

たとえば、完全陰解法を用いた場合(参照)には、結果だけ示すと、差分方程式は次のようになります。
\begin{pmatrix} 1 & 0 & 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 & -v & 1+2v & -v\\ 0 & \ldots & \ldots & 0 & 0 & 1 \end{pmatrix}\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 )\\ \vdots\\ u_d\left ( x_{N-1}, t_{n+1} \right )\\ u_d\left ( x_N, t_{n+1} \right ) \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 )\\ \vdots\\ u_d\left ( x_{N-1}, t_n \right )\\ u_d\left ( x_N, t_n \right ) \end{pmatrix}
ud(0,tn) = a(tn), ud(xN,tn) = b(tn) は、a(t), b(t) が時間に依る関数であれば、計算ステップごとに値を代入しなおす必要があります。


次回は、Neumann境界条件の適用方法を考えます。
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

fura2

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

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

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