Matlab:如果解决方案表示为向量,如何针对特定的 x 值绘制解决方案

Matlab: how to plot the solutions against a specific x value if the solutions represented as a vector

我使用 pdenonlin 求解器求解二维空间域 (x-y) 中的非线性 ODE。如何在特定 x 值(比如 x=0.4)处将解绘制为 y 的函数?谢谢

c = 1;
a = 0;
f = char('u');
d = 1; xmin=0;xmax=0.575;ymin=0;ymax=0.05315;ymax2=0.066; 
gdm = [3;4;xmin;xmax;xmax;xmin;ymax;ymax2;ymin;ymin]; 
g = decsg(gdm, 'S1', ('S1')');
hmax = .1; % element size
[p, e, t] = initmesh(g, 'Hmax', hmax);
[p,e,t] = refinemesh(g,p,e,t);
[p,e,t] = refinemesh(g,p,e,t);
[p,e,t] = refinemesh(g,p,e,t);
[p,e,t] = refinemesh(g,p,e,t);
[p,e,t] = refinemesh(g,p,e,t);
numberOfPDE = 1;
pb = pde(numberOfPDE);
% Create a geometry entity
pg = pdeGeometryFromEdges(g);
bc1 = pdeBoundaryConditions(pg.Edges(1),'u',100);
bc2 = pdeBoundaryConditions(pg.Edges(2),'u',66);
bc3 = pdeBoundaryConditions(pg.Edges(3),'u',11);
bc4 = pdeBoundaryConditions(pg.Edges(4),'g',0);
pb.BoundaryConditions = [bc1,bc2,bc3,bc4]; 
u = pdenonlin(pb,p,e,t,c,a,f, 'jacobian', 'lumped');
figure;
hold on
pdeplot(p, e, t, 'xydata', u, 'contour', 'off', 'colormap', 'jet(99)');
title 'chemical Diffusion, Steady State Solution'
xlabel 'X-coordinate, cm'
ylabel 'Y-coordinate, cm'

我自己没有工具箱,但应该可以解决这个问题:

set(gca,'XLim',[0.4-eps 0.4+eps])
view(90,0)

想法是剪切轴以仅显示与 x=0.4 的交点,然后旋转视图以显示 ZY 平面。

tri2grid 在给定点计算解的插值:

x=0.4;
y=linspace(ymin,ymax);
ux=tri2grid(p,t,u,x,y);
plot(y,ux)
xlabel('y')
ylabel('u')
title('x=0.4')