pdeval

Интерполяция численного решения УЧП

Описание

пример

[u,dudx] = pdeval(m,xmesh,usol,xq) интерполирует численное решение, возвращаемое pdepe в новых точках запроса xq, и возвращает интерполированные значения решения u и их частную производную dudx. The m, xmesh, и usol аргументы используются повторно из предыдущего вызова в pdepe:

  • Численное решение, произведенное sol = pdepe(m,@pdefun,@pdeic,@pdebc,xmesh,tspan) использует симметрию координат m и пространственный mesh xmesh чтобы вернуть 3-D матрицу значений решения sol. Повторно используйте m и xmesh входы, используемые для вычисления решения при вызове pdeval.

  • Входной вектор usol = sol(i,:,k) - значение компонента k решения во время tspan(i). Когда существует только один компонент решения, usol - строка, извлеченная из матрицы решения usol = sol(i,:).

Примеры

свернуть все

Использование pdepe решить дифференциальное уравнение с частными производными, а затем использовать pdeval оценить решение в дополнительных точках.

Решение УЧП

Использование pdepe чтобы решить pdex1 пример задачи. Можно вводить edit pdex1 чтобы увидеть более подробную информацию о проблеме или см. pdepe для получения дополнительной информации о процессе решения УЧП. Необходимые функции для решения pdex1 задача включены в конце этого примера в качестве локальных функций.

m = 0;
x = linspace(0,1,20);
t = linspace(0,2,5);
sol = pdepe(m,@pdex1pde,@pdex1ic,@pdex1bc,x,t);

Интерполяция решения

Решение sol сгенерирован pdepe использует 20 точек для x, равномерно расположенные между 0 и 1. Создайте вектор точек запроса, которые расположены посередине между точками, используемыми pdepe.

xq = x;
xq(1:end-1) = xq(1:end-1) + diff(xq)./2;

Использование pdeval для интерполяции решения в точках запроса. Поскольку существует только один компонент решения, можно извлечь строку из sol для работы с, такими как sol(2,:).

[u,dudx] = pdeval(m,x,sol(2,:),xq);

Постройте график решения, вычисленного pdepe, а также интерполированное решение и его частная производная, вычисленная pdeval.

plot(x,sol(2,:),'r*')
hold on
plot(xq,u,'-o')
plot(xq,dudx,'.')
hold off
legend('PDEPE Solution', 'PDEVAL Interpolation', 'PDEVAL Partial Derivative')

Figure contains an axes. The axes contains 3 objects of type line. These objects represent PDEPE Solution, PDEVAL Interpolation, PDEVAL Partial Derivative.

Локальные функции

Здесь перечислены локальные вспомогательные функции, которые решатель PDE pdepe вызывается для вычисления решения.

function [c,f,s] = pdex1pde(x,t,u,DuDx)
c = pi^2;
f = DuDx;
s = 0;
end
% ------------------------------------------------------
function u0 = pdex1ic(x)
u0 = sin(pi*x);
end
% ------------------------------------------------------
function [pl,ql,pr,qr] = pdex1bc(xl,ul,xr,ur,t)
pl = ul;
ql = 0;
pr = pi * exp(-t);
qr = 1;
end

Входные параметры

свернуть все

Симметрия координат, используемая с pdepe, заданное как одно из значений в этой таблице. Задайте ту же симметрию координат, которую вы использовали в начальном вызове, pdepe.

ЗначениеСимметрия

0

Плита/Декартовая

1

Цилиндрический

2

Сферический

Пространственный mesh, используемая с pdepe, заданный как вектор [x0 x1 ... xn] содержащие точки, в которых вычислялось численное решение. Задайте тот же пространственный mesh, которую вы использовали в начальном вызове, pdepe.

Типы данных: single | double

Извлеченный компонент решения, заданный как вектор значений, вычисленных pdepe для одного компонента решения в конкретный момент времени.

pdepe возвращает решение в трехмерный массив sol, где sol(i,j,k) аппроксимирует kпервый компонент решения u k оценивается в то время t(i) и пространственные xmesh(j) точек. Можно создать входной usol с командой usol = sol(i,:,k), где sol(i,:,k) - значение компонента k решения во время tspan(i), рассчитывается на всем пространственном mesh xmesh. Когда существует только один компонент решения, usol - строка, извлеченная из матрицы решения usol = sol(i,:).

Пример: usol = sol(10,:,2) извлекает второй компонент решения, рассчитанный во время tspan(10).

Пример: usol = sol(5,:) извлекает решение, рассчитанную в то время tspan(5).

Типы данных: single | double
Поддержка комплексного числа: Да

Точки запроса, заданные как скаляр или вектор x -кординатов. Точки, указанные в xq должен лежать внутри интервала [min(xmesh) max(xmesh)].

Как правило, точки в xq заданы между значениями в xmesh позволить pdeval для оценки решения, полученного pdepe на более мелком mesh.

Пример: xq = linspace(0,1,100) задает 100 равномерно разнесенных точек запроса между 0 и 1.

Типы данных: single | double
Поддержка комплексного числа: Да

Выходные аргументы

свернуть все

Интерполированное решение, возвращенный как вектор с таким же размером, как xq.

Частная производная интерполированного решения, возвращенная как вектор с таким же размером, как xq.

Совет

  • pdeval оценивает частную производную ux вместо потока f(x,t,u,ux). Несмотря на то, что поток непрерывен, частная производная может иметь переход на поверхности раздела материала.

Представлено до R2006a
Для просмотра документации необходимо авторизоваться на сайте