スポンサーサイト

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

CTCSスキームの場合

熱伝導方程式と差分スキーム シリーズ3つめ。

以前、

1つめ FTCSスキーム
2つめ BTCSスキーム (完全陰解法)

の2種類の差分スキームを試しました。

FTCSは Forward Time, Central Space
 ( 時間微分を前進差分に、空間微分を中心差分に )
BTCSは Backward Time, Central Space
 ( 時間微分を後退差分に、空間微分を中心差分に )

の意味ですが、では残った1つ

CTCS すなわち Central Time, Central Space
 ( 時間微分を中心差分に、空間微分を中心差分に )

はどうなのか!?

というわけで、今回はこの差分スキームを使って計算してみました。


Tags : 数学 数値解析

この方法は、CTCSスキーム、Richardson法、Richardsonスキームなどと呼ばれています。
( 反復法の収束を速めるRechardson法とは別物 )

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

(*)式をCTCSスキームで差分化すると

{ ud(xi,tn+1) - ud(xi,tn-1) }/(2⊿t)
= α・{ ud(xi-1,tn) - 2ud(xi,tn) + ud(xi+1,tn) }/(⊿x2)

整理して
ud(xi,tn+1)
= ud(xi,tn-1) + 2v・{ ud(xi-1,tn) - 2ud(xi,tn) + ud(xi+1,tn) }
( v := α・⊿t/(⊿x2) )


t=tn+1での値を求めるのに、それ以前の値(tnなど)のみを用いているので、これは陽解法です。

文字の意味は
ud : uを差分化した関数
⊿x : xを離散化する間隔(サンプリング間隔とも)
⊿t : tを離散化する間隔(サンプリング間隔とも)
xi : xを間隔⊿で離散化したときのi番目
tn : tを間隔⊿tで離散化したときのn番目



具体的に計算してみました。

用いた数値・条件は以下の通り
α = 1.18×10-4 [m2/s] (銅の熱拡散率を想定)
⊿x = 0.002 [m]
⊿t = 0.01 [s]
xのサンプリング数 : N = 51
xの計算区間 : L = N・⊿x = 0.1 [m]

初期条件 : u(x,0) = 4000x(0.1-x) [℃]
境界条件 : u(0,t) = u(0.1,t) = 0 [℃]

CTCSスキームで計算しはじめるには t = 0, t1 の2時点でのuの値が必要なので、初めの1ステップだけはFTCSスキームを用いました。

[ 計算結果(t=0.2[s]まで) ]
CTCSスキームでのシミュレーション結果

瞬く間に数値が発散してしまいました。
現実の熱伝導ではこんなことは決して起こらないので、これは明らかに誤った結果です。


なぜこのような結果になってしまったのでしょうか??


実は、Fourier級数による差分スキームの安定性解析から、
CTCSスキームはどのようにパラメータを選んでも無条件で不安定だということがわかっています。なので、実用ではまず使われません

以前このブログで紹介した「行列の固有値による安定性解析」でも同じことが示せるかと思って、ちょこちょこやってみたんですが、ベクトルの3項間漸化式になってしまってうまくいかず・・・

Fourier級数の方法も私自身がよく理解していないので、今回は結論だけ書くことにしました。
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

fura2

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

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

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