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


15

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

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

Уравнение Пуассона,

2U(Икс)Икс2знак равноd(Икс)

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

1(ΔИкс)2MU^знак равноd^

где - матрица а и - (столбец) векторов, п × п у d 1 × NMN×NU^d^1×N

Разностная матрица уравнения Пуассона

Добавление граничного условия Неймана

Граничное условие Неймана обеспечивает известный поток на границе (здесь мы применяем его в левой части, где граница находится в ),Иксзнак равно0

U(Иксзнак равно0)Иксзнак равноσ
записывающий это граничное условие как центрированную конечную разность,

Ошибка в уравнении. NB. Я изначально допустил ошибку здесь, подписал ошибку и не разделил на 2. Следующее было исправлено.

U2-U02ΔИксзнак равноσ

Обратите внимание на введение точки сетки за пределы исходного домена ( ). Этот член можно исключить, введя второе уравнение, u 0 - 2 u 1 + u 2U0

U0-2U1+U2(ΔИкс)2знак равноd1

Уравнение возникает из-за наличия большей информации из-за введения новой точки сетки. Это позволяет нам записать двойную производную как границу в терминах используя центральную разность.ты 0U1U0

Часть, в которой я не уверен

Комбинируя эти два уравнения, можно исключить. Чтобы показать работу, давайте сначала перестроим для неизвестного,U0

U0знак равно-2σΔИкс+U2U0знак равно(ΔИкс)2d1+2U1-U2

Далее они устанавливаются равными и переставляются в форму,

U2-U1(ΔИкс)2знак равноd12+σΔИкс

Я выбрал эту форму, потому что она такая же, как матричное уравнение выше. Обратите внимание, что члены делятся на как здесь, так и в исходном уравнении. Это правильный подход?( Δ х ) 2U(ΔИкс)2

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

Уравнение Пуассона с граничным условием Неймана в левой части (исправлено)

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

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

2
В ваших вычислениях есть две ошибки: конечная разность по центру должна делиться на . Во-вторых, также неверно, потому что минус должен быть плюсом. 2ΔИксU0знак равно-σΔИкс+U2
vanCompute


1
Эти вопросы также хорошо объяснены в Scientificpython.net/1/post/2013/01/…
Евгений Сергеев

не могли бы вы посмотреть этот scicomp.stackexchange.com/questions/14306/…
usumdelphini

Ответы:



1

U0

Отойдите назад и подумайте о проблеме на секунду. Определение уравнения Лапласа в основном гласит, что каждая точка является средним числом ее соседей. Это обычно визуализируется как резиновый лист, и помогает мне думать об этих вещах. (Пуассон похож на более или менее эластичные точки)

Когда вы указываете значение поверхности решения на самых внешних краях, вы «закрепляете» лист в пространстве в этих точках. Когда вы указываете лист по его производной по краям, существует любое количество решений, которые удовлетворяют уравнению, которое переводит лист в пространство, сохраняя при этом ту же фактическую форму и, следовательно, производные.

U0знак равно0


1
Таким образом, в общем случае уравнение Пуассона решается хотя бы с одним граничным условием Дирихле, чтобы найти единственное решение? Я думаю, что имеет смысл, что граничные условия Неймана имеют смысл только тогда, когда источник и стоки включены, в противном случае существует бесконечное количество решений. Однако, если я вместо этого возьму уравнение диффузии, иногда для правильной физики требуются граничные условия Неймана (например, отсутствие потока величины через границу, когда du / dx = 0). Это то, что меня действительно интересует. Является ли вышеуказанный метод правильным подходом для применения Неймана BC?
boyfarrell

1
Вы не можете применять БК Neumann на всех сторонах вашей бумаги. Если вы это сделаете, у вас не будет уникального решения. Он должен быть закреплен как минимум с одной стороны.
vanCompute

@meawoppl: Как определить фиксированную точку, а также решить матрицу напрямую?
jvriesem

Как правило, просто присваивая точку константе, устанавливая только один член в строке равным 1, остальные ноль и значение в RHS, которое соответствует плоскости решения, которую вы хотите увидеть.
Meawoppl
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.