Lycée Newton - PT EM - AN2 - Equations de Poisson et de Laplace - Résolution numérique
Pour trouver les solutions de l’équations aux dérivées partielles, on applique la méthode des différences finies qui
consiste à faire une approximation des dérivées en utilisant des différences finies, c’est à dire par exemple :
∂V
∂x=1
δVx+δ
2,y−Vx−δ
2
δdoit etre le plus petit possible pour que l’approximation soit exacte car en procédant de cette manière il se crée une
erreur qui va se propager et s’amplifier à chaque nouvelle itération. Pour une dérivée seconde l’expression devient :
∂2
∂x2=1
δ2V(x+δ, y)+V(x−δ, y)−2V(x,y)
Exprimons donc le potentiel V(x,y) à partir de l’équation de Laplace :
.1
δ2V(x+δ, y)+V(x−δ, y)+V(x,y+δ)+V(x,y−δ)−4V(x,y)=0
V(x,y)=V(x+δ, y)+V(x−δ, y)+V(x,y+δ)+V(x,y−δ)
4
Il faut donc trouver une fonction dont la valeur en chaque point M(x,y) est égale à la moyenne de la valeur de
cette fonction sur les 4 points les plus proches :
– le point de droite A(x+δ, y) ;
– le point de gauche C(x−δ, y) ;
– le point du haut D(x,y+δ) ;
– le point du bas B(x,y−δ).
L’astuce pour trouver cette fonction est de partir d’une fonction quelconque, on part des points aux conditions
limites, c’est à dire les points dont le potentiel est déjà connu. Puis on remplace les valeurs prisent par chacun des
points du plan de sorte que la valeur de chaques points Mdu plan soit égale à la moyenne des valeurs des quatres
points voisins A,B,Cet D. En répétant cette opération un très grand nombre de fois sur tout les points du plan, on
atteint une assez bonne approximation du potentiel en chaque point.
Dans ce qui suit, on appliquera l’algorithme à l’équation de Poisson, pour laquelle le potentiel est donné par
l’équation :
V(x,y)=V(x+δ, y)+V(x−δ, y)+V(x,y+δ)+V(x,y−δ)+ρ(x,y)
ε0
4
2.2 Mise en œuvre
On a un tableau Vde taille N×Ndes potentiels et un tableau rho des charges. On a préalablement initialisé
les tableaux à 0 partout et placé des points chargés dans le tableau rho des charges. Par exemple pour une charge
centrée : on doit initialiser rho[N/2, N/2] = rho0.
Le programme présente ensuite les résultats en traçant les équipotentielles dans un graphique.
from numpy import *
import matplotlib
import matplotlib .pyplot as plt
L=2.1 # largeur
N=20 # nombre de points du maillage
h=L /(N -1) # pas (distance entre deux points du maillage)
# Creation de la matrice des charges en chaque point
Q=5.0 # charge totale
rho0 =Q/h**2 # charge en un point
rho = zeros (( N, N)) # matrice des charges n x n remplie de zeros
# Matrice initiale
V = zeros (( N,N ))
# Points ou placer les charges
# armatures chargees :
2014/2015 2/3