LyonHPC LyonHPC

Rappel de maths et physique

cloud
%matplotlib inline
import numpy as np
import sympy as sp
import matplotlib.pyplot as plt
from matplotlib import animation
from IPython.display import HTML,display
# rebuild fonts for xkcd
#import matplotlib
#matplotlib.font_manager._rebuild()

Rappels de mathématique

La simulation numérique fait souvent appel à une analyse du comportement local des fonctions. Pour cela on fait appel au calcul de dérivée, d’intégrale et de développement en série de Taylor.

Dérivée

La dérivée \(f(x)\) d’une fonction mesure son taux de variation $\( \frac{df}{dx}(x)=\lim_{\Delta x\rightarrow 0}\frac{f(x+\Delta x)-f(x)}{\Delta x} \leadsto \frac{df}{dx}(x)\approx \frac{\Delta f}{\Delta x} \mbox{ pour } \Delta x \mbox{ petit}\)$

run derivee.py
../_images/COURS_RAPPEL_4_0.png

Intégrale

L’intégrale (au sens de Riemann) entre a et b d’une fonction \(f(x)\) est une mesure de l’aire sous la courbe:

\[ I = \int_a^b f(x)\,dx = \mbox{ aire du domaine sous la courbe }\]

Cela permet de l’interpréter en terme de moyenne:

\[ \int_a^b f(x)\,dx = \overline{f} \times (b-a) \]

avec \(\overline{f}\) moyenne de f(x) entre a et b

run integrale.py
../_images/COURS_RAPPEL_6_0.png

Développement en série de Taylor

Soit \(f(x)\) une fonction régulière, on peut l’approcher par son développement en série de Taylor à l’ordre \(n\) au voisinage de \(x=0\) à partir des dérivées successives de \(f(x)\) en \(x=0\):

\[ f(x) \approx f(0) + x \left(\frac{df}{dx}\right)(0) + \frac{x^2}{2!} \left(\frac{d^2f}{dx^2}\right)(0) + \frac{x^3}{3!} \left(\frac{d^3f}{dx^3}\right)(0) + ... + \frac{x^{n-1}}{(n-1)!} \left(\frac{d^{n-1}f}{dx^{n-1}}\right)(0) + \mathcal{O}(x^n)\]

Exemple (calcul avec sympy)

approximation de la fonction \(f(x)=e^{sin x}\) au voisinage de \(x=0\) par des développements en série de Taylor d’orde 2, 3 et 5.

import scipy as sp
from taylor import *
sp.init_printing()
print("Pour la fonction f(x)"),
display(f)
print(u"Dvt en série à l'ordre 2 au voisinage de x=0")
display(fs2)
print(u"Dvt en série à l'ordre 3 au voisinage de x=0")
display(fs3)
print(u"Dvt en série à l'ordre 5 au voisinage de x=0")
display(fs5)
traceSerie()
Pour la fonction f(x)
../_images/COURS_RAPPEL_9_1.png
Dvt en série à l'ordre 2 au voisinage de x=0
../_images/COURS_RAPPEL_9_3.png
Dvt en série à l'ordre 3 au voisinage de x=0
../_images/COURS_RAPPEL_9_5.png
Dvt en série à l'ordre 5 au voisinage de x=0
../_images/COURS_RAPPEL_9_7.png ../_images/COURS_RAPPEL_9_8.png

Rappels de mécanique newtonienne

Mouvement d’un corps solide (Mécanique du point)

Principe fondamental de la dynamique (2ième loi de Newton)

Un corps de masse \(m\) et de vitesse \(\overrightarrow{v}\) dans un repère galiléen possède une quantité de mouvement \(\overrightarrow{q}=m\overrightarrow{v}\), qui caractérise son inertie.

Pour faire varier sa quantité de mouvement (en intensité et/ou en direction), il faut lui appliquer des forces \(\overrightarrow{F_i}\). C’est ce que traduit le principe fondamentale de la dynamique, ou seconde loi de Newton:

\[ \frac{d}{dt}(m\overrightarrow{v}) = \sum_i \overrightarrow{F_i} \]

exemple d’équation du mouvement:

pour un corps de masse \(m\) constante se déplaçant dans un plan, dont la position est donnée dans un référentiel cartésien par \(P(x(t),y(t))\), cette loi conduit au système de deux équations différentielles d’ordre 2:

(1)\[\begin{eqnarray} m\frac{d^2 x}{dt^2} &=& \sum_i F_i^x \mbox{ avec }F_i^x \mbox{ composante de } \overrightarrow{F_i} \mbox{ suivant x}\\ m\frac{d^2 y}{dt^2} &=& \sum_i F_i^y \mbox{ avec }F_i^y \mbox{ composante de } \overrightarrow{F_i} \mbox{ suivant y} \end{eqnarray}\]

