Решение уравнения пуассона методом конечных разностей

Решение уравнения пуассона методом конечных разностей

Глава 5. Решение дифференциальных уравнений

5.9 Решение эллиптических уравнений (Лапласа и Пуассона)

С помощью двух встроенных функций, multigrid и relax , можно решить простейшие случаи уравнения Пуассона. Это уравнение очень часто используется в технике, например, для описания полей напряжений и деформаций в плоской задаче теории упругости, в задачах теплопроводности, гидроаэродинамики, электростатики. В MathCAD для численного решения уравнения Пуассона используется метод конечных разностей.

Уравнение Пуассона имеет вид

.

Если правая часть уравнения равна нулю, такое уравнение называется уравнением Лапласа

.

На квадратной области уравнение Пуассона представляется в виде

.

Численное решение ищется в MathCAD только на квадратной области, состоящей из ( n +1) ( n +1) точек. Поэтому граничные условия должны быть определены пользователем для всех четырех сторон квадрата. Самый простой ( и наиболее часто используемый) вариант – это нулевые граничные условия (уравнение Лапласа). В таком случае можно использовать функцию multigrid .

Обращение к функции:

Multigrid ( M , n cycle ),

где M – квадратная матрица размером 1 2 n , которая содержит значения правой части уравнения Пуассона в соответствующей точке квадратной области; n cycle – число циклов на каждом уровне итерации функции multigrid . Значение n cycle =2 обычно дает хорошую аппроксимацию решения.

Пример использования функции multigrid приведен на рис. 5.21.

Обнуление предыдущих значений М

Обнуление матрицы правых частей уравнения

Три точечных источника

Значения правой части уравнения Пуассона

Рис. 5. 21 Решения уравнения Лапласа с помощью функции multigrid

Если граничные условия по сторонам квадрата ненулевые, необходимо использовать функцию relax .

Обращение к функции:

relax(a, b, c, d, f, u, rjac),

где a , b , c , d , e – квадратные матрицы одинакового размера, содержащие коэффициенты аппроксимирующего уравнения; f – квадратная матрица, содержащая значения правой части уравнения в каждой точке области, где ищется решение; u – квадратная матрица, содержащая граничные значения решения на границе квадратной области и начальное приближение для решения внутри области; rjac – спектральный радиус итераций Якоби. Это число между 0 и 1, которое управляет сходимостью процесса релаксации.

Использование этой функции требует глубокого знания метода конечных разностей для составления указанных матриц. Пример использования функции relax приведен на рис. 5.22 и 5.23.

Определим размеры сетки

Введем 5 квадратных матриц для коэффициентов a, b, c, d, e ,

входящих в сеточную аппроксимацию уравнения Пуассона

чем больше эти коэффициенты, тем меньше шаг решения,

тем точнее результат. Можно взять

Задает положение и интенсивность источника

Пусть во всех узлах значения правой части одинаковы

Граничные условия

на верхней границе

на нижней границе

по бокам

Поменяйте условия. Включите серые выражения.

Это аналог функции multigrid

Спектральный радиус Якоби r

Решение уравнения Пуассона

Рис. 5. 22 Решение уравнения Пуассона с помощью функции relax

Рис. 5. 23 Результаты решение уравнения Пуассона с помощью функции relax

Написание конечно-разностной матрицы уравнения Пуассона с граничными условиями Неймана

Я заинтересован в решении уравнения Пуассона с использованием метода конечных разностей. Я хотел бы лучше понять, как написать матричное уравнение с граничными условиями Неймана. Будет ли кто-то пересмотреть следующее, это правильно?

Конечно-разностная матрица

может быть аппроксимировано конечно-разностным матричным уравнением,

где — матрица а и — (столбец) векторов, п × п у 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

Наконец, используя это уравнение в качестве первого ряда матрицы,

Несколько заключительных мыслей,

  1. Является ли эта окончательная матрица правильной?
  2. Мог ли я использовать лучший подход?
  3. Есть ли стандартный способ написания этой матрицы?

Я думаю, что вы на правильном пути. Если вы исправите свои ошибки, это будет очень похоже на 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