Écriture de la matrice des différences finies de l'équation de Poisson avec les conditions aux limites de Neumann

15

Je suis intéressé à résoudre l'équation de Poisson en utilisant l'approche des différences finies. Je voudrais mieux comprendre comment écrire l'équation matricielle avec les conditions aux limites de Neumann. Quelqu'un pourrait-il revoir ce qui suit, est-ce exact?

La matrice des différences finies

L'équation de Poisson,

2u(X)X2=(X)

peut être approximée par une équation matricielle à différence finie,

1(ΔX)2Mu^=^

est un n × n matrice et u et d sont 1 × n vecteurs (colonne),Mn×nu^^1×n

Matrice de différences finies de l'équation de Poisson

Ajout d'une condition aux limites Neumann

Une condition aux limites de Neumann impose un flux connu à la frontière (ici, nous l'appliquons sur le côté gauche où la frontière est à ),X=0

écrivant cette condition aux limites comme une différence finie centrée,

u(X=0)X=σ

Erreur dans l'équation. NB. À l'origine, j'ai fait une erreur ici, j'ai signé une erreur et je n'ai pas divisé par 2. Ce qui suit a été corrigé.

u2-u02ΔX=σ

Notez l'introduction d'un point de maillage en dehors du domaine d'origine ( ). Ce terme peut être éliminé en introduisant la deuxième équation, u 0 - 2 u 1 + u 2u0

u0-2u1+u2(ΔX)2=1

L'équation ne contient plus d'informations en raison de l'introduction du nouveau point de maillage. Il nous permet d'écrire la dérivée double de comme frontière en termes de u 0 en utilisant une différence finie centrée.u1u0

La partie dont je ne suis pas sûr

La combinaison de ces deux équations peut être éliminée. Pour montrer le fonctionnement, réorganisons d'abord l'inconnu,u0

u0=-2σΔX+u2u0=(ΔX)21+2u1-u2

Ensuite, ils sont définis égaux et réorganisés dans la forme,

u2-u1(ΔX)2=12+σΔX

u(ΔX)2

Enfin, en utilisant cette équation comme première ligne de la matrice,

Équation de Poisson avec une condition aux limites de Neumann sur le côté gauche (corrigée)

Quelques dernières réflexions,

  1. Cette matrice finale est-elle correcte?
  2. Aurais-je pu utiliser une meilleure approche?
  3. Existe-t-il un moyen standard d'écrire cette matrice?
boyfarrell
la source
2
2ΔXu0=-σΔX+u2
3
Ceci est très bien réglé dans le texte de différence finie de LeVeque , chapitre 2.
David Ketcheson
1
Ces problèmes sont également bien expliqués dans scientificpython.net/1/post/2013/01/…
Evgeni Sergeev
pourriez-vous s'il vous plaît voir ce scicomp.stackexchange.com/questions/14306/…
usumdelphini

Réponses:

1

u0

Prenez du recul et réfléchissez au problème pendant une seconde. La spécification d'une équation de Laplace indique fondamentalement que chaque point est la moyenne de ses voisins. Ceci est généralement visualisé comme une feuille de caoutchouc et m'aide à penser à ces choses. (Poisson est similaire avec des points plus ou moins extensibles)

Lorsque vous spécifiez la valeur de la surface de la solution sur les bords les plus externes, vous "épinglez" la feuille dans l'espace à ces points. Lorsque vous spécifiez la feuille par sa dérivée sur les bords, il existe un certain nombre de solutions qui remplissent l'équation de translation de la feuille dans l'espace tout en conservant la même forme réelle et donc des dérivés.

u0=0

meawoppl
la source
1
Donc, généralement l'équation de Poisson est résolue avec au moins une condition aux limites de Dirichlet, de sorte qu'une solution unique puisse être trouvée? Je suppose qu'il est logique que les conditions aux limites de Neumann n'aient de sens que lorsque la source et les puits sont inclus, sinon il existe un nombre infini de solutions. Cependant, si je prends l'équation de diffusion à la place, des conditions aux limites de Neumann sont parfois nécessaires pour la physique correcte (par exemple, aucun flux de la quantité à travers une frontière lorsque du / dx = 0). C'est ce qui m'intéresse vraiment. La méthode ci-dessus est-elle la bonne approche pour appliquer les BC Neumann?
boyfarrell
1
Vous ne pouvez pas appliquer les BC Neumann sur tous les côtés de votre papier. Si vous le faites, vous n'aurez pas de solution unique. Il doit être fixé au moins sur un côté.
vanCompute
@meawoppl: Comment spécifier le point fixe tout en faisant une résolution directe de matrice?
jvriesem
En règle générale, il suffit d'attribuer un point à une constante, en définissant un seul terme d'affilée sur 1, le reste zéro et une valeur sur le RHS qui correspond au plan de solution que vous souhaitez voir.
meawoppl