スポンサーサイト
-- / -- / -- ( -- )
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--:--:-- | スポンサー広告 | page top↑
移流方程式を解く
2008 / 01 / 27 ( Sun )

「偏微分方程式と常微分方程式」で紹介した移流方程式

du/dt =du/dxを実際に解いてみましょう。簡単に説明するため厳密解は、

uxt

とします。差分法では、とりあえず

un+1|x-un|x)/dt = (un|x+dx - un|x-dx ) / ( 2dx )

と差分近似できます。 数式エディターがないので、式をわかりやすく記述できないのが残念ですが、un+1|x|xは、あるxおける値を意味します。ここでのx は、空間の1次元座標です。|x+dxx から dx だけずれたところを意味します。xにおける偏導関数 du/dxは、2次精度の中心差分(Second-order Central Difference)というもので差分近似されています。さらに変形しますと、

un+1|x= un|x dt ( un|x+dx - un|x-dx ) / ( 2dx )

となり、この式をn = 1,2,3,・・・と繰り返して計算します。詳しい説明はまたあとですることにしまして、x=0からx=1の領域でdx=0.1とし、t = 0 から dt = 0.01 で計算してみましょう。なお、x=0 と x=1のu には厳密解を与えることにします。まず厳密解の値を示しますと、

  n  t
  00.10.20.30.40.50.60.70.80.91 x
10.010.010.110.210.310.410.510.610.710.810.911.01
20.020.020.120.220.320.420.520.620.720.820.921.02
30.030.030.130.230.330.430.530.630.730.830.931.03
40.040.040.140.240.340.440.540.640.740.840.941.04
50.050.050.150.250.350.450.550.650.750.850.951.05
60.060.060.160.260.360.460.560.660.760.860.961.06
70.070.070.170.270.370.470.570.670.770.870.971.07
80.080.080.180.280.380.480.580.680.780.880.981.08
90.090.090.190.290.390.490.590.690.790.890.991.09
100.10.10.20.30.40.50.60.70.80.911.1 

となります。次に差分法で解きますと、

  n  t
  00.10.20.30.40.50.60.70.80.91 x
10.010.010.110.210.310.410.510.610.710.810.911.01
20.020.020.120.220.320.420.520.620.720.820.921.02
30.030.030.130.230.330.430.530.630.730.830.931.03
40.040.040.140.240.340.440.540.640.740.840.941.04
50.050.050.150.250.350.450.550.650.750.850.951.05
60.060.060.160.260.360.460.560.660.760.860.961.06
70.070.070.170.270.370.470.570.670.770.870.971.07
80.080.080.180.280.380.480.580.680.780.880.981.08
90.090.090.190.290.390.490.590.690.790.890.991.09
100.10.10.20.30.40.50.60.70.80.911.1

になります。厳密解と同じ値になりました。それでは、dt を一桁増やしてdt = 0.1 として同じ計算をしてみましょう。厳密解は、

  n  t
  00.10.20.30.40.50.60.70.80.91 x
10.10.10.20.30.40.50.60.70.80.911.1
20.20.20.30.40.50.60.70.80.911.11.2
30.30.30.40.50.60.70.80.911.11.21.3
40.40.40.50.60.70.80.911.11.21.31.4
50.50.50.60.70.80.911.11.21.31.41.5
60.60.60.70.80.911.11.21.31.41.51.6
70.70.70.80.911.11.21.31.41.51.61.7
80.80.80.911.11.21.31.41.51.61.71.8
90.90.911.11.21.31.41.51.61.71.81.9
10111.11.21.31.41.51.61.71.81.92 

となります。一方、差分法では、

  n  t
  00.10.20.30.40.50.60.70.80.91   x
10.10.10.110.210.310.410.510.610.710.810.911.1
20.20.20.120.220.320.420.520.620.720.820.921.2
30.30.30.120.230.330.430.530.630.730.830.941.3
40.40.40.110.240.340.440.540.640.740.840.971.4
50.50.50.110.250.350.450.550.650.750.850.991.5
60.60.60.090.260.360.460.560.660.760.861.031.6
70.70.70.080.280.370.470.570.670.770.881.061.7
80.80.80.050.290.380.480.580.680.780.891.111.8
90.90.90.030.310.390.490.590.690.790.911.151.9
1011-00.330.40.50.60.70.80.931.22 

になりました。今度は、厳密解と違い少し変な値が計算されています。この違いは、「数値流体力学のはじまり」で紹介したフォンノイマンが提案した線形安定性理論により説明することができます。ただし、その説明はやや手間がかかるのでここでは省略します。

スポンサーサイト

テーマ:自然科学 - ジャンル:学問・文化・芸術

09:55:16 | 計算数理科学 | トラックバック(0) | コメント(0) | page top↑
<<拡散方程式 | ホーム | 偏微分方程式と常微分方程式>>
コメント
コメントの投稿














管理者にだけ表示を許可する

トラックバック
トラックバックURL
http://mathmodelandsim.blog34.fc2.com/tb.php/11-c7c02ee8
この記事にトラックバックする(FC2ブログユーザー)
| ホーム |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。