F

MENUCours D'introduction à l'analyse numérique

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 . 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

La simulation ci-dessous illustre cette méthode sur un champ vectoriel dont on connaît l'expression analytique des . 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.
Cliquer pour tracer une ligne de champ.

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

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

Cliquer pour tracer une ligne de champ.

Built with Processing

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]...

Pour en savoir plus...

  1. J. Roussel Les erreurs numériques[en ligne], 2016. Disponible sur femto-physique.fr
  2. J. Roussel La méthode d'Euler[en ligne], 2015. Disponible sur femto-physique.fr
  3. J. Roussel Comment tracer une courbe de niveau ?[en ligne], 2016. Disponible sur femto-physique.fr