В partial differential equation (УЧП) функция, решаемая для, зависит от нескольких переменных, и дифференциальное уравнение может включать частные производные, взятые относительно каждой из переменных. Дифференциальные уравнения с частными производными полезны для моделирования волн, теплового потока, жидкой дисперсии и других явлений с пространственным поведением, которое изменяется в зависимости от времени.
Решатель MATLAB® PDE pdepe
решает начальные краевые задачи для систем УЧП в одной пространственной переменной x и время t. Можно думать о них как об ОДУ одной переменной, которые также изменяются относительно времени.
pdepe
использует неофициальную классификацию в 1D уравнениях, которые она решает:
Уравнениями с производной времени является parabolic. Примером является уравнение тепла .
Уравнениями без производной времени является elliptic. Примером является уравнение Лапласа .
pdepe
требует по крайней мере одного параболического уравнения в системе. Другими словами, по крайней мере одно уравнение в системе должно включать производную времени.
pdepe
также решает определенные 2D и 3-D задачи, которые уменьшают до 1D проблем из-за угловой симметрии (см. описание аргумента для симметрии постоянный m
для получения дополнительной информации.
Partial Differential Equation Toolbox™ расширяет эту функциональность к обобщенным проблемам в 2D и 3-D с Дирихле и Неймановыми граничными условиями.
1D УЧП включает функциональный u (x, t), который зависит от времени t и одна пространственная переменная x. Решатель УЧП MATLAB pdepe
решает системы 1D параболических и эллиптических УЧП формы
Уравнение имеет свойства:
УЧП содержат для t 0 ≤ t ≤ t f и a ≤ x ≤ b.
Пространственный интервал [a, b] должен быть конечным.
m
может быть 0, 1, или 2, соответствуя плите, цилиндрической, или сферической симметрии, соответственно. Если m> 0, то a ≥ 0 должен также содержать.
Коэффициент термин потока и характеристики выброса.
Термин потока должен зависеть от частной производной ∂u / ∂ x.
Связь частных производных относительно времени ограничивается умножением диагональной матрицей . Диагональными элементами этой матрицы является или нуль или положительный. Элемент, который является нулем, соответствует эллиптическому уравнению, и любой другой элемент соответствует параболическому уравнению. Должно быть по крайней мере одно параболическое уравнение. Элемент c, который соответствует параболическому уравнению, может исчезнуть в изолированных значениях x, если они - точки mesh (точки, где решение оценено). Разрывы в c и s из-за материальных интерфейсов разрешены при условии, что точка mesh помещается в каждый интерфейс.
Решить УЧП с pdepe
, необходимо задать коэффициенты уравнения для c, f, и s, начальных условий, поведения решения на контурах и сетки точек, чтобы оценить решение на. Вызов функции sol = pdepe(m,pdefun,icfun,bcfun,xmesh,tspan)
использование эта информация, чтобы вычислить решение на заданную mesh:
Вместе, xmesh
и tspan
векторы формируют 2D сетку что pdepe
оценивает решение на.
Необходимо выразить УЧП в стандартной форме, ожидаемой pdepe
. Написанный в этой форме, можно прочитать значения коэффициентов c, f и s.
В MATLAB можно закодировать уравнения с функцией формы
function [c,f,s] = pdefun(x,t,u,dudx) c = 1; f = dudx; s = 0; end
pdefun
определяет уравнение . Если существует несколько уравнений, то c, f и s являются векторами с каждым элементом, соответствующим одному уравнению.В начальное время t = t 0, для всего x, компоненты решения удовлетворяют начальным условиям формы
В MATLAB можно закодировать начальные условия с функцией формы
function u0 = icfun(x) u0 = 1; end
u0 = 1
задает начальное условие u 0 (x, t 0) = 1. Если существует несколько уравнений, то u0
вектор с каждым элементом, задающим начальное условие одного уравнения.За пределами x = a или x = b, для всего t, компоненты решения удовлетворяют граничным условиям формы
q (x, t) является диагональной матрицей с элементами, которые являются или нулем или никогда не обнуляют. Обратите внимание на то, что граничные условия выражаются в терминах потока f, а не частная производная u относительно x. Кроме того, этих двух коэффициентов p (x, t, u) и q (x, t), только p может зависеть от u.
В MATLAB можно закодировать граничные условия с функцией формы
function [pL,qL,pR,qR] = bcfun(xL,uL,xR,uR,t) pL = uL; qL = 0; pR = uR - 1; qR = 0; end
pL
и qL
коэффициенты для левого контура, в то время как pR
и qR
коэффициенты для правильного контура. В этом случае bcfun
задает граничные условияЕсли существует несколько уравнений, то выходные параметры pL
, qL
, pR
, и qR
векторы с каждым элементом, задающим граничное условие одного уравнения.
Свойства интегрирования по умолчанию в решателе УЧП MATLAB выбраны, чтобы решить типичные проблемы. В некоторых случаях можно улучшать производительность решателя путем переопределения этих значений по умолчанию. Для этого используйте odeset
создать options
структура. Затем передайте структуру pdepe
как последний входной параметр:
sol = pdepe(m,pdefun,icfun,bcfun,xmesh,tspan,options)
Из опций для базового решателя ОДУ ode15s
, только показанные в следующей таблице доступны для pdepe
.
Категория | Имя опции |
---|---|
Контроль ошибок | |
Неродной размер | |
Регистрация событий |
После того, как вы решаете уравнение с pdepe
, MATLAB возвращает решение как трехмерный массив sol
, где sol(i,j,k)
содержит k
компонент th решения оценен в t(i)
и x(j)
. В общем случае можно извлечь k
компонент решения th с командой u = sol(:,:,k)
.
Mesh времени, которую вы задаете, используется просто в выходных целях и не влияет на внутренние временные шаги, взятые решателем. Однако пространственная mesh, которую вы задаете, может влиять на качество и скорость решения. После решения уравнения можно использовать pdeval
оценивать структуру решения, возвращенную pdepe
с различной пространственной mesh.
Примером параболического УЧП является уравнение тепла в одной размерности:
Это уравнение описывает рассеяние тепла для и . Цель состоит в том, чтобы решить для температуры . Температура является первоначально ненулевой константой, таким образом, начальное условие
Кроме того, температура является нулем на левом контуре, и ненулевой на правильном контуре, таким образом, граничные условия
Чтобы решить это уравнение в MATLAB, необходимо закодировать уравнение, начальные условия и граничные условия, затем выбрать подходящую mesh решения прежде, чем вызвать решатель pdepe
. Или можно включать необходимые функции как локальные функции в конце файла, (как в этом примере) или сохранить их как отдельные, именованные файлы в директории на пути MATLAB.
Уравнение кода
Прежде чем можно будет закодировать уравнение, необходимо убедиться что именно в форме pdepe
решатель ожидает:
В этой форме уравнение тепла
Таким образом, значения коэффициентов следующие:
Значение передается в качестве аргумента pdepe
, в то время как другие коэффициенты закодированы в функции для уравнения, которое является
function [c,f,s] = heatpde(x,t,u,dudx) c = 1; f = dudx; s = 0; end
(Примечание: Все функции включены как локальные функции в конце примера.)
Условие начальной буквы кода
Начальная функция условия для уравнения тепла присваивает постоянное значение для . Эта функция должна принять вход для , даже если это не использовано.
function u0 = heatic(x) u0 = 0.5; end
Граничные условия кода
Стандартная форма для граничных условий ожидается pdepe
решатель
Написанный в этой форме, граничные условия для этой проблемы
Так значения для и
.
Соответствующая функция затем
function [pl,ql,pr,qr] = heatbc(xl,ul,xr,ur,t) pl = ul; ql = 0; pr = ur - 1; qr = 0; end
Выберите Solution Mesh
Используйте пространственную сетку 20 точек и сетку времени 30 точек. Поскольку решение быстро достигает устойчивого состояния, моменты времени рядом более близко расположены вместе, чтобы получить это поведение в выходе.
L = 1; x = linspace(0,L,20); t = [linspace(0,0.05,20), linspace(0.5,5,10)];
Решите уравнение
Наконец, решите уравнение с помощью симметрии , уравнение УЧП, начальное условие, граничные условия и сетки для и .
m = 0; sol = pdepe(m,@heatpde,@heatic,@heatbc,x,t);
Постройте решение
Используйте imagesc
визуализировать матрицу решения.
colormap hot imagesc(x,t,sol) colorbar xlabel('Distance x','interpreter','latex') ylabel('Time t','interpreter','latex') title('Heat Equation for $0 \le x \le 1$ and $0 \le t \le 5$','interpreter','latex')
Локальные функции
function [c,f,s] = heatpde(x,t,u,dudx) c = 1; f = dudx; s = 0; end function u0 = heatic(x) u0 = 0.5; end function [pl,ql,pr,qr] = heatbc(xl,ul,xr,ur,t) pl = ul; ql = 0; pr = ur - 1; qr = 0; end
Несколько доступных файлов в качестве примера служат превосходными начальными точками для наиболее распространенных 1D проблем УЧП. Чтобы исследовать и запустить примеры, используйте приложение Дифференциальных уравнений В качестве примера. Чтобы запустить это приложение, ввести
odeexamples
Чтобы открыть отдельный файл для редактирования, ввести
edit exampleFileName.m
Чтобы запустить пример, ввести
exampleFileName
Эта таблица содержит список доступных файлов УЧП в качестве примера.
Файл в качестве примера | Описание | Ссылка в качестве примера |
---|---|---|
| Простой УЧП, который иллюстрирует формулировку, расчет и графический вывод решения. | |
| Проблема, которая включает разрывы. | |
| Проблема, которая требует вычисления значений частной производной. | |
| Система двух УЧП, решение которых имеет пограничные слои и в концах интервала и изменяется быстро для маленького t. | |
| Система УЧП со ступенчатыми функциями как начальные условия. | Решите систему УЧП с начальными ступенчатыми функциями условия |
[1] Skeel, R. D. и М. Берзиньш, "Метод для Пространственной Дискретизации Параболических уравнений в Одной Пространственной переменной", SIAM Journal на Научном и Статистическом Вычислении, Издании 11, 1990, стр 1–32.
bvp4c
| ode45
| odeset
| pdepe
| pdeval