Функции > Решение и оптимизация > Решатели дифференциальных уравнений > Решатель дифференциальных уравнений в частных производных
  
Решатель дифференциальных уравнений в частных производных
numol(x_endpts, xpts, t_endpts, tpts, num_pde, num_pae, pde_func, pinit, bc_func)
Возвращает матрицу [xpts x tpts], содержащую решения одномерного дифференциального уравнения в частных производных (ДУЧП), в pde_func. Каждый столбец представляет решение в одномерном пространстве в одном интервале времени. Для системы уравнений решение по каждой функции дополняется горизонтально так, что матрица всегда имеет xpts строк и tpts * (num_pde + num_pae) столбцов. Решение находится с использованием численного метода линий.
Аргументы
x_endpts, t_endpts — двухэлементные векторы-столбцы, задающие действительные конечные точки областей интегрирования.
xpts, tpts — целые числа, соответствующие количеству точек в областях интегрирования, в которых требуется выполнять аппроксимацию решения.
num_pde, num_pae — целые числа, обозначающие соответственно количество дифференциальных и алгебраических уравнений в частных производных. Аргумент num_pde должен быть как минимум 1, num_pae может быть 0 или больше.
Функция pde_func является векторной функцией x, t, u, ux и uxx длины (num_pde + num_pae). Она содержит правые части дифференциальных и алгебраических уравнений в частных производных и предполагается, что все левые части равны ut. Предполагается, что решение, u, является вектором функций.
При работе с системой ДУЧП каждая переменная u в каждой строке pde_func определяется индексом с использованием оператора элемента в матрице, а также с использованием оператора индекса в имени переменной или функции. Например, u[0 обозначает первую функцию в системе, а ux[1 обозначает первую производную второй функции в системе.
pinit является векторной функцией x длины (num_pde + num_pae), содержащей начальные условия для всех функций системы.
bc_func является матрицей num_pde * 3, содержащей строки вида:
Для граничных условий Дирихле
[bc_left(t)
bc_right(t)
"D"]
или
Для граничных условий Неймана
[bc_left(t)
bc_right(t)
"N"]
В случае, когда ДУЧП для соответствующей строки содержит вторые частные производные, будут необходимы как левые, так и правые условия.
Если в некотором ДУЧП присутствуют только первые частные производные, то одна из двух граничных функций должна быть заменена на "NA", а последний элемент строки всегда содержит "D.".
Если в некотором уравнении системы нет частных производных, то эта строка в матрице будет игнорирована, и ее можно заполнить как ("NA" "NA" "D").
Дополнительная информация
Допускаются алгебраические ограничения, например: 0 = u2(x) + v2(x) − w(x) для всех x.
Для получения уникальных решений необходимо, чтобы число требуемых граничных функций было равно порядку пространственной производной для каждого ДУЧП.
С использованием функции numol можно решать только гиперболические и параболические ДУЧП. Для решения эллиптических уравнений, например уравнения Пуассона, используйте функцию relax или multigrid.