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