From 322ca78adce71a43e99fd0758a8d8e084c2b7f64 Mon Sep 17 00:00:00 2001 From: Orestis <orestis.malaspinas@hesge.ch> Date: Mon, 9 Nov 2020 01:05:14 +0100 Subject: [PATCH] ajout verlet --- 02_lois_de_newton.md | 104 ++++++++++++++++++++++++++++++++++++++----- 10_footer.md | 1 + figs/time_discr.svg | 37 ++++++++------- 3 files changed, 116 insertions(+), 26 deletions(-) diff --git a/02_lois_de_newton.md b/02_lois_de_newton.md index 841143a..73d3bca 100644 --- a/02_lois_de_newton.md +++ b/02_lois_de_newton.md @@ -918,15 +918,16 @@ et leur position $\vec r_i$, sachant que: 1. Calculer la force résultante dûe à l'attraction gravitationnelle sur chaque particule - \begin{equation} + $$ \vec F_i = \sum_{j=1,j\neq i}^N\vec F_{ij}, - \end{equation} + $$ où $\vec F_{ij}$ est la force gravitationnelle entre la particule $i$ et la particule $j$, et est donnée par - \begin{equation} + $$ \vec F_{ij}=G\frac{m_i m_j}{||\vec r_{ij}||^2}\vec r_{ij}, - \end{equation} - où $\vec r_{ij}$ est le vecteur reliant la particule $i$ à la particule $j$. -2. Si chaque particule, $p_i$, a de plus une vitesse $\vec v_i$, calculer la force résultante sur chaque particule si $k=10 \kg/\s$. + $$ + où $\vec r_{ij}$ est le vecteur reliant la particule $i$ à la particule $j$, $G=6.67\cdot 10^{-11}\ \m^3/(\kg\cdot \s^2)$ + est la constante universelle de gravitation. +2. Si chaque particule, $p_i$, a de plus une vitesse $\vec v_i$, calculer la force résultante sur chaque particule si $k=10 \kg/\s$ ($k$ est le coefficient de résistance de l'objet dans le fluide). --- @@ -947,14 +948,97 @@ généraliser un petit pou tout ça, en supposant que la vitesse et l'accéléra Pour simplifier, nous allons *discrétiser* le temps. Au lieu de laisser le temps prendre n'importe quelle valeur réelle positive, $t\in\real^+$, il ne pourra prendre que les valeurs suivantes: -\begin{equation} +$$ t_j=j\cdot \delta t, -\end{equation} -$\delta t>0$ étant le pas de discrétisation temporel et $j\in\integer^+$. +$$ +$\delta t>0$ étant le pas de discrétisation temporel et $j\in\integer^+$ (voir @fig:time_discr). + +{#fig:time_discr} + ### Le mouvement sans accélération Supposons que pour notre particule $P$, nous connaissons sa position initiale, $\vec x(0)$ et sa vitesse -en tout temps, $\vec v(t)$. Nous souhaitons connaître une approximation de la position $\vec x(t_j)$ +en tout temps, $\vec v(t)$. Nous souhaitons connaître une approximation de la position $\vec x(t_j)$. +Pour ce faire nous commençons au point $\vec x(0)$ et calculons sa nouvelle position +à l'aide de la vitesse $\vec v(0)$ +$$ +\vec x(\delta t)=\vec x(0)+\delta t\cdot \vec v(0). +$$ +Plus $\delta t$ est petit, plus cette approximation sera précise. +En utilisant la notation $t_j=j\cdot \delta t$, on obtient +$$ +\vec x(t_1)=\vec x(t_0)+\delta t\cdot \vec v(t_0). +$$ + +--- + +Remarque ($\delta t\rightarrow 0$) # + +On peut réécrire l'équation ci-dessus comme +$$ +\vec v(0)=\frac{\vec x(\delta t)-\vec x(0)}{\delta t}. +$$ +En prenant la limite $\delta t\rightarrow 0$, on obtient +$$ +\vec v(0)=\vec x'(0), +$$ +Soit la relation bien connue que la dérivée de la position donne la vitesse. +Ou encore de façon similaire +$$ +\vec v(t_0)=\vec x'(t_0), +$$ + +--- +Nous pouvons ainsi calculer la position pour $t_2$[^7] +$$ +\vec x(t_2)=\vec x(t_1)+\delta t\cdot \vec v(t_1), +$$ +et ainsi de suite pour n'importe quelle valeur de $t_j$ +$$ +\vec x(t_j)=\vec x(t_{j-1})+\delta t\cdot \vec v(t_{j-1}). +$$ +De cette équation, nous pouvons également déduire que +$$ +\vec v(t_{j-1})=\frac{\vec x(t_j)-\vec x(t_{j-1})}{\delta t}, +$${#eq:vt0} +ou encore +$$ +\vec v(t_{j})=\frac{\vec x(t_j+1)-\vec x(t_{j})}{\delta t}. +$${#eq:vt1} + +Nous pouvons ainsi approximer le mouvement de la particule $P$ +pour tout instant $t_j$. A l'inverse en connaissant la position de la +particule à tous les $t_j$, nous pouvons calculer sa vitesse. + +### Le mouvement avec accélération + +De façon similaire à ce que nous avons fait pour le lien entre la position et +la vitesse, nous pouvons faite le lien entre l'accélération et la vitesse. +En connaissant la vitesse de la particule $P$ à tout instant $\vec v(t_j)$, +nous pouvons approximer l'accélération $\vec a(t_j)$ comme +$$ +\vec a(t_j) = \frac{\vec v(t_j)-v(t_{j-1})}{\delta t}. +$$ +En utilisant l'@eq:vt0 et l'@eq:vt1, il vient +$$ +\vec a(t_j) = \frac{\frac{\vec x(t_j+1)-\vec x(t_{j})}{\delta t}-\frac{\vec x(t_j)-\vec x(t_{j-1})}{\delta t}}{\delta t}=\frac{\vec x(t_{j+1})-2\vec x(t_j)+\vec x(t_{j-1})}{\delta t^2}. +$$ +En isolant $\vec x(t_{j+1})$ il vient +$$ +\vec x(t_{j+1})=2\vec x(t_j)-\vec x(t_{j-1})+\vec a(t_j)\delta t^2. +$$ +Cette formule est correcte pour $j\geq 1$. Pour $j=0$, on a +$$ +\vec x(t_{1})=\vec x(t_0)+\delta t\vec v(t_0)+\vec a(t_0)\delta t^2. +$$ +Il est donc nécessaire de connaître la vitesse initiale et la position +initiale de la particule $P$ pour pouvoir calculer son évolution, +ainsi que son accélération en tout temps $t_j$. Afin de calculer +l'accélération de la particule $P$, on utilise souvent les +lois de Newton. Ainsi, +$$ +\vec a(t_j)=\frac{\vec F(t_j)}{m}. +$$ diff --git a/10_footer.md b/10_footer.md index b859f0f..9764640 100644 --- a/10_footer.md +++ b/10_footer.md @@ -16,3 +16,4 @@ les jointures des articulation $\mu_k=0.01$. [^6]: A titre d'exemple, pour un contact bois sur bois, on a $\mu_s=0.4$, pour du caoutchouc sur du béton $\mu_s=1$, et pour les jointures des articulation $\mu_s=0.01$. +[^7]: Cette équation peut aussi s'écrire $\vec x(2\delta t)=\vec x(\delta t)+\delta t\cdot \vec v(\delta t)$. diff --git a/figs/time_discr.svg b/figs/time_discr.svg index 8a8c0bf..552a25a 100644 --- a/figs/time_discr.svg +++ b/figs/time_discr.svg @@ -8,9 +8,9 @@ xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="210mm" - height="297mm" - viewBox="0 0 210 297" + width="137.20404mm" + height="29.613066mm" + viewBox="0 0 137.20404 29.613066" version="1.1" id="svg8" sodipodi:docname="time_discr.svg" @@ -18,17 +18,17 @@ <defs id="defs2"> <marker - style="overflow:visible;" + style="overflow:visible" id="Arrow2Lend" - refX="0.0" - refY="0.0" + refX="0" + refY="0" orient="auto" inkscape:stockid="Arrow2Lend" inkscape:isstock="true"> <path - transform="scale(1.1) rotate(180) translate(1,0)" - d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " - style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round;stroke:#000000;stroke-opacity:1;fill:#000000;fill-opacity:1" + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z" + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1" id="path856" /> </marker> <g @@ -307,17 +307,21 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.98994949" - inkscape:cx="359.92488" - inkscape:cy="640.22336" + inkscape:cx="267.39804" + inkscape:cy="163.2353" inkscape:document-units="mm" inkscape:current-layer="layer1" inkscape:document-rotation="0" showgrid="false" inkscape:window-width="1920" - inkscape:window-height="1013" + inkscape:window-height="1016" inkscape:window-x="0" - inkscape:window-y="39" - inkscape:window-maximized="1" /> + inkscape:window-y="27" + inkscape:window-maximized="1" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> <metadata id="metadata5"> <rdf:RDF> @@ -333,9 +337,10 @@ <g inkscape:label="Layer 1" inkscape:groupmode="layer" - id="layer1"> + id="layer1" + transform="translate(-24.481059,-126.20309)"> <path - style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow2Lend)" + style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow2Lend)" d="M 27.334593,141.30025 H 160.01339" id="path833" /> <path -- GitLab