Je fais un bref rapport et je l'étend pour qu'il puisse être utile à d'autres.
Voici une façon de créer un tel complot. Supposons que vous ayez la matrice de points créée par le mailleur PDE Toolbox, p, et un vecteur de solution, u. La fonction ci-dessous créera un tracé de cette solution le long d'une ligne définie par les emplacements x et y des deux points d'extrémité. Mon exemple est pour une solution sur un carré unitaire et je veux un tracé le long de la ligne (0, 0,5) à (1, 0,5). Je veux inclure 25 points dans l'intrigue. Comme vous pouvez le voir, le vrai travail est effectué par la TriScatteredInterp
fonction du noyau 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
Je voudrais en outre remarquer que la fonction précédente permet de tracer la solution u
ou ses fonctions f(u)
, à condition qu'elle u
soit définie sur des nœuds de maillage (comme cela se produit généralement pour les solutions approchées FEM).
Si l'on a besoin de tracer des sections de fonctions définies sur des centres de maillage (par exemple des fonctions de grad u
), elle peut utiliser à l'avance la fonction pdeprtni
qui produit des fonctions de valeur de nœud à partir de fonctions de valeur de centre .