pdeval

Интерполируйте числовое решение УЧП

Описание

пример

[u,dudx] = pdeval(m,xmesh,usol,xq) интерполирует числовое решение, возвращенное pdepe в новых точках запроса xq, и возвращает интерполированные значения решения u и их частная производная dudx. 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')

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

Перечисленный здесь локальные функции помощника что решатель УЧП 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компонент th решения 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