MATLAB Function Reference    

pdepe

1空間変数と時間で表される放物線偏微分方程式と楕円偏微分方程式システム(PDEs)の初期-境界値問題を解きます。

表示

引数

    

m
問題の対称性に対応したパラメータ。m が、0 の場合、スラブ、1 の場合、円筒、2 の場合、球面です。
pdefun
PDE の要素を定義する関数
icfun
初期条件を定義する関数
bcfun
境界条件を定義する関数
xmesh
tspan の中のすべての値に対して、数値解が必要とされる点を指定するベクトル [x0, x1, ..., xn] です。xmesh の要素は、x0 < x1 < ... < xn を満足する必要があります。xmesh の長さは、 3 でなければなりません。
tspan
xmesh の中のすべての値に対して、解が必要とする点を指定するベクトル [t0, t1, ..., tf] です。tspan の要素は、t0 < t1 < ... < tf を満足する必要があります。 tspan の長さは、 3 でなければなりません。
options
pdepe で使用可能な ODE ソルバで使用するいくつかのオプション、RelTol, AbsTol, NormControl, InitialStep, MaxStep です。多くの場合、これらのオプションに対するデフォルト値は、満足の得られる解を与えます。詳細は、odeset を参照してください。
p1,p2,...
pdefun, icfun, bcfun に渡されるオプションパラメータ

詳細

sol = pdepe(m,pdefun,icfun,bcfun,xmesh,tspan) は、1空間変数 と時間変数 からなる放物線 PDEs と楕円 PDEs に対する初期-境界値問題を解きます。空間的な離散化の結果求まる常微分方程式は、tspan の中に指定された時刻で、近似解を得るために、積分されます。関数 pdepe は、xmesh の中で与えられるメッシュ上の解の値を戻します。

pdepe は、つぎの型の PDEs を解きます。

    

(1-1)  

PDEs は、 で、成り立ちます。区間 は、有限で、 は、0、1、2のいずれかで、スラブ、円筒、球面対称に対応します。 の場合、 は、 0 である必要があります。

式 1-1 で、 は、流量の項、 は、ソースの項です。時間に関する偏微分の干渉は、対角行列 との乗算に制限されます。この行列の対角要素は、ゼロ、または、正数のいずれかです。ゼロの要素は、楕円方程式に対応し、その他は、放物線の方程式に対応します。少なくとも一つは、放物線方程式が存在する必要があります。放物線方程式に対応する の要素は、 のそれらの値が、メッシュ点上に存在すれば、 の孤立点でゼロになります。物質境界による の中の不連続は、メッシュ点が、個々のインタフェースに配置されている場合には、邪魔になりません。

と、すべての に対して、解の要素は、つぎの型の初期条件を満足します。

     (1-2)  

すべての と、、または、 のどちらか一方と共に、解要素は、つぎの型の境界条件を満足します。

    

(1-3)  

の要素は、ゼロ、または、非ゼロのどちらかです。境界条件が、 でなく、流量 の項で表されることに注意してください。2つの係数に関して、 だけ、 に依存します。

sol = pdepe(m,pdefun,icfun,bcfun,xmesh,tspan) のコールの中で、

pdepe は、多次元配列 sol として、解を戻します。 = ui = sol(:,:,i) は、解ベクトル i 番目の要素への近似になります。要素 ui(j,k) = sol(j,k,i) は、 = (tspan(j),xmesh(k)) で、 を近似します。

ui = sol(j,:,i) は、時刻 tspan(j) とメッシュ点 xmesh(:) で、解の成分 i を近似します。pdeval を使って、xmesh に含まれない点で、近似とその偏微係数 を計算します。詳細は、pdeval を参照してください。

sol = pdepe(m,pdefun,icfun,bcfun,xmesh,tspan,options) は、デフォルトの積分パラメータの代わりに、関数 odeset で作成した引数 options に設定した値を使って、上述したようにして、解きます。ODE ソルバのオプションのいくつかは、pdepe の中で使用可能です。これは、RelTol, AbsTol, NormControl, InitialStep, MaxStep です。入力引数 options を設定しないで得られたデフォルトは、一般には、問題ありません。詳細は、odeset を参照してください。

sol = pdepe(m,pdefun,icfun,bcfun,xmesh,tspan,options,p1,p2...) は、付加的なパラメータ p1, p2, ... を、関数 pdefun, icfun, bcfun に渡します。options を設定しない場合、options = [] を使ってください。

注意

例題

例題 1. つぎの例題は、直接的な定式化、計算、解のプロットを示すものです。

この方程式は、時刻 に対して、区間 で成り立っています。

PDE は、初期条件を満足させます。

それと共に、境界条件も満足させます。

一つの M-ファイルの中に、pdepe で必要とされるすべての関数をサブ関数を使って、設定すると便利です。

この例題の中で、PDE、初期条件、境界条件は、サブ関数 pdex1pde, pdex1ic, pdex1bc にコード化されています。

サーフェスプロットは、解の挙動を示します。

つぎのプロットは、t (すなわち、t = 2) の最終値で、解のプロファイルを示しています。

例題 2. つぎの例題は、PDEs システムの解を示すものです。問題は、区間の両端で境界層をもっています。解は、小さな に対して、急激に変化します。

PDEs は、つぎのように表せます。

ここで、

.

です。この方程式は、時刻 で、区間 で成り立ちます。

PDE は、初期条件を満足します。

そして、境界条件も満足します。

pdepe で、使用可能な型として、方程式は、つぎのように変形されます。

に関する偏微係数に対する境界条件は、流量の項目で記述される必要があります。pdepe で、使用可能な型として、左境界条件は、つぎのように変形されます。

また、右境界条件は、つぎのように変形されます。

解は、小さな に対して、急激に変化します。プログラムは、この急激な変化に対応するために、時間に関するステップサイズを選択し、プロット上で、その挙動を調べます。従って、例題では、出力時間を選択する必要があります。[0,1] の両端で、解に境界層が存在しています。それで、例題は、これらの急激な変化を解くために、01 の近傍にメッシュ点を配置しています。解の挙動を表現するために、適切なメッシュ選択を行うために、数回試みる必要があります。

この例題で、PDEs、初期条件、境界条件は、サブ関数 pdex4pde, pdex4ic, pdex4bc にコード化されています。

サーフェスプロットは、解要素の挙動を示しています。

参考

function handle (function_handle), pdeval, ode15s, odeset, odeget

参考文献

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.


  pcolor pdeval