F

MENUCours Outils et Méthodes pour la Physique

En physique, il arrive souvent que l'on veuille représenter la distribution d'un champ vectoriel ; le champ d'écoulement en dynamique des fluides ou le champ magnétique créé par un circuit électrique en sont des exemples. La ligne de champ est un concept intéressant à ce titre. Ce tutoriel explique comment tracer numériquement ces lignes de champs connaissant l'expression du champ en chaque point de l'espace.

Concept de ligne de champ

Pour simplifier notre propos on se restreint à l'étude d'un champ bidimensionnel, l'extension à trois dimensions étant évidente. On étudie un champ vectoriel $\overrightarrow{V}(\text{M})$ dont on connaît l'expression en coordonnées cartésiennes par exemple.

Définition

Ligne de champ

Une ligne de champ est une courbe orientée telle qu'en chaque point M de la courbe, la tangente à la courbe a la même direction et le même sens que le vecteur $\overrightarrow{V}(\text{M})$ en ce point.

Mathématiquement, l'équation d'une ligne de champ peut être vue comme la trajectoire d'une particule dont la vitesse ne dépendrait que de sa position via la relation $\overrightarrow{V}(\text{M})$. En d'autres termes, c'est la solution de l'équation différentielle \[ \frac{\mathrm{d}x}{\mathrm{d}t}=V_x(x,y) \quad\text{et}\quad \frac{\mathrm{d}y}{\mathrm{d}t}=V_y(x,y) \]

Champ normalisé

Une ligne de champ ne donne aucune information sur la distribution de l'intensité du champ Notez cependant qu'un ensemble de lignes de champ permet d'obtenir une information sur la distribution de l'intensité si le champ est à divergence nulle. En effet, dans ce cas le flux du champ à travers un tube de courant se conserve de sorte qu'un resserrement des lignes de champ traduit une augmentation de l'intensité.. En effet, si l'on multiplie le champ par n'importe quel nombre non nul, on change son intensité mais l'on ne modifie pas la ligne de champ. Mathématiquement cela est évident puisque la pente d'une ligne de champ du vecteur $\overrightarrow{V}$ en un point M est donnée par \[ \frac{\mathrm{d}y}{\mathrm{d}x}=\frac{V_y(\text{M})}{V_x(\text{M})} \] pente qui ne change pas si l'on multiplie $V_x$ et $V_y$ par le même facteur non nul.

Cette propriété est intéressante car cela signifie que l'on peut remplacer le champ étudié par le champ normalisé \[ \overrightarrow{U}=\frac{\overrightarrow{V}}{\left\|\overrightarrow{V}\right\|} \] sans que cela ne modifie la structure des lignes de champs.

Mais pourquoi étudier le champ normalisé, me direz-vous ?

Aussi on a toujours intérêt à simplifier l'expression du champ vectoriel et l'utilisation du champ normalisé est pratique. Voyons cela.

Approche numérique

Méthode simple

Le plus naturel consiste à partir d'un point, que nous noterons M0 puis à avancer le long de la ligne de champ par petit pas de longueur \(h\). Si l'on note \(\theta_0\) l'angle que fait le champ vectoriel en M0, on avancera de \(h\cos\theta_0\) suivant l'axe des abscisses et de \(h\sin\theta_0\) suivant l'axe des ordonnées. Nous voilà arrivé en M1 ! Une fois ce déplacement effectué, on recalcule la valeur du champ en M1, et l'on réitère l'opération jusqu'à ce que l'on décide d'arrêter de tracer.

Algorithme 1

  1. Initialisation du point de départ : x = x0 et y = y0.
  2. Initialisation du pas h.
  3. Définition des composantes du champ vectoriel normalisé Ux(x,y) et Uy(x,y).
  4. Définition de la fonction TEST(x,y) qui renvoie la valeur VRAIE tant que l'on veut continuer de tracer la ligne de champ. Par exemple on peut décider d'arrêter le tracé quand le champ V(x,y) (le champ non normalisé) sort de l'intervalle [10-3, 103].
  5. Tant que TEST(x,y)=VRAIE faire
    • Tracer un segment entre (x,y) et (x+h Ux(x,y),y+h Uy(x,y))
    • x=x+h Ux(x,y)
    • y=y+h Uy(x,y)

La simulation ci-dessous illustre cette méthode sur un champ vectoriel dont on connaît l'expression analytique des lignes de champ Il s'agit de branches d'hyperbole.. En cliquant on fait apparaître une ligne de champ calculée à partir de l'algorithme 1 pour un pas de 20 pixels.

Simulation

Built with Processing

Illustration de l'algorithme 1 pour un pas de 20 pixels. Les lignes oranges correspondent aux lignes de champ théoriques.


Réinitialisation
Your browser does not support the canvas element.

Version améliorée

Comme on peut le voir sur la simulation précédente, la méthode n'est pas très précise si le pas est trop grand. L'algorithme 1 est en réalité ni plus ni moins que la méthode d'Euler appliquée au tracé des lignes de champ ; il présente donc les mêmes défauts[2]. Si l'on veut conserver cette méthode il faut alors diminuer le pas avec l'inconvénient d'augmenter le temps de calcul.

Il y a une autre solution : employer une méthode de discrétisation plus fiable. En effet, la méthode précédente est peu précise, car lorsque l'on déplace le point M de M0 vers M1, la valeur de l'angle du champ vectoriel n'est pas le même suivant qu'on se place en M0 ou en M1. Si l'on veut que le segment tracé soit tangent au champ vectoriel, il serait préférable de calculer cet angle au milieu du segment, entre M0 et M1. C'est le principe de l'algorithme 2.

Algorithme 2

  1. Initialisation du point de départ : x = x0 et y = y0.
  2. Initialisation du pas h.
  3. Définition des composantes du champ vectoriel unitaire Ux(x,y) et Uy(x,y).
  4. Définition de la fonction TEST(x,y) qui renvoie la valeur VRAIE tant que l'on veut continuer de tracer la ligne de champ.
  5. Tant que TEST(x,y)=VRAIE faire
    • k = Ux(x,y)
    • l = Uy(x,y)
    • m = Ux(x+hk/2,y+hl/2)
    • n = Uy(x+hk/2,y+hl/2)
    • Tracer un segment entre (x,y) et (x+h m,y+h n)
    • x=x+h m
    • y=y+h n

Cette méthode est en fait une méthode de Runge-Kutta d'ordre deux appliquée au tracé des lignes de champ. Comme on peut le voir sur la simulation ci dessous, elle est beaucoup plus précise que la première.

Simulation

Built with Processing


Réinitialisation
Your browser does not support the canvas element.
Illustration de l'algorithme 2 pour un pas de 20 pixels.

Voilà, vous savez maintenant comment tracer une ligne de champ ! La bonne nouvelle c'est que cela permet également de tracer des courbes de niveau[3]...

Vous aimez ?

Pour en savoir plus...

  1. J. Roussel Les erreurs numériques (2016-06) FEMTO, la physique enseignée http://femto-physique.fr/omp/erreurs_numeriques.php
  2. J. Roussel La méthode d'Euler (2015-06) FEMTO, la physique enseignée http://femto-physique.fr/omp/euler.php
  3. J. Roussel Comment tracer une courbe de niveau ? (2016-06) FEMTO, la physique enseignée http://femto-physique.fr/omp/tracer_courbe_de_niveau.php