Matlab Pde Toolbox: traccia la soluzione su una linea o su una sotto-cartella


9

Sto usando la casella degli strumenti Matlab pde per risolvere una certa equazione ellittica in 2D.

La soluzione va bene, anche se ho bisogno di tracciarla su una data linea, cioè tagliare una fetta planare dalla mesh 3D che rappresenta la soluzione.

Non riesco a capire un modo che coinvolga in modo intelligente le funzioni della casella degli strumenti (cioè non comportano un'interpolazione di basso livello sulla mesh triangolare).

Qualsiasi aiuto apprezzato.

Risposte:


3

Ho pubblicato la stessa domanda su MATLAB central e Bill Greene ha gentilmente fornito una risposta .

Riporto brevemente ed estenderlo in modo che possa essere utile ad altri.

Soluzione di Bill:

Ecco un modo per creare una trama del genere. Supponiamo di avere la matrice di punti creata dal mesher di PDE Toolbox, p e un vettore di soluzione, u. La funzione seguente creerà un grafico di quella soluzione lungo una linea definita dalle posizioni xey dei due punti finali. Il mio esempio è per una soluzione su un quadrato di unità e voglio un diagramma lungo la linea (0, 0,5) a (1, 0,5). Voglio includere 25 punti nella trama. Come puoi vedere, il vero lavoro viene svolto dalla TriScatteredInterpfunzione del core 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

Vorrei inoltre sottolineare che la funzione precedente consente di tracciare la soluzione uo le sue funzioni f(u), a condizione che usia definita su nodi mesh (come in genere accade per le soluzioni approssimative FEM).

Se uno ha bisogno di tracciare sezioni di funzioni definite su centri mesh (ad es. Funzioni di grad u), può usare in anticipo la funzione pdeprtniche produce funzioni con valori di nodo fuori da funzioni con valore di centro .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.