Я розмістив те саме питання на центральній службі MATLAB , і Білл Грін люб’язно дав відповідь .
Я коротко повідомляю і поширюю це, щоб воно могло бути корисним іншим.
Рішення Білла:
Ось один із способів створити такий сюжет. Припустимо, у вас є точкова матриця, створена сіткою PDE Toolbox, p та вектором рішення, u. Функція нижче створить графік цього рішення вздовж лінії, визначеної місцями x та y двох кінцевих точок. Мій приклад - рішення на одиничному квадраті, і я хочу графік уздовж лінії (0, .5) до (1, .5). Я хочу включити до сюжету 25 пунктів. Як бачите, справжню роботу виконує TriScatteredInterpфункція з ядра 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
Я хотів би ще зауважити, що попередня функція дозволяє побудувати рішення uабо його функції f(u), якщо uце визначено на сітчастих вузлах (як це зазвичай відбувається для наближених до FEM рішень).
Якщо потрібно сюжетні розділи функцій , визначених на сітчастих центрах (наприклад , функції grad u), вона може використовувати заздалегідь функцію , pdeprtniяка виробляє вузол багатозначних-функцію з центру багатозначних-функцій .