Matlab Pde Toolbox: Drukuj rozwiązanie na linii lub w podfolderze


9

Korzystam z przybornika pde Matlab, aby rozwiązać pewne równanie eliptyczne w 2D.

Rozwiązanie jest w porządku, chociaż muszę narysować go wzdłuż danej linii, tj. Wyciąć płaski plan z siatki 3D reprezentującej rozwiązanie.

Nie jestem w stanie wymyślić, w jaki sposób inteligentnie wykorzystują funkcje przybornika (tj. Nie wymagają interpolacji niskiego poziomu na siatce trójkątnej).

Każda pomoc doceniona.

Odpowiedzi:


3

Zadałem to samo pytanie w centrali MATLAB , a Bill Greene uprzejmie udzielił odpowiedzi .

Krótko to raportuję i rozszerzam, aby przydał się innym.

Rozwiązanie Billa:

Oto jeden ze sposobów stworzenia takiej fabuły. Załóżmy, że macierz punktów utworzono za pomocą siatki PDE Toolbox p oraz wektora rozwiązania u. Poniższa funkcja utworzy wykres tego rozwiązania wzdłuż linii zdefiniowanej przez lokalizacje xiy dwóch punktów końcowych. Mój przykład dotyczy rozwiązania na kwadracie jednostkowym i chcę wykres wzdłuż linii (0, .5) do (1, .5). Chcę zawrzeć 25 punktów w fabule. Jak widać, prawdziwa praca jest wykonywana przez TriScatteredInterpfunkcję z podstawowego MATLAB-a.

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

Chciałbym ponadto zauważyć, że poprzednia funkcja umożliwia wykreślenie rozwiązania ulub jego funkcji f(u), pod warunkiem, że ujest zdefiniowana w węzłach siatki (jak to zwykle bywa w przypadku rozwiązań przybliżonych MES).

Jeśli trzeba wykreślić sekcje funkcji zdefiniowanych na środkach siatki (np. Funkcje grad u), może ona z góry użyć funkcji, pdeprtniktóra wytwarza funkcje o wartościach węzłowych z funkcji o wartościach środkowych .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.