exponenta event banner

pdeval

Интерполяция числового решения PDE

Синтаксис

Описание

пример

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

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

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

Примеры

свернуть все

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

Решение PDE

Использовать pdepe для решения pdex1 пример проблемы. Можно ввести edit pdex1 для просмотра более подробной информации о проблеме или см. pdepe для получения подробной информации о процессе решения PDE. Необходимые функции для решения 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

Сферический

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

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

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

pdepe возвращает решение в массиве 3-D sol, где sol(i,j,k) аппроксимирует k-й компонент раствора u k, оцененный в момент времени t(i) и пространственная точка xmesh(j). Можно создать входные данные usol с помощью команды usol = sol(i,:,k), где sol(i,:,k) - значение компонента k раствора в момент времени tspan(i), оценивается по всей пространственной сетке 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 на более тонкой сетке.

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

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

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

свернуть все

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

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

Совет

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

Представлен до R2006a