exemple de force (gravitation)

La force exercée par un corps de masse \(M\) distant de r s’écrit:

\[ \overrightarrow{F} = -G \frac{ m M }{r^2} \overrightarrow{e_r}\]

avec \(\overrightarrow{e_r}\) est le vecteur unitaire qui va de M à m et \(G\approx 6.7 10^{-11} Nm^2kg^{-2}\) est la constante universelle de gravitation.

Dans le cas d’un objet de masse m sur la terre, la force de gravitation exercée par la terre (de masse \(M\approx 6.10^{24} kg\)) est quasiment constante compte tenu de \(M\gg m\) et que \(r\approx R=6400 km\) (rayon de la terre) et s’écrit:

\[ \overrightarrow{F} = -m g \overrightarrow{e_z} \]

\(\overrightarrow{e_z}\) est la direction de la verticale dirigée vers le haut et \(g=\frac{GM}{R^2}\approx 9.8 ms^{-2}\) est l’accélération de la pesanteur.

Travail, Puissance

Le travail élémentaire \(\delta W\) d’une force \(\overrightarrow{F}\) est égale au produit scalaire de la force par son déplacement élémentaire \(\delta\overrightarrow{l}\):

\[ \delta W = \overrightarrow{F} . \delta\overrightarrow{l} \mbox{ (unité Joule)}\]

La puissance est un travail par unité de temps. $\( \delta P = \frac{\delta W}{\delta t} \mbox{ (unité Watt)}\)$

Dans le cas d’une force \(\overrightarrow{F_j}\) conservative (découlant d’un potentiel \(U_j\)): $\(F_j = -\overrightarrow{grad}\ U_j = -\left[ \begin{array}{c} \frac{\partial U_j}{\partial x}\\ \frac{\partial U_j}{\partial y}\\ \frac{\partial U_j}{\partial z}\\ \end{array} \right]\)\( le travail est alors une différentielle exacte: \)\(\delta W_j = -dU_j = -\frac{\partial U_j}{\partial x}dx - \frac{\partial U_j}{\partial y}dy-\frac{\partial U_j}{\partial z}dz \mbox{ avec } F_j = -\overrightarrow{grad}\ U_j\)$ qui ne dépends que du potentiel initial et du potentiel final.

De même, si une force \(\overrightarrow{F_j}\) reste perpendiculaire au déplacement (cas d’une force de liaison parfaite sans frottement), elle ne travaille pas $\(\delta W_j = 0 \mbox{ si } \overrightarrow{F_j}\perp\delta\overrightarrow{l} \Rightarrow \overrightarrow{F_j}.\delta\overrightarrow{l}=0\)$

Conservation de l’énergie

En effectuant le produit scalaire de l’équation fondamentale de la dynamique par la vitesse \(\overrightarrow{v}\), on obtiens l’évolution de l’énergie cinétique \(E_c\) du système

\[ \frac{d Ec}{dt} = \sum_i \overrightarrow{F_i}.\overrightarrow{v} \mbox{ avec } Ec=\frac{1}{2} m v^2 \mbox{ énergie cinétique} \]

Si les forces appliquées sont conservatives ou ne travaillent pas, l’énergie totale \(E_t\), somme de l’énergie cinétique \(Ec\) et l’énergie potentielle \(U\), du système se conserve:

\[ E_t = \frac{1}{2} m v^2 + \sum_j U_j = cste \]

Exemple 1: mouvement balistique

Mouvement balistique d’une masse \(m\) dans le champ de gravité terrestre (on néglige les frottements).

run schema_balistique.py
../_images/COURS_RAPPEL_15_0.png
<Figure size 432x288 with 0 Axes>

Équations du mouvement

(2)\[\begin{eqnarray} m\frac{d^2 x}{dt^2} &= 0 &\mbox{ avec } x(0)=x_0 , \frac{dx}{dt}(0)=u_0\\ m\frac{d^2 z}{dt^2} &= -m g &\mbox{ avec } z(0)=z_0 , \frac{dz}{dt}(0)=w_0 \end{eqnarray}\]

La solution est parabolique et s’écrit:

(3)\[\begin{eqnarray} x(t) &=& x_0 + u_0 t \\ z(t) &=& z_0 + w_0 t - \frac{1}{2} g t^2 \end{eqnarray}\]

L’énergie totale se conserve, avec au cours du mouvement transformation d’énergie potentielle en énergie cinétique:

\[ E_t = \frac{1}{2} m v^2 + m g z = cste \]

Trajectoire , vitesse et accélération

L’animation suivante montre l’évolution du vecteur vitesse (en cyan) et de l’accélération (en vert), ainsi que l’évolution de l’énergie cinétique Ec, l’énergie potentielle Up et l’énergie totale Et.

