Это - решатель MATLAB® PDE.
Начальный Решатель для краевой задачи УЧП | Описание |
---|---|
Решите начальные краевые задачи для систем параболических и эллиптических УЧП в одной пространственной переменной и время. |
Функция помощника УЧП | Описание |
---|---|
Оцените числовое решение УЧП с помощью вывода |
pdepe
решает системы параболических и эллиптических УЧП в одной пространственной переменной x и время t формы
(1) |
УЧП содержат для t 0 ≤ t ≤ t f и a ≤ x ≤ b. Интервал [a, b] должен быть конечным. m может быть 0, 1, или 2, соответствуя плите, цилиндрической, или сферической симметрии, соответственно. Если m> 0, то a ≥ 0 должен также содержать.
В уравнении 1, f (x, t, u, ∂u / ∂ x) является термином потока, и s (x, t, u, ∂u / ∂ x) является характеристиками выброса. Термин потока должен зависеть от ∂u / ∂ x. Связь частных производных относительно времени ограничивается умножением диагональным матричным c (x, t, u, ∂u / ∂ x). Диагональные элементы этой матрицы являются или тождественно нулем или положительный. Элемент, который является тождественно нулевым, соответствует эллиптическому уравнению и в противном случае к параболическому уравнению. Должно быть по крайней мере одно параболическое уравнение. Элемент c, который соответствует параболическому уравнению, может исчезнуть в изолированных значениях x, если они - точки mesh. Разрывы в c и/или s из-за материальных интерфейсов разрешены при условии, что точка mesh помещается в каждый интерфейс.
В начальное время t = t 0, для всего x компоненты решения удовлетворяют начальные условия формы
(2) |
На контуре x = a или x = b, для всего t компоненты решения удовлетворяют граничное условие формы
(3) |
q (x, t) является диагональной матрицей с элементами, которые являются или тождественно нулем или никогда не обнуляют. Обратите внимание на то, что граничные условия выражаются с точки зрения f, а не частной производной u относительно x ∂u / ∂ x. Кроме того, этих двух коэффициентов только p может зависеть от u.
Решатель УЧП MATLAB, pdepe
, решает начальные краевые задачи для систем параболических и эллиптических УЧП в одной пространственной переменной x и время t. В системе должно быть по крайней мере одно параболическое уравнение.
Решатель pdepe
преобразовывает УЧП в ОДУ с помощью точной пространственной дискретизации второго порядка на основе фиксированного набора заданных пользователями узлов. Метод дискретизации описан в [1]. Интегрирование времени сделано с ode15s
. Решатель pdepe
использует возможности ode15s
для решения дифференциально-алгебраических уравнений, которые возникают, когда уравнение 1 содержит эллиптические уравнения, и для обработки Якобианов с заданным шаблоном разреженности. ode15s
изменяет и временной шаг и формулу динамически.
После дискретизации эллиптические уравнения дают начало алгебраическим уравнениям. Если элементы вектора начальных условий, которые соответствуют эллиптическим уравнениям, не “сопоставимы” с дискретизацией, pdepe
пытается настроить их прежде, чем начать интегрирование времени. Поэтому решение, возвращенное в течение начального времени, может иметь ошибку дискретизации, сопоставимую с этим в любое другое время. Если mesh прекрасна достаточно, pdepe
может найти сопоставимые начальные условия близко к данным единицам. Если pdepe
отображает сообщение, что он испытывает затруднения при нахождении сопоставимых начальных условий, попытайтесь совершенствовать mesh. Никакая корректировка не необходима для элементов вектора начальных условий, которые соответствуют параболическим уравнениям.
Базовый синтаксис решателя:
sol = pdepe(m,pdefun,icfun,bcfun,xmesh,tspan)
Данные соответствия к терминам, использованным в Задачах с начальными значениями.
Входные параметры
| Задает симметрию проблемы. |
| Функция, которая задает компоненты УЧП. Это вычисляет условия c, f и s в уравнении 1, и имеет форму [c,f,s] = pdefun(x,t,u,dudx) где |
| Функция, которая оценивает начальные условия. Это имеет форму u = icfun(x) Когда названо аргументом |
| Функция, которая оценивает условия p и q граничных условий. Это имеет форму [pl,ql,pr,qr] = bcfun(xl,ul,xr,ur,t) где |
| Вектор [ Приближение второго порядка к решению сделано на mesh, заданной в Элементы |
| Вектор [
Элементы |
Выходным аргументом sol
является 3D массив, такой что
sol
(:
, :
, k
) аппроксимирует k
компонента решения u.
sol
(i
, :
, k
) аппроксимирует k
компонента решения во время, которое tspan
(i
) и mesh указывает xmesh(:)
.
sol
(i,j,k
) аппроксимирует k
компонента решения во время, которое tspan
(i
) и mesh указывает xmesh(j)
.
Для большего количества усовершенствованных приложений можно также задать как опции решателя входных параметров и дополнительные параметры, которые передаются функциям УЧП.
| Структура дополнительных параметров, которые изменяют свойства интегрирования по умолчанию. Это - седьмой входной параметр. sol = pdepe(m,pdefun,icfun,bcfun,... xmesh,tspan,options) См. Опции Интегратора для получения дополнительной информации. |
Свойства интегрирования по умолчанию в решателе УЧП MATLAB выбраны, чтобы решить типичные проблемы. В некоторых случаях можно улучшать производительность решателя путем переопределения этих значений по умолчанию. Вы делаете это путем предоставления pdepe
одни или несколько значений свойств в структуре опций.
sol = pdepe(m,pdefun,icfun,bcfun,xmesh,tspan,options)
Используйте odeset
, чтобы создать структуру опций. Только те опции базового решателя ОДУ, показанного в следующей таблице, доступны для pdepe
. Значения по умолчанию, полученные, бросая входной параметр options
, являются обычно удовлетворительными.
Свойства УЧП
Категория свойств | PropertyName |
---|---|
Контроль ошибок |
|
Неродной размер |
|
Решение уравнения. Этот пример иллюстрирует прямую формулировку, решение и графический вывод решения одного УЧП
Это уравнение содержит через определенный интервал 0 ≤ x ≤ 1 в течение многих времен t ≥ 0. В t = 0, решение удовлетворяет начальное условие
В x = 0 и x = 1, решение удовлетворяет граничные условия
Файл, pdex1.m
, содержит полный код для этого примера. Это содержит все необходимые функции, закодированные как локальные функции. Чтобы видеть код в редакторе, введите edit pdex1
в командной строке. Чтобы запустить его, введите pdex1
в командной строке. Смотрите Синтаксис Решателя УЧП для получения дополнительной информации.
Перепишите УЧП. Напишите УЧП в форме
Это - форма, показанная в уравнении 1 и ожидаемый pdepe
. Смотрите Задачи с начальными значениями для получения дополнительной информации. В данном примере получившееся уравнение
с параметром m = 0 и условия
Закодируйте УЧП. Если вы переписываете УЧП в форме, показанной выше (уравнение 1), и идентифицируете условия, можно закодировать УЧП в функции, которую может использовать pdepe
. Функция должна иметь форму
[c,f,s] = pdefun(x,t,u,dudx)
где c
, f
и s
соответствуют c, f и условиям s. Код ниже вычисляет c
, f
и s
для проблемы в качестве примера.
function [c,f,s] = pdex1pde(x,t,u,DuDx) c = pi^2; f = DuDx; s = 0;
Закодируйте функцию начальных условий. Необходимо закодировать начальные условия в функции формы
u = icfun(x)
Код ниже представляет начальные условия в функциональном pdex1ic
.
function u0 = pdex1ic(x) u0 = sin(pi*x);
Закодируйте функцию граничных условий. Необходимо также закодировать граничные условия в функции формы
[pl,ql,pr,qr] = bcfun(xl,ul,xr,ur,t)
Граничные условия, написанные в той же форме как уравнение 3,
и
Код ниже оценивает компоненты p (x, t, u) и q (x, t) граничных условий в функциональном pdex1bc
.
function [pl,ql,pr,qr] = pdex1bc(xl,ul,xr,ur,t) pl = ul; ql = 0; pr = pi * exp(-t); qr = 1;
В функциональном pdex1bc
pl
и ql
соответствуют левым граничным условиям (x = 0), и pr
и qr
соответствуют правильному граничному условию (x = 1).
Выберите точки mesh для решения. Прежде чем вы будете использовать решатель УЧП MATLAB, необходимо задать точки mesh (t, x), в котором вы хотите, чтобы pdepe
оценил решение. Задайте точки как векторы t
и x
.
t
векторов и x
играют различные роли в решателе (см. Решатель УЧП). В частности, стоимость и точность решения зависят строго от длины векторного x
. Однако вычисление намного менее чувствительно к значениям в векторном t
.
Этот пример запрашивает решение на mesh, произведенной 20 равномерно распределенными точками из пространственного интервала [0,1] и пять значений t
от временного интервала [0,2].
x = linspace(0,1,20); t = linspace(0,2,5);
Примените решатель УЧП. Пример вызывает pdepe
с m = 0
, функции pdex1pde
, pdex1ic
, и pdex1bc
и mesh, заданная x
и t
, в котором pdepe
должен оценить решение. Функция pdepe
возвращает числовое решение в 3D массиве sol
, где sol(i,j,k)
аппроксимирует k
th компонент решения, u k, оцененный в t(i)
и x(j)
.
m = 0; sol = pdepe(m,@pdex1pde,@pdex1ic,@pdex1bc,x,t);
Этот пример использует @
, чтобы передать pdex1pde
, pdex1ic
и pdex1bc
как указатели на функцию к pdepe
.
См. Указатели на функции для получения дополнительной информации об указателях на функцию.
Просмотрите результаты. Завершите пример путем отображения результатов:
Извлеките и отобразите первый компонент решения. В этом примере решение u имеет только один компонент, но в иллюстративных целях, пример “извлекает” его от 3D массива. Объемная поверхностная диаграмма показывает поведение решения.
u = sol(:,:,1); surf(x,t,u) title('Numerical solution computed with 20 mesh points') xlabel('Distance x') ylabel('Time t')
Отобразите профиль решений в t f, окончательное значение t. В этом примере, t f = t = 2.
figure plot(x,u(end,:)) title('Solution at t = 2') xlabel('Distance x') ylabel('u(x,2)')
Оценка Решения. После получения и графического вывода решения выше, вы можете интересоваться профилем решений для особого значения t
или изменений времени решения в конкретной точке x
. k
th столбец u(:,k)
(решения, извлеченного на шаге 7), содержит историю времени решения в x(k)
. j
th строка u(j,:)
содержит профиль решений в t(j)
.
Используя векторы x
и u(j,:)
и помощник функционируют pdeval
, можно оценить решение u
и его производная ∂u / ∂ x в любом наборе точек xout
[uout,DuoutDx] = pdeval(m,x,u(j,:),xout)
Пример pdex3
использует pdeval
, чтобы оценить производную решения в xout = 0
. Смотрите pdeval
для деталей.
Этот пример иллюстрирует решение системы дифференциальных уравнений с частными производными. Проблема взята из электродинамики. Это имеет пограничные слои в обоих концах интервала, и решение изменяется быстро для маленького t.
УЧП
где F (y) = exp (5.73y) – exp (–11.46y). Уравнения содержат через определенный интервал 0 ≤ x ≤ 1 в течение многих времен t ≥ 0.
Решение u удовлетворяет начальные условия
и граничные условия
Файл, pdex4.m
, содержит полный код для этого примера. Это содержит все необходимые функции, закодированные как локальные функции. Чтобы видеть код в редакторе, введите edit pdex4
в командной строке. Чтобы запустить его, введите pdex4
в командной строке.
Перепишите УЧП. В форме, ожидаемой pdepe
, уравнения
Граничные условия на частных производных u должны быть записаны с точки зрения потока. В форме, ожидаемой pdepe
, левое граничное условие
и правильное граничное условие
Закодируйте УЧП. После того, как вы переписываете УЧП в форме, показанной выше, можно закодировать его как функцию, которую может использовать pdepe
. Функция должна иметь форму
[c,f,s] = pdefun(x,t,u,dudx)
где c
, f
и s
соответствуют c, f и условиям s в уравнении 1.
function [c,f,s] = pdex4pde(x,t,u,DuDx) c = [1; 1]; f = [0.024; 0.17] .* DuDx; y = u(1) - u(2); F = exp(5.73*y)-exp(-11.47*y); s = [-F; F];
Закодируйте функцию начальных условий. Функция начальных условий должна иметь форму
u = icfun(x)
Код ниже представляет начальные условия в функциональном pdex4ic
.
function u0 = pdex4ic(x); u0 = [1; 0];
Закодируйте функцию граничных условий. Функции граничных условий должны иметь форму
[pl,ql,pr,qr] = bcfun(xl,ul,xr,ur,t)
Код ниже оценивает компоненты p (x, t, u) и q (x, t) (уравнение 3) граничных условий в функциональном pdex4bc
.
function [pl,ql,pr,qr] = pdex4bc(xl,ul,xr,ur,t) pl = [0; ul(2)]; ql = [1; 0]; pr = [ur(1)-1; 0]; qr = [0; 1];
Выберите точки mesh для решения. Решение изменяется быстро для маленького t. Программа выбирает размер шага вовремя, чтобы разрешить это резкое изменение, но видеть, что это поведение в графиках, чтобы вывести времена должно быть выбрано соответственно. Существуют пограничные слои в решении в обоих концах [0,1], таким образом, точки mesh должны быть помещены туда, чтобы разрешить эти резкие изменения. Часто некоторое экспериментирование необходимо, чтобы выбрать mesh, которая показывает поведение решения.
x = [0 0.005 0.01 0.05 0.1 0.2 0.5 0.7 0.9 0.95 0.99 0.995 1]; t = [0 0.005 0.01 0.05 0.1 0.5 1 1.5 2];
Примените решатель УЧП. Пример вызывает pdepe
с m = 0
, функции pdex4pde
, pdex4ic
, и pdex4bc
и mesh, заданная x и t, в котором pdepe
должен оценить решение. Функция pdepe
возвращает числовое решение в 3D массиве sol
, где sol(i,j,k)
аппроксимирует k
th компонент решения, μ k, оцененного в t(i)
и x(j)
.
m = 0; sol = pdepe(m,@pdex4pde,@pdex4ic,@pdex4bc,x,t);
Просмотрите результаты. Объемные поверхностные диаграммы показывают поведение компонентов решения.
u1 = sol(:,:,1); u2 = sol(:,:,2); figure surf(x,t,u1) title('u1(x,t)') xlabel('Distance x') ylabel('Time t')
figure surf(x,t,u2) title('u2(x,t)') xlabel('Distance x') ylabel('Time t')
Следующие дополнительные примеры доступны. Ввод
edit examplename
просмотреть код и
examplename
запускать пример.
Имя в качестве примера | Описание |
---|---|
| Простой УЧП, который иллюстрирует прямую формулировку, вычисление и графический вывод решения |
| Проблема, которая включает разрывы |
| Проблема, которая требует вычислительных значений частной производной |
| Система двух УЧП, решение которых имеет пограничные слои и в концах интервала и изменяется быстро для маленького t. |
| Система УЧП со ступенчатыми функциями как начальные условия |
[1] Skeel, R. D. и М. Берзиньш, "Метод для Пространственной Дискретизации Параболических уравнений в Одной Пространственной переменной", SIAM Journal на Научном и Статистическом Вычислении, Издании 11, 1990, стр 1-32.