Численные методы решения уравнений эллиптического типа
Введение
Наиболее распространённым уравнением эллиптического типа является уравнение Пуассона.
К решению этого уравнения сводятся многие задачи математической физики, например задачи о стационарном распределении температуры в твердом теле, задачи диффузии, задачи о распределении электростатического поля в непроводящей среде при наличии электрических зарядов и многие другие.
Для решения эллиптических уравнений в случае нескольких измерений используют численные методы, позволяющие преобразовать дифференциальные уравнения или их системы в системы алгебраических уравнений. Точность решения определяется шагом координатной сетки, количеством итераций и разрядной сеткой компьютера [1]
Цель публикации получить решение уравнения Пуассона для граничных условий Дирихле и Неймана, исследовать сходимость релаксационного метода решения на примерах.
Уравнение Пуассона относится к уравнениям эллиптического типа и в одномерном случае имеет вид [1]:
(1)
где x – координата; u(x) – искомая функция; A(x), f(x) – некоторые непрерывные функции координаты.
Решим одномерное уравнение Пуассона для случая А = 1, которое при этом принимает вид:
(2)
Зададим на отрезке [xmin, xmax] равномерную координатную сетку с шагом ∆х:
(3)
Граничные условия первого рода (условия Дирихле) для рассматриваемой задачи могут быть представлены в виде:
(4)
где х1, xn – координаты граничных точек области [xmin, xmax]; g1, g2 – некоторые
константы.
Граничные условия второго рода (условия Неймана) для рассматриваемой задачи могут быть представлены в виде:
(5)
Проводя дискретизацию граничных условий Дирихле на равномерной координатной сетке (3) с использованием метода конечных разностей, получим:
(6)
где u1, un – значения функции u(x) в точках x1, xn соответственно.
Проводя дискретизацию граничных условий Неймана на сетке (3), получим:
(7)
Проводя дискретизацию уравнения (2) для внутренних точек сетки, получим:
(8)
где ui, fi – значения функций u(x), f(x) в точке сетки с координатой xi.
Таким образом, в результате дискретизации получим систему линейных алгебраических уравнений размерностью n, содержащую n – 2 уравнения вида (8) для внутренних точек области и уравнения (6) и (7) для двух граничных точек [1].
Ниже приведен листинг на Python численного решения уравнения (2) с граничными условиями (4) – (5) на координатной сетке (3).
Разработанная мною на Python программа удобна для анализа граничных условий.Приведенный алгоритм решения на Python использует функцию Numpy — u=linalg.solve(a,b.T).T для решения системы алгебраических уравнений, что повышает быстродействие при квадратной матрице . Однако при росте числа измерений необходимо переходить к использованию трех диагональной матрицы решение для которой усложняется даже для очень простой задачи, вот нашёл на форуме такой пример:
Программа численного решения на равномерной по каждому направлению сетки задачи Дирихле для уравнения конвекции-диффузии
(9)
Используем аппроксимации центральными разностями для конвективного слагаемого и итерационный метод релаксации.для зависимость скорости сходимости от параметра релаксации при численном решении задачи с /(х) = 1 и 6(х) = 0,10. В сеточной задаче:
(10)
Представим матрицу А в виде суммы диагональной, нижней треугольной и верхней треугольных матриц:
(10)
Метод релаксации соответствует использованию итерационного метода:
(11)
При \ говорят о верхней релаксации, при — о нижней релаксации.
На графике показана зависимость числа итераций от параметра релаксации для уравнения Пуассона (b(х) = 0) и уравнения конвекции-диффузии (b(х) = 10). Для сеточного уравнения Пуассона оптимальное значении параметра релаксации находится аналитически, а итерационный метод сходиться при .
- Приведено решение эллиптической задачи на Python с гибкой системой установки граничных условий
- Показано что метод релаксации имеет оптимальный диапазон () параметра релаксации.
Ссылки:
- Рындин Е.А. Методы решения задач математической физики. – Таганрог:
Изд-во ТРТУ, 2003. – 120 с. - Вабищевич П.Н.Численные методы: Вычислительный практикум. — М.: Книжный дом
«ЛИБРОКОМ», 2010. — 320 с.
Написание конечно-разностной матрицы уравнения Пуассона с граничными условиями Неймана
Я заинтересован в решении уравнения Пуассона с использованием метода конечных разностей. Я хотел бы лучше понять, как написать матричное уравнение с граничными условиями Неймана. Будет ли кто-то пересмотреть следующее, это правильно?
Конечно-разностная матрица
может быть аппроксимировано конечно-разностным матричным уравнением,
где — матрица а и — (столбец) векторов, п × п у d 1 × N M ‘ role=»presentation»> M n × n ‘ role=»presentation»> N × N u ^ ‘ role=»presentation»> U ^ d ^ ‘ role=»presentation»> d ^ 1 × n ‘ role=»presentation»> 1 × N
Добавление граничного условия Неймана
Граничное условие Неймана обеспечивает известный поток на границе (здесь мы применяем его в левой части, где граница находится в ), x = 0 ‘ role=»presentation»> Икс знак равно 0
NB. Я изначально допустил ошибку здесь, подписал ошибку и не разделил на 2. Следующее было исправлено.
Обратите внимание на введение точки сетки за пределы исходного домена ( ). Этот член можно исключить, введя второе уравнение, u 0 — 2 u 1 + u 2 u 0 ‘ role=»presentation»> U 0
Уравнение возникает из-за наличия большей информации из-за введения новой точки сетки. Это позволяет нам записать двойную производную как границу в терминах используя центральную разность. ты 0 u 1 ‘ role=»presentation»> U 1 u 0 ‘ role=»presentation»> U 0
Часть, в которой я не уверен
Комбинируя эти два уравнения, можно исключить. Чтобы показать работу, давайте сначала перестроим для неизвестного, u 0 ‘ role=»presentation»> U 0
Далее они устанавливаются равными и переставляются в форму,
Я выбрал эту форму, потому что она такая же, как матричное уравнение выше. Обратите внимание, что члены делятся на как здесь, так и в исходном уравнении. Это правильный подход? ( Δ х ) 2 u ‘ role=»presentation»> U ( Δ x ) 2 ‘ role=»presentation»> ( Δ Икс ) 2
Наконец, используя это уравнение в качестве первого ряда матрицы,
Несколько заключительных мыслей,
- Является ли эта окончательная матрица правильной?
- Мог ли я использовать лучший подход?
- Есть ли стандартный способ написания этой матрицы?
Я думаю, что вы на правильном пути. Если вы исправите свои ошибки, это будет очень похоже на http://www.math.toronto.edu/mpugh/Teaching/Mat1062/notes2.pdf .
u 0 ‘ role=»presentation»> U 0
Отойдите назад и подумайте о проблеме на секунду. Определение уравнения Лапласа в основном гласит, что каждая точка является средним числом ее соседей. Это обычно визуализируется как резиновый лист, и помогает мне думать об этих вещах. (Пуассон похож на более или менее эластичные точки)
Когда вы указываете значение поверхности решения на самых внешних краях, вы «закрепляете» лист в пространстве в этих точках. Когда вы указываете лист по его производной по краям, существует любое количество решений, которые удовлетворяют уравнению, которое переводит лист в пространство, сохраняя при этом ту же фактическую форму и, следовательно, производные.
u 0 = 0 ‘ role=»presentation»> U 0 знак равно 0
http://qastack.ru/scicomp/5355/writing-the-poisson-equation-finite-difference-matrix-with-neumann-boundary-cond