Matlab Pde Toolbox:ラインまたは部分多様体に解をプロット


9

Matlab pdeツールボックスを使用して、特定の楕円方程式を2Dで解決しています。

ソリューションは問題ありませんが、特定のラインに沿ってプロットする必要があります。つまり、ソリューションを表す3Dメッシュから平面スライスをカットする必要があります。

ツールボックス関数を賢く含む方法(つまり、三角形メッシュでの低レベルの補間を含まない方法)を理解できません。

助けてくれてありがとう。

回答:


3

私は上の同じ質問を投稿中央MATLAB、およびビル・グリーンは親切に提供さ答えを

他の人にも役立つように、簡単に報告して拡張します。

ビルによるソリューション:

このようなプロットを作成する1つの方法を次に示します。PDE Toolboxメッシャーpと解ベクトルuによって作成された点行列があると仮定します。以下の関数は、2つの端点のxとyの位置によって定義された線に沿ってそのソリューションのプロットを作成します。私の例は、単位正方形の解法であり、(0、.5)から(1、.5)までの線に沿ったプロットが必要です。プロットに25ポイントを含めたいです。ご覧のとおり、実際の作業はTriScatteredInterpコアMATLABの関数によって行われています。

plotAlongLine(p, u, [0,.5], [1,.5], 25);

function plotAlongLine(p, u, xy1, xy2, numpts)
    x = linspace(xy1(1),xy2(1),numpts);
    y = linspace(xy1(2),xy2(2),numpts);
    F = TriScatteredInterp(p(1,:)', p(2,:)', u);
    uxy = F(x,y);
    figure; plot(x, uxy);  //REM: x is chosen here as a curvilinear coordinate
end

さらに、前の関数では、メッシュノードで定義されていれば(通常、FEM近似解で発生する)、解uまたはその関数をプロットできます。f(u)u

メッシュの中心で定義された関数のセクション(例:の関数grad u)をプロットする必要がある場合、事前に、中心値関数からノード値関数pdeprtniを生成する関数を使用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.