#from JSAnimation import IPython_display
from balistique import *
anim
#display(anim)
trajectoire balistique U0= 10.0  alpha= 1.1780972450961724
<matplotlib.animation.FuncAnimation at 0x7fb74d39e580>
../_images/COURS_RAPPEL_17_2.png
HTML(anim.to_html5_video())

Exemple 2: mouvement d’un satellite

On considère une masse \(m\) en rotation uniforme autour de la terre de masse \(M\) à une distance \(r\) du centre.

run schema_satellite.py
../_images/COURS_RAPPEL_20_0.png
<Figure size 432x288 with 0 Axes>

Équation du mouvement

Soit \(\overrightarrow{e_t}\) le vecteur tangentiel, et \(\overrightarrow{e_n}\) le vecteur normal à la trajectoire et dirigé vers la terre, la vitesse s’écrit en fonction de l’angle de rotation \(\theta(t)\):

\[ \overrightarrow{v} = r \frac{ d\theta}{dt} \overrightarrow{e_t}\]

et le principe fondamentale de la dynamique s’écrit:

\[ \frac{d}{dt}(m r \frac{ d\theta}{dt} \overrightarrow{e_t}) = m \frac{G M}{r^2} \overrightarrow{e_n}\]

La solution est telle que la vitesse de rotation \(\omega\) est uniforme:

\[ \omega = \frac{d\theta}{dt} = \sqrt{\frac{G M}{r^3}} \]

Dans ce cas l’énergie cinétique et l’énergie potentielle se conservent:

\[ Ec = \frac{1}{2} m v^2 = cste \]

Trajectoire, vitesse et accélération

L’animation suivante montre l’évolution du vecteur vitesse (en cyan) et accélération (en vert), ainsi que l’évolution de l’énergie cinétique.

#from JSAnimation import IPython_display
from satellite import *
anim
#display(anim)
trajectoire d'un satellite omega= 1.0  r= 1.0
<matplotlib.animation.FuncAnimation at 0x7fb74772e430>
../_images/COURS_RAPPEL_22_2.png
HTML(anim.to_html5_video())

Exemple 3: Mouvement du pendule

On considère un pendule simple, constitué d’une masse \(m\) fixée à l’extrémité d’un fil de longueur \(l\) fixé en O et soumis à la gravité \(g\).

La position \(P\) de la masse s’écrit en fonction de l’angle \(\theta\) du fil par rapport à la verticale \(y\): $\( \overrightarrow{OP} = \left[\begin{array}{l}x\\y\end{array}\right] = \left[\begin{array}{l}+l\sin\theta\\-l\cos\theta\end{array}\right] \)$

Le bilan des forces est donné sur la figure ci-dessous

run schema_pendule.py
../_images/COURS_RAPPEL_25_0.png
<Figure size 432x288 with 0 Axes>

Equation du mouvement

Soit \(\overrightarrow{e_t}\) le vecteur tangentiel, et \(\overrightarrow{e_n}\) le vecteur normal, la vitesse du pendule s’écrit:

\[\overrightarrow{v}=l\frac{d\theta}{dt}\overrightarrow{e_t}\]

Les forces exercées sur le pendule sont la gravité \(- m g \overrightarrow{e_y}\) et la tension dans le fil \(T \overrightarrow{e_n}\)

Le principe fondamental de la dynamique s’écrit:

\[ \frac{d}{dt}(m l \frac{d\theta}{dt}\overrightarrow{e_t})= -m g \overrightarrow{e_y} + T \overrightarrow{e_n} \]

dont la projection suivant \(\overrightarrow{e_t}\) donne l’équation d’évolution de l’angle \(\theta\)

\[ m l \frac{d^2\theta}{dt^2} = - m g \sin\theta \]

qui s’écrit dans le cas de petites oscillations \(\theta\):

\[ \frac{d^2\theta}{dt^2} = -\omega^2 \theta \mbox{ avec } \omega=\sqrt{\frac{g}{l}}\]

et dont la solution est périodique de la forme:

\[\theta(t) = \theta_0\cos(\omega t + \phi_0)\]

Conservation de l’énergie

La tension dans le fil étant perpendiculaire à la vitesse, son travail est nul. La gravité découle d’un potentiel, et donc le système est conservatif

\[ E_t = \frac{1}{2} m v^2 + m g y = cste\]

Trajectoire, vitesse et accélération

L’animation suivante montre l’évolution du vecteur vitesse (en cyan) et accélération (en vert) ainsi que l’évolution de l’énergie cinétique Ec, l’énergie potentielle Up et l’énergie totale Et.

#from JSAnimation import IPython_display
from pendule import *
#display(anim)
anim
<matplotlib.animation.FuncAnimation at 0x7fb746b794f0>
../_images/COURS_RAPPEL_27_1.png
HTML(anim.to_html5_video())

Fin de la leçon

cloud