スポンサーサイト
-- / -- / -- ( -- )
上記の広告は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↑
偏微分方程式と常微分方程式
2008 / 01 / 27 ( Sun )

常微分方程式として、反応方程式 du/dt =-u を紹介しました。この場合の t は時間でした。数学では独立変数と呼ばれます。一方、偏微分方程式とは、英語では、Partial Differential Equation(略してPDE)で、独立変数が2つ以上の微分方程式のことをそう呼びます。たとえば、

du/dt =du/dx

は最も簡単な偏微分方程式の一つです。数値流体力学や計算数理科学の分野では、移流方程式(Convective Equation)に分類されます。

この方程式の解としては、たとえば

ux+t

があります。偏微分方程式を微分する際には、微分しようとする独立変数の項のみが微分され、それ以外のものは定数として取り扱われますので、u x  で偏微分しても t  で偏微分してもその値は同じ、すなわちこの場合には du/dt =du/dx=1になり、結局上記の移流方程式が成り立ちます。実は、独立変数x 、t からなる任意の関数(正確には偏微分を含みますので、偏導関数と呼ばれます)を、f とすれば、

u( x+t )

であれば、すべて上記の移流方程式が成り立ちます。移流方程式は、数値流体力学、特に圧縮性流れの計算手法にとって極めて重要な偏微分方程式です。

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

08:27:26 | 計算数理科学 | トラックバック(0) | コメント(0) | page top↑
| ホーム |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。