La simulation en Physique


On se retrouve aujourd'hui pour un article d'un genre nouveau qui pourrait d'autant plus vous intéresser si vous êtes étudiant en physique ou simplement passionné d'informatique. Lorsque l'on vous parle de physique, vous avez très certainement en tête quelques bon bouquins de physique théorique ou des traités connus comme "Principia" de Newton ou même "De l'électrodynamique des corps en mouvement" d'Einstein ou encore des physiciens théoriciens connus comme Stephen Hawking ou même Richard Feynman dont les travaux théoriques sont reconnus mondialement... . Et vous vous dites qu'il faut probablement avoir une quantité faramineuse de connaissances en mathématiques pour pouvoir modéliser de façon précise les nombreux phénomènes physiques qui nous entourent et que les mouvements en apparence simple sont en réalité très dur à représenter analytiquement.

Et si je vous disais que non ? Ou plutôt qu'il existe de très nombreux moyens de contourner (plus ou moins) les mathématiques en physique en donnant tout le travail difficile à son ordinateur ? Et bien sachez que c'est une pratique extrêmement courante en physique, lorsqu'il n'est pas possible de résoudre une équation ou un système compliqué qui modélise un phénomène physique complexe, on entre tout ça dans un programme et l'ordinateur fait tout le reste 🙂

Je vais vous montrer comment on fait ça avec un exemple simple : un objet lancé en l'air. Pour ceux qui ont déjà fait de la physique au lycée (du moins en Terminale S) vous savez qu'il est facile de trouver les équations du mouvement d'un objet lancé en l'air alors pour vous montrer toute la puissance de l'utilisation de l'ordinateur on va s'amuser à ajouter tout un tas de paramètres qui rendraient le calcul plutôt compliqué 😉

Comment l'ordinateur travaille t-il ?

Avant de passer aux simulations, il faut que je vous explique deux ou trois choses à propos de votre ordinateur.

Tout d'abord, il faut savoir que l'ordinateur ne sait pas faire des mathématiques comme nous savons le faire. Tout ce qu'il sait faire, c'est additionner, soustraire, diviser et multiplier des nombres. Il faut alors créer des algorithmes qui utilisent les opérations de base de l'ordinateur pour en effectuer des plus complexes. Ensuite, il faut savoir que votre ordinateur ne travaille qu'en faisant des incrémentations d'une certaine valeur, en gros, il ne connait pas l'ensemble réel mais il connait les entiers naturels. C'est en utilisant toutes ces caractéristiques que l'on peut faire tout un tas de choses sympathiques 😉

Un exemple simple : Le lancer

L'objectif de cet article est en fait d'introduire cette nouvelle catégorie dédiée à la modélisation et la simulation en physique. Dans la suite suivront des exemples de phénomènes beaucoup plus compliqués mais pour commencer on va partir sur un phénomène simple : La trajectoire d'un objet ponctuel lancé avec une certaine vitesse initiale.

La théorie :

Considérons un objet de masse $m$ qui serait lancé depuis le sol (x = 0,y = 0) avec une certaine vitesse initiale donnée par \vec{v} = (v_{0x}, v_{0y})v_{0x} = v_0 cos(\alpha) et  v_{0y} = v_0 sin(\alpha). v_0 est la vitesse initiale de l'objet (m.s^-1) et \alpha est l'angle de lancement exprimé en radians.

Comme dans tout problème de dynamique Newtonienne, on écrit les équations du mouvement :

m\vec{a} = m\vec{g}

\begin{pmatrix}\frac{d^2x}{dt^2}\\\frac{d^2y}{dt^2}\end{pmatrix} = \begin{pmatrix}0\\-g\end{pmatrix}

Finalement, la résolution de ce système nous donne :

  • x(t)=v_{0x}t+x_0
  • y(t)=-\frac{1}{2}gt^2+v_{0y}t+y_0

On peut alors en déduire l'ensemble des caractéristiques du mouvement comme la trajectoire par exemple. Dans ce cas de figure, les équations du mouvement sont très simples à résoudre mais il existe des situations ou elles sont quasiment impossible à résoudre analytiquement, voyons donc comment on peut s'y prendre par ordinateur.

Résolution par ordinateur :

Afin de résoudre les équations du mouvement par ordinateur, il faut les discrétiser. C'est à dire que l'on va demander à l'ordinateur de les résoudre pas à pas. Pour cela il faut exprimer sous forme discrète l'expression de l'accélération. Vous vous rappelez probablement de la définition mathématique d'une dérivée en un point :

  • Soit f(x) une fonction définie sur \mathbb{R}, on définit la dérivée de f en x_0 \in \mathbb{R} de la façon suivante :

