Mathematics    

PDE 問題の表現

この節では、つぎの事柄を説明します。

例題:単純 PDE

つぎの例題は、直接的な定式化、解、単純なPDE の解のプロットに関する事柄を示します。

この方程式は、時刻に関して、 の区間で成り立ちます。で、解は、つぎの初期条件を満足します。

で、解は、つぎの境界条件を満足します。

1 PDEの書き換え   つぎの型に PDE を書き換えます。

これは、式 17-3で示される型で、pdepeで使用可能なものです。詳細は、 PDE 問題の紹介を参照してください。この例題では、結果の方程式

で、パラメータ と項

となります。

2 MATLAB でのPDE のコード化   上で示される型にPDEを書き直す(式 17-3)し、項を設定すると、pdepeが使用可能な関数に、PDEをコード化できます。関数は、つぎの型をしています。

ここで、c, f, s は、それぞれ、, , の項に対応します。つぎのコードは、例題の問題に対して、c, f, sを計算します。

3 初期条件関数をコード化   MATLABの中で、つぎの型の初期条件をコード化します。

つぎのコードは、MATLAB 関数pdex1icに初期条件を表しています。

4 境界条件関数をコード化   MATLABの中で、つぎの型の境界条件をコード化します。

式 17-5と同じ型で記述された境界条件が、つぎのものです。

です。

つぎのコードは、MATLAB関数pdex1bcの中の境界条件の要素 を計算するものです。

関数 pdex1bc の中で、plql は、左の境界条件() に対応し、prqr は右の境界条件に対応します()。

5 解に対するメッシュ点の選択   MATLAB PDE ソルバを使う前に、pdepeを使って、解を計算するメッシュ点を指定する必要があります。これらは、ベクトル txで設定できます。

ベクトルtxは、ソルバの中で、異なる役割を行います(MATLAB の偏微分方程式ソルバを参照)。特に、解のコストと精度は、ベクトルxの長さに強く依存します。しかし、計算は、ベクトルtの中の要素にはあまり影響を受けません。

この例題は、空間区間[0,1] を20等分のメッシュに分割し、時間間隔[0,2]を5等分したtに関して、解を計算します。

6 PDE ソルバの適用   例題は、m = 0をもつpdepe、関数 pdex1pde, pdex1ic, pdex1bcをコールし、解を計算する位置を、xとtでメッシュを使って定義します。pdepe関数は、3次元配列solの中に数値解を出力します。ここで、 sol(i,j,k) は、t(i)x(j)で計算した解k番目の要素です。

この例題は、@ を使って、pdex1pde, pdex1ic, pdex1bc に、pdepeへの関数ハンドルとして、渡します。

7 結果の視覚化   結果を表示することで、例題を終了します。

指定した点での解の計算

上のように解を得て、プロットした後、tの特別な値での解のプロファイルや、特別な点xでの解の時間変化に興味があります。(ステップ 7の中で抽出した解の)k番目の列u(:,k)は、x(k)での解の時系列を含んでいます。j番目の行 u(j,:) は、t(j)での解のプロファイルを含んでいます。

ベクトルxu(j,:)と補助関数pdevalを使って、点xoutの任意の組で、解 u と微係数 を計算します。

例題 pdex3 は、xout = 0で、解の微係数をpdevalを使って計算します。詳細は、pdevalを参照してください。


 MATLAB 偏微分方程式ソルバ PDE ソルバ性能の改良