Matlab Pde工具箱:在直线或子流形上绘制解决方案


9

我正在使用Matlab pde工具箱来求解2D中的某些椭圆方程。

解决方案很好,尽管我确实需要沿着给定的线对其进行绘制,即从表示解决方案的3D网格中切出一个平面切片。

我想不出一种巧妙地涉及工具箱功能的方法(即不涉及三角形网格上的低级插值)。

任何帮助表示赞赏。

Answers:


3

我在MATLAB Central上发布了相同的问题,比尔·格林Bill Greene)友善地提供了答案

我简要地报告并扩展它,以使其对他人有用。

解决方案:

这是创建此类图的一种方法。假设您具有由PDE工具箱网格器创建的点矩阵p和解矢量u。下面的函数将沿着两个端点的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中产生节点值函数的函数

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.