f'(x_0) = \lim\limits_{x-x_0 \rightarrow 0}\frac{f(x+x_0)-f(x)}{x-x_0}

Si l'on applique cette définition à x(t) et y(t) au sens de la discrétisation on obtient :

  • \frac{dx}{dt}(t_0) = \frac{x(t-t_0)-x(t)}{t-t_0} et \frac{dy}{dt}(t_0) = \frac{y(t-t_0)-y(t)}{t-t_0}

En réitérant cette opération une seconde fois on obtient l'expression discrète de la dérivée seconde de x(t) et y(t) :

  • \frac{d^2x}{dt^2}(t_0)=\frac{x(t-2t_0)-2x(t-t_0)+x(t)}{(t-t_0)^2} et \frac{d^2y}{dt^2}(t_0)=\frac{y(t-2t_0)-2y(t-t_0)+y(t)}{(t-t_0)^2}

On peut pour faire plus simple réécrire ces expression en exprimant x et y non pas comme des fonctions mais comme des suites de nombres; cela revient à remplacer t par un indice i et t+t_0 devient i+1. Ces expressions seront utiles dans toute la suite de l'article :

  • La vitesse : v_{xi} = \frac{x_{i-1} - x_i}{\Delta t} et v_yi = \frac{y_{i-1} - y_i}{\Delta t}
  • L'accélération : a_{xi} = \frac{x_{i-2}-2x_{i-1}+x_i}{(\Delta t)^2} et a_yi = \frac{y_{i-2}-2y_{i-1}+y_i}{(\Delta t)^2}

Finalement, les équations du mouvement dans le cas d'un objet lancé en l'air donnent quelque chose de la forme suivante :

  • \frac{x_{i-2}-2x_{i-1}+x_i}{(\Delta t)^2} = 0 et  \frac{y_{i-2}-2y_{i-1}+y_i}{(\Delta t)^2} = -g g = 9.81 m.s^{-2} est l'accélération de la pesanteur.

Il nous suffit ensuite d'envoyer les instructions à l'ordinateur pour qu'il compile l'algorithme et nous renvoie le résultat. Voici ce que l'on obtient lorsqu'on lance un objet ponctuel avec une vitesse initiale v_0 = 5~m.s^{-1} et pour trois angles différents par rapport à la verticale :

Lancer de projectile

On voit que lorsqu'on lance un objet à 5 mètres par seconde avec un angle compris entre 30° et 60°, il tombe toujours à 2.25m et 2.7m du lieu de lancement. Mais 5 mètres par seconde ce n'est pas beaucoup, voyons ce qu'il se passe avec une balle de pistolet lancée à 300 mètres par seconde.

figure_2

Quelque soit l'angle avec lequel la balle est tirée, elle retombe tout de même extrêmement loin. Pratiquement 9 km si elle est tirée avec un angle de 45° ! Ceci est assez peu réaliste, et pour cause, on a pas pris en compte les frottements de l'air. En réalité, nos équations du mouvement ont plutôt la forme suivante :

\vec{a} = \vec{g} - \frac{\alpha}{m}\vec{v}^2\frac{\vec{v}}{v}

\alpha est le coefficient de frottement de l'air, m la masse de notre objet et \vec{v} sa vitesse. De la même manière que tout à l'heure on peut discrétiser notre système d'équation pour les rendre lisibles par l'ordinateur :

  • \frac{x_{i-2}-2x_{i-1}+x_i}{(\Delta t)^2} + \frac{\alpha}{m}\left(\frac{x_{i-1} - x_i}{\Delta t}\right)^2 = 0
  • \frac{y_{i-2}-2y_{i-1}+y_i}{(\Delta t)^2} + \frac{\alpha}{m}\left(\frac{y_{i-1} - y_i}{\Delta t}\right)^2 = -g
  • Ici \alpha = 3.42\times10^{-6}~SI. J'ai obtenu cette valeur du coefficient de frottement après avoir fait de grosses approximations car le problème est bien plus compliqué qu'il n'en à l'air. Et on supposera que la balle pèse 50 grammes.

Les résultats obtenus sont étonnants !

figure_3

 

