Matlab Pde Toolbox: solución de trazado en una línea o en un submanifold


9

Estoy usando la caja de herramientas Matde pde para resolver una cierta ecuación elíptica en 2D.

La solución está bien, aunque necesito trazarla a lo largo de una línea dada, es decir, cortar un corte plano de la malla 3D que representa la solución.

No puedo encontrar una manera que implique inteligentemente las funciones de la caja de herramientas (es decir, que no implique una interpolación de bajo nivel en la malla triangular).

Cualquier ayuda apreciada.

Respuestas:


3

Publiqué la misma pregunta en MATLAB central , y Bill Greene amablemente proporcionó una respuesta .

Lo informo brevemente y lo extiendo para que pueda ser útil para otros.

Solución de Bill:

Aquí hay una forma de crear tal trama. Suponga que tiene la matriz de puntos creada por PDE Toolbox Mesher, p, y un vector de solución, u. La siguiente función creará un gráfico de esa solución a lo largo de una línea definida por las ubicaciones x e y de los dos puntos finales. Mi ejemplo es para una solución en un cuadrado unitario y quiero un gráfico a lo largo de la línea (0, .5) a (1, .5). Quiero incluir 25 puntos en la trama. Como puede ver, la TriScatteredInterpfunción del núcleo de MATLAB está haciendo el trabajo real .

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

Me gustaría comentar que la función anterior le permite a uno trazar la solución uo sus funciones f(u), siempre que uesté definida en los nodos de malla (como suele suceder con las soluciones aproximadas de FEM).

Si uno necesita trazar secciones de funciones definidas en centros de malla (por ejemplo, funciones de grad u), puede usar de antemano la función pdeprtnique produce funciones con valores de nodo a partir de funciones con valores de centro .

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.