pdepe
1 次元の放物型および楕円型 PDE の求解
構文
説明
は、1 つの空間変数 x と時間 t をもつ放物型および楕円型 PDE 系を解きます。少なくとも 1 つの方程式は放物型でなければなりません。スカラー sol
= pdepe(m
,pdefun
,icfun
,bcfun
,xmesh
,tspan
)m
は、問題の対称性 (スラブ、円柱または球面) を表します。求解する方程式は pdefun
に、初期値は icfun
に、境界条件は bcfun
にそれぞれコード化されています。空間的に離散化して求める常微分方程式 (ODE) は、tspan
に指定された各時点で、近似解を得るために積分されます。pdepe
関数は、xmesh
で与えられるメッシュ上の解の値を返します。
[
は、(t,u(x,t)) の関数 (イベント関数) がゼロになる点も求めます。出力の sol
,tsol
,sole
,te
,ie
] = pdepe(m
,pdefun
,icfun
,bcfun
,xmesh
,tspan
,options
)te
はイベント時点、sole
はイベント時点における解、ie
はトリガーされたイベントのインデックスです。tsol
は、最初の終了イベントの前に tspan
に指定された時間の列ベクトルです。
各イベント関数に対して、ゼロで積分を終了するかどうかと、ゼロクロッシングの方向を考慮するかどうかを指定します。これを行うには、@myEventFcn
などの関数に odeset
の Events
オプションを設定し、対応する関数 [value
,isterminal
,direction
] = myEventFcn
(m
,t
,xmesh
,umesh
) を作成します。xmesh
の入力は空間メッシュを含み、umesh
はメッシュ点の解です。
例
入力引数
出力引数
ヒント
uji = sol(j,:,i)
が時間tspan(j)
とメッシュ点xmesh
で解の要素i
を近似する場合、pdeval
は、点xout
の配列において近似値とその偏導関数 ∂ui/∂x を評価して、それらをuout
およびduoutdx
に返します ([uout,duoutdx] = pdeval(m,xmesh,uji,xout)
)。関数pdeval
は、流束ではなく偏導関数 ∂ui/∂x を評価します。流束は連続ですが、構成物の接続点では偏導関数は不連続になる場合があるからです。
アルゴリズム
時間積分は、ode15s
ソルバーを使用して行います。pdepe
は、PDE が楕円方程式を含んでいる場合に生じる微分代数方程式を解くため、また指定したスパース パターンをもつヤコビアンを取り扱うために、ode15s
の機能を使用します。
離散化の後、楕円方程式から代数方程式が生成されます。楕円方程式に対応した初期条件の要素が、離散化と矛盾している場合、関数 pdepe
は、時間積分を始める前にそれらの調整を試みます。このため、最初の時点に対して返される解は、他の時点のものと同程度の離散化誤差をもっています。メッシュが十分細かい場合、関数 pdepe
は与えられた初期条件に近い整合性のある初期条件を検出することができます。関数 pdepe
が、整合性のある初期条件を見つけることが困難であるというメッセージを表示する場合は、メッシュをより細かく分割してください。放物線方程式に対応する初期条件ベクトルの要素の調整は必要ありません。
参照
[1] Skeel, R. D. and M. Berzins, "A Method for the Spatial Discretization of Parabolic Equations in One Space Variable," SIAM Journal on Scientific and Statistical Computing, Vol. 11, 1990, pp.1–32.