On constate que la balle tombe à seulement quelques dizaines de mètres de notre point de départ alors que sans air, elle tombait à plusieurs kilomètres ! Ce résultat ne semble pas extrêmement réaliste non plus, on dirait que les frottements de l'air sont beaucoup trop intenses, le terme de frottement -\alpha\vec{v}^2\frac{\vec{v}}{v} semble inapproprié, on peut essayer de le remplacer par un terme de frottement plus "doux" : -\alpha\vec{v}. On obtient alors le résultat suivant.

figure_4

 

On voit que les trajectoires sont quasiment les mêmes que dans le cas ou il n'y a pas d'air. Effectivement le coefficient de frottement de l'air est très faible \approx 10^{-6} SI et n'a pratiquement aucune influence lorsque la force de frottement est exprimée comme -\alpha\vec{v} car la vitesse de l'objet est trop élevée. C'est donc le premier modèle de frottement qui est le plus réaliste.

Et si maintenant on s'amusait à ajouter du vent horizontalement dans le sens opposé au déplacement de notre objet ? Pour cela il nous faut ajouter un terme de "forçage" dans l'équation associée aux abscisses. Cependant pour faire simple, on va dire que la force exercée par le vent sur l'objet est la même quelque soit la vitesse la forme ou la masse de celui-ci. On écrira le système :

 \vec{a} = \vec{g} - \frac{\alpha}{m}\vec{v}-\vec{f}\vec{f}\vec{e_y} = 0

Finalement pour des vents de force 1, 5, 7 et 15 Newtons respectivement et sachant que la balle pesant 50 grammes a été lancée avec un angle de 45° à une vitesse V_0 = 3m.s^{-1} on obtient les trajectoires suivantes qui semblent assez réalistes.

figure_5

L'objet est lancé vers la droite, on reconnait donc les différentes trajectoires associées à des vents de force différents. On voit même que dans le cas d'une force de 15 N, la balle rebrousse chemin emportée par le vent.

 

On a vu de nombreuses manières différentes de modéliser un phénomène physique. En vous écrivant cet article je me suis rendu compte à quel point il est difficile de modéliser précisément un phénomène. Lorsqu'on va chercher un peu plus loin dans la précision, on se rend vite compte que les modèles enseignés à l'école ne sont valables que dans des cas bien précis. Les deux expressions de la force de frottement de l'air contre la balle sont de grossières approximations qui dépendent de nombreux paramètres différents à commencer par la vitesse, la forme géométrique, la composition matérielle, et accessoirement la température. L'expression que je vous ai donné de la force exercée par le vent sur mon mobile est également très approximative car elle dépend non-seulement des mêmes paramètres que ceux dont dépend le frottement mais en plus le vent n'est pas forcément constant dans le temps et dans l'espace, et en plus d’entraîner des mouvements de translation de notre objet, le vent peut aussi entraîner des mouvements de rotation qui ont pour conséquence que l'objet ralentira plus vite dans l'air.

Tout ça pour vous dire que modéliser un phénomène est quelque chose de très compliqué et que du point de vue analytique les mathématiques sont à la ramasse. On utilise en très grande majorité les ordinateur pour modéliser ce genre de phénomènes complexes.

Nous voici à la fin de cet article, dans la suite je publierai de nouveaux articles afin de modéliser d'autres phénomènes physiques plus ou moins connus et qui sont pas si évidents à analyser mathématiquement. Sur ceux j'espère que cet article vous a plu, si c'est le cas dites le moi, n'hésitez pas à commenter et à partager cet article autour de vous.


Voici un fichier zip contenant tous les programmes ayant servi aux simulations de cet article : Lancer de projectile. Ceux-ci fonctionnent sous le langage Python 3.4 et vous pouvez les exécuter avec la distribution Spyder ou Anaconda par exemple.

Je vous met juste en annexe la simulation du lancer d'une balle dans l'air avec une force de frottement de la forme -\alpha\vec{v} dont le coefficient de frottement est augmenté à 1 (\alpha = 1). Effectivement, sur les simulations d'au-dessus mettant en jeu de l'air, on ne voit pas réellement l'effet de la viscosité de l'air sur la trajectoire de la balle.

figure_6_airdouxCe graphique vous semble probablement plus familier 😉


A propos Loann Brahimi

Je suis étudiant en Master Cosmos, Champs et Particules à l'université de Montpellier. Ce blog est une manière de transmettre ma passion, une façon d'aider ceux qui voudraient faire de la physique leur gagne pain et de créer un engouement autour de cette science mal comprise.

Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *