Запис рівняння Пуассона з кінцевою різницею матрицею з граничними умовами Неймана


15

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

Матриця з кінцевою різницею

Рівняння Пуассона,

∂2у(х)∂х2=г(х)

можна наблизити за допомогою матричного рівняння з кінцевою різницею,

1(Δx)2M∙u^=d^

де - матриця а та - (стовпець) векторів, п × п у d 1 × NMn×нu^d^1×н

Кінцево-різницька матриця рівняння Пуассона

Додавання граничної умови Неймана

Гранична умова Неймана примушує потік знань на межі (тут ми застосовуємо його в лівій частині, де межа знаходиться при ),x=0

∂у(х=0)∂х=σ
записує цю граничну умову як центральну кінцеву різницю,

Помилка рівняння. NB. Я спочатку помилився тут, підписав помилку і не ділив на 2. Наступне було виправлено.

у2-у02Δх=σ

Зверніть увагу на введення точки сітки поза вихідним доменом ( ). Цей термін можна усунути, ввівши друге рівняння, u 0 - 2 u 1 + u 2у0

у0-2у1+у2(Δх)2=г1

Рівняння має більшу інформацію через введення нової точки сітки. Це дозволяє нам записати подвійну похідну як границю з точки зору використовуючи центральну кінцеву різницю.u 0у1у0

Частина, в якій я не впевнений

Об'єднавши ці два рівняння можна усунути. Щоб показати робочий, давайте спочатку заздалегідь влаштуємо невідоме,у0

u0=−2σΔx+u2u0=(Δx)2d1+2u1−u2

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

u2−u1(Δx)2=d12+σΔx

Я вибрав цю форму, тому що вона є такою ж формою, як матричне рівняння вище. Зауважте, що терміни діляться на і тут, і в початковому рівнянні. Це правильний підхід?( Δ x ) 2u(Δx)2

Нарешті, використовуючи це рівняння як перший рядок матриці,

Рівняння Пуассона з крайовою умовою Неймана з лівої сторони (виправлено)

Кінцеві думки,

  1. Чи правильна ця заключна матриця?
  2. Чи міг би я скористатися кращим підходом?
  3. Чи існує стандартний спосіб написання цієї матриці?

2
У вашому обчисленні є дві помилки: кінцева різниця по центру має бути поділена на . По-друге, також помиляється, оскільки мінус повинен бути плюсом. 2Δху0=-σΔх+у2
— vanCompute


1
Ці питання також добре пояснені в sciencepython.net/1/post/2013/01/…
— Євгеній Сергєєв,

Ви можете побачити цей scicomp.stackexchange.com/questions/14306/…
— usumdelphini

Відповіді:



1

у0

Відступіться і подумайте про проблему на секунду. Вказуючи рівняння Лапласа, принципово сказано, що кожна точка є середнім значенням її сусідів. Зазвичай це візуалізується як гумовий лист, і допомагає мені думати про ці речі. (Пуассон схожий з більш / менш еластичними точками)

Коли ви визначаєте значення поверхні розчину в самих крайніх краях, ви "забиваєте" лист в просторі в цих точках. Коли ви визначаєте аркуш по його похідній на краях, існує будь-яка кількість рішень, які виконують рівняння, яке переводить аркуш у простір, зберігаючи однакову фактичну форму і, отже, похідні.

у0=0


1
Отже, як правило, рівняння Пуассона вирішується принаймні однією граничною умовою Діріхле, щоб було знайдено унікальне рішення? Я думаю, має сенс, що граничні умови Неймана мають сенс лише тоді, коли включені джерело і раковини, інакше існує нескінченна кількість рішень. Однак якщо я замість цього візьму рівняння дифузії, для правильної фізики потрібні граничні умови Неймана (наприклад, відсутність потоку величини через межу, коли du ​​/ dx = 0). Це мене справді цікавить. Чи є вищевказаний метод правильним підходом до застосування BC Neumann?
— boyfarrell

1
Не можна застосовувати BC Neumann з усіх боків вашої паперової сторони. Якщо ви це зробите, у вас не буде унікального рішення. Його потрібно приколоти хоча б на одну сторону.
— vanCompute

@meawoppl: Як можна вказати фіксовану точку, роблячи також вирішення прямої матриці?
— jvriesem

Зазвичай просто присвоєння точки константі шляхом встановлення лише одного члена підряд 1, решта нуля та значення на РЧС, що відповідає площині рішення, яку ви хочете бачити.
— meawoppl
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.