{ "cells": [ { "cell_type": "markdown", "metadata": { "tags": [ "Euler", "pcm", "physique-chimie", "première-voie-technologique", "STI2D", "STL" ] }, "source": [ "# Chute d'un corps dans un milieu visqueux" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Présentation\n", "- **Voie et niveau de classe :** \n", " - Technologique: Première (STI2D-STL, spécialité physique-chimie et mathématiques)\n", "- **Référence au programme :** \n", " - Spécialité physique-chimie et mathématiques de première technologique : *Construire différents points d’une approximation de courbe intégrale par la méthode d’Euler.*.\n", "- **Description de l'activité :** cette activité permet d'utiliser la méthode d'Euler dans le contexte de la chute d'un corps dans un milieu visqueux." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Un corps s'enfonce dans un milieu visqueux selon le modèle régi par l'équation :\n", "$$\n", "a(t) = k\\times v(t) + g_0\n", "$$\n", "où $a$ représente l'accélération, $v$ la vitesse et $g_0$ une constante gravitationnelle." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Constantes\n", "Fixons les constantes à $k=35$ et $g_0=8,22$." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "k = 35\n", "g0 = 8.22" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Méthode d'Euler" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "La fonction `acceleration` prend en paramètre un flottant `v` représentant la vitesse et renvoie l'accélération." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "def acceleration(v):\n", "\treturn -k*v+g0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "Suggestions pédagogiques\n", "
\n", " \n", "* **Écrire un programme**\n", " \n", " Écrire la fonction `acceleration`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "La fonction `euler` prend en paramètres `v0` représentant la vitesse initiale, `n` représentant le nombre d'itérations de la méthode d'Euler et `dt` le pas de temps. Elle renvoie la liste des vitesses et des accélérations calculées au fur et à mesure avec la méthode d'Euler." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "([0, 0.08220000000000001, 0.13563, 0.1703595, 0.192933675],\n", " [8.22, 5.343, 3.472950000000001, 2.2574175000000007, 1.467321375000001])" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def euler(v0,n,dt):\n", "\tlisteVitesses = [v0]\n", "\ta0 = acceleration(v0)\n", "\tlisteAccelerations = [a0]\n", "\tv =v0\n", "\ta = a0\n", "\tfor i in range(n-1):\n", "\t\tv = v + a*dt\n", "\t\tlisteVitesses.append(v)\n", "\t\ta = acceleration(v)\n", "\t\tlisteAccelerations.append(a)\n", "\treturn listeVitesses,listeAccelerations\n", "\n", "euler(0,5,0.01)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "Suggestions pédagogiques\n", "
\n", "\n", "* **Expliquer un programme**\n", "\n", " - Que représente `a0` ?\n", " - Expliquer l'égalité de la ligne 8.\n", "\n", "* **Compléter un programme**\n", "\n", " Le programme précédent étant fourni en remplaçant les lignes 4, 6 et 8 par `listeAccelerations = [...]`, `a = ...`, `v = ...`, demander aux élèves de compléter les lignes 4, 6 et 8." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Représentation graphique" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "fig, (ax1,ax2) = plt.subplots(1, 2,figsize=(12, 5))\n", "\n", "def plotEuler(v0,n,dt):\n", "\tt0 = 0\n", "\tX = [t0 + i*dt for i in range(n)]\n", "\tlisteVitesses,listeAccelerations = euler(v0,n,dt)\n", "\tax1.plot(X,listeVitesses,'r--',label='Vitesse')\n", "\tax2.plot(X,listeAccelerations,'b--',label='Accélération')\n", " \n", "plotEuler(0,30,0.01)\n", "ax1.legend(loc=\"lower right\")\n", "ax2.legend(loc=\"upper right\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "Suggestions pédagogiques\n", "
\n", "\n", "* **Interprétation du résultat**\n", " - Commenter la forme des courbes. Est-ce cohérent ?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Animation susceptible d'être présentée aux élèves\n", "La courbe de gauche donne la vitesse du corps en fonction du temps et la courbe de droite son accélération construite avec la méthode d'Euler." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "
\n", " \n", "
\n", " \n", "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
\n", " Once \n", " Loop \n", " Reflect \n", "
\n", "
\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%matplotlib inline\n", "from matplotlib.pyplot import plot,show,subplots,close\n", "import matplotlib.animation\n", "from IPython.display import HTML\n", "\n", "#ctes: \n", "n =40\n", "v0 = 0\n", "dt = 0.01\n", "t0 = 0\n", "#Création des figures\n", "fig, (ax1,ax2) = subplots(1, 2,figsize=(12, 6))\n", "courbeVitesses, = ax1.plot([],[],'.-',color=\"#1e7fcb\")\n", "courbeAcceleration, = ax2.plot([],[],'.-',color=\"#C4151C\")\n", "#Réglage des axes\n", "ax1.set_xlim(( 0, 0.4))\n", "ax1.set_ylim(( 0, 0.3))\n", "ax2.set_xlim(( 0, 0.4))\n", "ax2.set_ylim(( 0, 9))\n", "\n", "def init():\n", " global courbeVitesse\n", " courbeVitesses.set_data([], [])\n", " courbeAcceleration.set_data([], [])\n", " return (courbeVitesses,) \n", "\n", "def animate(j):\n", " global courbeVitesse,courbeAcceleration,v0,t0,n\n", " listeAbscisses = [t0 + i*dt for i in range(j+1)]\n", " listeVitesses,listeAccelerations = euler(v0,j+1,dt)\n", " #print(euler2(0,5,0.1))\n", " courbeVitesses.set_data(listeAbscisses,listeVitesses)\n", " courbeAcceleration.set_data(listeAbscisses,listeAccelerations)\n", " \n", " ax1.set_title('Vitesse',color=\"#1e7fcb\")\n", " ax2.set_title('Accélération',color=\"#C4151C\")\n", " return (courbeVitesses,)\n", "\n", "close ()\n", "ani = matplotlib.animation.FuncAnimation(fig, animate, frames=n,init_func=init,blit=False,interval=200)\n", "# l'un ou l'autre\n", "HTML(ani.to_jshtml())\n", "#HTML(ani.to_html5_video())" ] } ], "metadata": { "celltoolbar": "Tags", "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.5" } }, "nbformat": 4, "nbformat_minor": 2 }