{ "cells": [ { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Python version 3.10.6 (main, Nov 14 2022, 16:10:14) [GCC 11.3.0]\n" ] } ], "source": [ "import sys #only needed to determine Python version number\n", "print('Python version ' + sys.version)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# M62 TP 2 - Implémentation des schémas \"classiques\" et étude de la convergence" ] }, { "cell_type": "markdown", "metadata": { "toc": true }, "source": [ "

Table of Contents

\n", "
" ] }, { "cell_type": "markdown", "metadata": { "hide_input": false }, "source": [ "## Rappel de CM : implémentation des schémas d'Euler explicite et implicite\n", "\n", "Considérons le problème de Cauchy\n", "\n", ">trouver la fonction $y \\colon I\\subset \\mathbb{R} \\to \\mathbb{R}$ définie sur l'intervalle $I=[0,1]$ telle que\n", ">$$\n", "\\begin{cases}\n", "y'(t) = -4y(t)+t^2, &\\forall t \\in I=[0,1],\\\\\n", "y(0) = 1\n", "\\end{cases}\n", "$$\n", "\n", "1. Calculer la solution exacte en utilisant le module `sympy`.\n", "1. Calculer la solution approchée obtenue avec la méthode d'**Euler explicite** avec $h=1/N$ et $N=8$ (pour bien visualiser les erreurs);\n", "2. Même exercice pour la méthode d'**Euler implicite**." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Correction 1** \n", "Calculons la solution exacte en utilisant le module `sympy`:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\frac{d}{d t} y{\\left(t \\right)} = t^{2} - 4 y{\\left(t \\right)}$" ], "text/plain": [ "d 2 \n", "──(y(t)) = t - 4⋅y(t)\n", "dt " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle y{\\left(t \\right)} = C_{1} e^{- 4 t} + \\frac{t^{2}}{4} - \\frac{t}{8} + \\frac{1}{32}$" ], "text/plain": [ " 2 \n", " -4⋅t t t 1 \n", "y(t) = C₁⋅ℯ + ── - ─ + ──\n", " 4 8 32" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left\\{ C_{1} : \\frac{31}{32}\\right\\}$" ], "text/plain": [ "⎧ 31⎫\n", "⎨C₁: ──⎬\n", "⎩ 32⎭" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle y{\\left(t \\right)} = \\frac{t^{2}}{4} - \\frac{t}{8} + \\frac{1}{32} + \\frac{31 e^{- 4 t}}{32}$" ], "text/plain": [ " 2 -4⋅t\n", " t t 1 31⋅ℯ \n", "y(t) = ── - ─ + ── + ────────\n", " 4 8 32 32 " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%reset -f\n", "%matplotlib inline\n", "\n", "import sympy as sym\n", "sym.init_printing()\n", "\n", "t = sym.Symbol('t')\n", "y = sym.Function('y')\n", "edo= sym.Eq( sym.diff(y(t),t) , -4*y(t)+t**2 )\n", "display(edo)\n", "solgen = sym.dsolve(edo)\n", "display(solgen)\n", "\n", "t0=0\n", "y0=1\n", "consts = sym.solve( sym.Eq( y0, solgen.rhs.subs(t,t0)) , dict=True)[0]\n", "display(consts)\n", "solpar=solgen.subs(consts).simplify()\n", "display(solpar)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On définit la solution exacte à utiliser pour estimer les erreurs:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "sol_exacte = sym.lambdify(t,solpar.rhs,'numpy')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Correction 2 et 3** \n", "On commence par importer le module `matplotlib`et la fonction `fsolve` du module `scipy.optimize` pour résoudre l'équation implicite présente dans le schéma implicite:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "from matplotlib.pylab import *\n", "# rcdefaults()\n", "rcParams.update({'font.size': 16})\n", "from scipy.optimize import fsolve # pour les schémas implicites" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On initialise le problème de Cauchy" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "# variables globales\n", "t0 = 0\n", "tfinal = 1\n", "y0 = 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On définit l'équation différentielle : `phi` est une lambda function qui contient la fonction mathématique $\\varphi(t, y)=-4y+t^2$ dépendant des variables $t$ et $y$." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "phi = lambda t,y : -4*y+t**2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On écrit les schémas numériques : les valeurs $[u_0,u_1,\\dots,u_{N}]$ pour chaque méthode sont contenues dans le vecteur `uu`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Schéma d'Euler progressif :**\n", "$$\n", "\\begin{cases}\n", "u_0=y_0,\\\\\n", "u_{n+1}=u_n+h\\varphi(t_n,u_n)& n=0,1,2,\\dots N-1\n", "\\end{cases}\n", "$$" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "def EE(phi, tt, y0):\n", " h = tt[1] - tt[0]\n", " uu = [y0]\n", " for i in range(len(tt) - 1):\n", " uu.append(uu[i] + h * phi(tt[i], uu[i]))\n", " return uu" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "# !!!!!! Ajouter ici Euler modifié" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "# !!!!!! Ajouter ici Heun" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Schéma d'Euler régressif :**\n", "$$\n", "\\begin{cases}\n", "u_0=y_0,\\\\\n", "u_{n+1}=u_n+h\\varphi(t_{n+1},u_{n+1})& n=0,1,2,\\dots N-1\n", "\\end{cases}\n", "$$\n", "\n", "Attention : $u_{n+1}$ est solution de l'équation $x=u_n+h\\varphi(t_{n+1},x)$, c'est-à-dire un zéro de la fonction (en générale non linéaire) $$x\\mapsto -x+u_n+h\\varphi(t_{n+1},x)$$" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "def EI(phi, tt, y0):\n", " h = tt[1] - tt[0]\n", " uu = [y0]\n", " for i in range(len(tt) - 1):\n", " temp = fsolve(lambda x: -x + uu[i] + h * phi(tt[i + 1], x), uu[i])\n", " uu.append(temp[0])\n", " return uu" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "# !!!!!! Ajouter ici Crank-Nicolson" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On introduit la discrétisation: les nœuds d'intégration $[t_0,t_1,\\dots,t_{N}]$ sont contenus dans le vecteur `tt`. \n", "On a $N+1$ points espacés de $h=\\frac{t_N-t_0}{N}$.\n", "\n", "On calcule les solutions exacte et approchées en ces points:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "N = 8 \n", "tt = linspace(t0,tfinal,N+1)\n", "# print(tt)\n", "\n", "# yy = [sol_exacte(t) for t in tt]\n", "yy = sol_exacte(tt) # car vectorisée\n", "uu_EE = EE(phi, tt, y0)\n", "uu_EI = EI(phi, tt, y0)\n", "\n", "# !!!!!! Ajouter ici les appelles aux fonctions EM, RK1_M, CN, Heun" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On compare les graphes des solutions exacte et approchées et on affiche le maximum de l'erreur:\n", "$$\n", "\\max_n \\left| y(t_n)-u_n \\right|\n", "$$" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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omRDNtWq5bcNJkyAEOKu0rIldOzos1KUsoqIiIhIRpQ5lOLww72i9d13Zz0uERHJP0o2ZFtREfz4I3z9damrDBwIX3wBn36axbhERESk2itzKMVGG8Hee8O998LSpdkOTURE8oySDdlWVOTPZQyl6N/fZ5hSoUgRERHJpuhQinHjSpl4YuhQ+O03eO65bIcmIiJ5RsmGbNt4Y2jdusxkw9pre05i7FhYsSKLsYmIiEi1168fzJtXylCKvfeGDTZQoUgRESmXkg25UFQExcWweHGpqwwcCDNnwhtvZC8sERERkT32gMaNSxlKUbMmDBkCL77oDRUREZFSKNmQCz17wqJFZWYSeveGwkIvFCkiIiKSLbVrQ58+ZQylOOII73p5zz1ZjkxERPKJkg250KWLX8nLGEpRv75f6B97DJYsyVpkIiIiImUPpdh4Y+je3WelWL4867GJiEh+ULIhF+rXh912KzPZADBoEMyZ4z0VRURERLKlzKEU4IUiZ86EiROzGpeIiOQPJRtypagIPvsMfv651FW6d/dikZqVQkRERLKp3KEUvXvDOuuoUKSIiJRKyYZciU6BWcYdgVq1fBrMp5+Gf/7JUlwiIiIilDOUonZtOOwweOYZnwpTREQkhpINubLttrDeeuUOpRg40GtJjhuXnbBEREREIIGhFEceCcuWwXnnQcuWMHlyNsMTEZFKTsmGXDGDHj38dkEZxZU6dPDrt2alEBERkWwqdyjF5pv7zZO774Yff4R991XCQURE/qNkQy717AmzZ8MHH5S6ihkcfDC8/DL8/nsWYxMREZFqr3//MoZSTJ4MX30FIfjPCxcq4SAiIv9RsiGXunf3bEICs1IsXw6PPpqluERERERYOZRitTbI5MmeWIidn1sJBxERiVCyIZfWXht23LHcZEObNt5LUUMpREREJJtq1fKhFOPHxwylGDLEEwvxLFzor4uISLWmZEOuFRXB22/D33+XudqgQfDOO/D999kJS0RERARKGUpx771QWBh/g8JCf11ERKo1JRtyrajIx0i88kqZqw0Y4M9jxmQhJhEREZGIuEMpunaFZ59dPeFQu7Yv79o1qzGKiEjlo2RDrrVvDw0bljuUonlz6NTJh1JE6zCJiIiIZFqpQyliEw4FBb5ymza5CFNERCoZJRtyrVYtv2UwYUK5WYRBg+Drr+Gjj7IUm4iI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oxBCwxBCnxDC9Jh1pocQLIRwYczyEEK4NoSwaQihdgihRQjh/BCC0vAZcOGFPhPWmWemsPE110CNGnDyyWmOSkREsknJhnzQvbv3cHjxxZR3se++sPfefvH/7bf0hSYiIiISa9114eyzYfx4ePXVJDfeaCNvsDzzjD9ERCQvKdmQD9ZaC9q1S7luA3iu4vrr4d9/U7zLICIiIpKEk0+GZs287uOKZOf7OOkk2GorHwO6aFEmwhMRkQxTsiFfFBXBO+/4cIoUtW7tF/wHHoA330xjbCIiIiIx6tWDyy6DDz+EMWOS3LhWLS8WOX06XH55JsITEZEMU7IhXxQV+W2BV16p0G7OOQc23BBOOCHlepMiIiIiCRk40DtnDh+eQgeFrl3h4IPhiivgO00YIiKSb5RsyBft28Maa1RoKAVAgwZw9dV+l+Guu9IUm4iIiEgcBQXe7pg5E667LoUdXH21T4l54okQQtrjExGRzFGyIV/UrAl77OHJhgpebA86CDp39l4Os2enKT4RERGRODp3ht69fTbL339PcuMNNoCLLoIXXvBqkyIikjeUbMgnRUV+a+Crryq0GzO48UYv/3DeeWmKTURERKQUV14Jixf7JBNJO/542HprLxq5cGG6QxMRkQxRsiGfFBX5cwWmwIzadls47ji4/Xb4+OMK705ERESkVJttBsccA6NGwZdfJrlxrVpw660wY4ZXnBQRkbygZEM+adECNt+8wnUboi66CJo08WKRGgYpIiIimXT++dCwIZxxRgob7747HHIIXHUVfPNN2mMTEZH0U7Ih3xQVwauvpmXO6caNffzkG2+kMCWViIiISBLWXtvrRT33XIqTa115JdStq7skIiJ5QsmGfFNU5IMeX389Lbs7/HDYaSc4/XT455+07FJEREQkrhNOgJYt4dRTU5iCe7314OKLYeJEePLJTIQnIiJppGRDvuncGerUSdtQioICuOkm+PVXv36LiIiIZErdut6r8pNP4MEHU9jBscfCdtvBySfDggXpDk9ERNJIyYZ8U7++j1tMU7IBYJddYMgQuP56+PrrtO1WREREZDUHHeRtj3POSSFfULMm3HIL/PST7pKIiFRySjbko6Ii+OILv9CmyciRUK8enHiihkGKiIhI5pjBNdfAL7/4c9I6doTBg33jqVPTHZ6IiKSJkg35KDoFZhp7NzRtCiNG+DDI8ePTtlsRERGR1XTsCH37es3HX39NYQdXXAENGqhYpIhIJaZkQz7aemvYYIO0JhvAh0G2aQP/939pmexCREREpFRXXAFLlviUmElbd1249FJ45RXWKS5Od2giIpIGSjbkIzPo0QNeeAFatIDJk9Oy21q1vFjk9Ok+jbWIiIhIpmyyCRx/PNxzD3z2WQo7OOoo2H57Nr31Vk2pJSJSCSnZkK822gjmz4cZM2DffdOWcOjaFfr39xoO06enZZciIiIicZ17LqyxBpx2Wgob16gBt95KnT//9LGgIiJSqSjZkI8mT161otLChWlNOFx9tU+JeeqpadmdiIiISFxNmsB553nNqJRGh7Zvz6977+1Tan3xRbrDExGRClCyId9MnuyJhdiiCmlMODRrBsOHw5NPwksvVXh3IiIiIqU67jgfUnHaabB8efLb/zBsGDRs6GMyVCxSRKTSULIh3wwZ4omFeBYu9NfT4NRT/cJ/4olevElEREQkE2rXhssvh88/9/oNyVq6xho+/rO4GMaOTXt8IiKSGiUb8s2990JhYfzXCgv99TSoW9d7JH71lReNFBEREcmUvn19OszzzvOSVEk78kho187vlsybl/b4REQkeUo25JuuXeHZZ1dPONSp48u7dk3bofbdF/beGy66KMU5sEVEREQSYOblqH7/Ha68MoUdRIpF8vvvcOGF6Q5PRERSoGRDPopNOJjBWmv5LYE0u/56+PdfOOustO9aRERE5D+77AIHHeSFqn/6KYUd7LQTDBsGN96Y4lyaIiKSTko25KtowqFFCx/o+MsvcMstaT9M69beI/GBB+DNN9O+exEREZH/jBzpRSLPOy/FHVx6Kay5pledVLFIEZGcUrIhn3XtCtOnwxlnQFERXHwxzJ6d9sMMHw4bbuhFnlOpEi0iIiKSiI03hpNOgvvvh48/TmEHa63lN2Fefx0eeijd4YmISBKUbKgqrr4a5s6FESPSvusGDXz3H30Ed92V9t2LiIiI/Gf4cGjSxHtWptQ54fDDfUzGaafB33+nOzwREUmQkg1VxdZbeyXmW26Bb75J++4POgg6d/YGwF9/pX33IiIiIoCPgrjgApg0CZ5/PoUdFBR4schZs3xHIiKSE0o2VCUjRviclWeemfZdm/kUmHPnVmAcpYiIiEgCjj7a60adfjosW5bCDnbYAY45Bm6+OcXxGCIiUlFKNlQlTZvC2WfDuHHw6qtp3/0228Cxx8Idd/iQChEREZFMqFXLp8CcOhXuvDPFnVxyiY/HOO44WLEirfGJiEj5lGyoav7v/6BZMzjllIxcWEeM8NpLJ5ygIs8iIiKSOb17Q6dOPhJi3rwUdtC4sWcs3nzTp9USEZGsUrKhqqlXz+eN+vBDGD067btfc03f/ZQp8PLLTdO+fxERERHwIZzXXOOlFy6/PMWdHHYYdOjgM3fNmZPW+EREpGxKNlRFBx8M7dp5NceFC9O++yFDYKed4PbbW6V2p0FEREQkAe3awaBBcN11MGNGCjsoKPDi2X/9Beeem/b4RESkdEo2VEUFBXDttfDTT/6cgd3fdBPMnl2Hiy9O++5FRERE/nPZZf58zjkp7qBtW6/bcNtt8MEH6QpLRETKoWRDVbX77nDAAd7v8Lff0r77XXaBvfb6leuvh6++SvvuRURERABo3txLUj30ELz/foo7GTEC1l1XxSJFRLJIyYaq7IorYMmSjM1VOXToD9SvDyedpGKRIiIikjlnnQXrrAOnnppim2PNNeGqq+Cdd+Dee9MdnoiIxKFkQ1W26aZw/PFwzz3w2Wdp333jxku56CKYOBHGj0/77kVEREQAaNQILroIXnsNnn46xZ3873+w225w5plew0FERDJKyYaq7txzYY01KnAroGzHHQdbb+3dGxctSvvuRURERAAYOhS22MInlli6NIUdmMGtt8Lff1egAISIiCRKyYaqrkkTn6D6pZfgxRfTvvuaNb1Y5PTpPpW1iIiISCbUrOkjIb75Bm6/PcWdbLMNnHgijBoF772X1vhERGRVSjZUB8cc40MqTjsNli1L++67dIH+/b0W5fTpad+9iIiICAD77APduvmQir//TnEnF14ITZvCscfC8uVpjE5EREpSsqE6qF3bux18+SXcdVdGDnH11T4l5imnZGT3IiIiIpjBNdfA7Nkrp8RMWqNGvpP3389Yu0hERJRsqD769IFOneD882HevLTvvlkzH/741FM+YkNEREQkE9q2hUMPhRtugGnTUtzJwQd718yzz4Y//0xjdCIiEqVkQ3URvRUwa5aPd8iAU0+FTTbxoZBLlmTkECIiIiJceinUqOG5gpSYwc03wz//VGAnIiJSFiUbqpN27eCQQ+Daa+HHH9O++zp14Prr4auv4MYb0757ERER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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "figure(figsize=(18, 7))\n", "\n", "subplot(1, 2, 1)\n", "plot(tt, yy, 'b-', tt, uu_EE, 'r-D')\n", "# err_EE = max( [abs(uu_EE[i] - yy[i]) for i in range(N)] )\n", "err_EE = norm(array(uu_EE)-array(yy),inf)\n", "title(f'Euler explicite\\nmax(|erreur|)= {err_EE:1.10f}')\n", "grid()\n", "\n", "subplot(1, 2, 2)\n", "plot(tt, yy, 'b-', tt, uu_EI, 'r-D')\n", "# err_EI = max( [abs(uu_EI[i] - yy[i]) for i in range(N)] )\n", "err_EI = norm(array(uu_EI)-array(yy),inf)\n", "title(f'Euler implicite\\nmax(|erreur|)= {err_EI:1.10f}')\n", "grid();\n", "\n", "# !!!!!! Ajouter ici les graphes des nouveaux schémas, attention à modifier subplot" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Rappel de CM : étude empirique de la convergence des schémas d'Euler explicite et implicite\n", "Considérons le même problème de Cauchy.\n", "\n", "1. On se propose d'estimer empiriquement l'ordre de convergence de la méthode d'**Euler explicite**. \n", "\t- On calcule d'abord la solution approchée avec différentes valeurs de $h_k=1/N_k$ \n", "\t- Pour chaque valeur de $h_k$, on calcule le maximum de la valeur absolue de l'erreur et on la sauvegarde dans le vecteur `err_EE` de sort que `err_EE[k]` contient $e_k=\\max_{i=0,\\dots,N_k}|y(t_i)-u_{i}|$. \n", "\t- Pour estimer l'ordre de convergence on affiche les points (`h[k]`,`err_EE[k]`) en echèlle logarithmique. On trouve ainsi une droite qui relie l'erreur au pas $k$ à l'erreur au pas $k+1$. \n", " Pour estimer la pente globale de cette droite (par des moindres carrés) on utilisers la fonction `polyfit` avec une régression linéaire. \t\n", "\n", "2. Même exercice pour estimer l'ordre de convergence de la méthode d'**Euler implicite**.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Correction**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pour chaque schéma, on calcule la solution approchée avec différentes valeurs de $h_k=1/N_k$ et on sauvegarde les valeurs de $h_k$ dans le vecteur `H`. \n", "\n", "Pour chaque valeur de $h_k$, on calcule le maximum de la valeur absolue de l'erreur et on sauvegarde toutes ces erreurs dans le vecteur `err_schema` de sort que `err_schema[k]` contient $e_k=\\max_{i=0,\\dots,N_k}|y(t_i)-u_{i}|$." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "H = []\n", "err_EE = []\n", "err_EI = []\n", "\n", "N = 10\n", "for k in range(7):\n", "# N = 2**(k + 3)\n", " N+=20\n", " tt = linspace(t0, tfinal, N + 1)\n", " h = tt[1] - tt[0]\n", " yy = [sol_exacte(t) for t in tt]\n", " uu_EE = EE(phi, tt, y0)\n", " uu_EI = EI(phi, tt, y0)\n", " # !!!!!! Ajouter ici l'appel aux nouveaux schémas\n", " H.append(h)\n", " # err_EE.append(max([abs(uu_EE[i] - yy[i]) for i in range(len(yy))]))\n", " # err_EI.append(max([abs(uu_EI[i] - yy[i]) for i in range(len(yy))])) \n", " err_EE.append(norm(array(uu_EE)-array(yy),inf))\n", " err_EI.append(norm(array(uu_EI)-array(yy),inf))\n", " # !!!!!! Ajouter ici le calcul des erreurs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pour afficher l'ordre de convergence on utilise une échelle logarithmique, i.e. on représente $\\ln(h)$ sur l'axe des abscisses et $\\ln(\\text{err})$ sur l'axe des ordonnées. \n", "En effet, si $\\text{err}=Ch^p$ alors $\\ln(\\text{err})=\\ln(C)+p\\ln(h)$. \n", "En échelle logarithmique, $p$ représente donc la pente de la ligne droite $\\ln(\\text{err})$." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "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2Fu72ZYtWzL7+fn9ZwZt0qRJf7/11ltnAbp3735y+fLlWd9+++27ixcvvqtZs2Z3V6tW7UKfPn1OxKxXqlSpK7Nmzdof9fRCzpw5w1u3bn33Dz/8kOXFF1+8GJeY5s6dm2XJkiU53n///UO9evX65/r1N99889yt6jzyyCNX/Pz8bM6cOcNjLgvs0qXLXQUKFLi2du3av9KnT28B6tWrd/6ee+4p069fvwLLly/fG3urt6ekSkRERCSpHT4MzZrB0qXOzNTEiVA42oqqBg2gQQNWBwcTEBDgsTA9IqEzRAULluPYMb//XC9Q4Bq//LIrsWHFx5QpU/YWLVr0po0qcubMGZHYdn///fd0hw4dStexY8dj0WeUsmTJElmxYsVL69evv2kJW8GCBa/FNaECuPfee6+MHz9+f8zr999//033h3399df7y5cvX+aRRx4pnTlz5ohp06btSxPLstV69erddD/bW2+9dbZt27Z3r127NnNck6rFixdnNcbQvn37k3Edx62EhISYjRs3Zmnbtu0xHx8fG/2/4aOPPnrh+++/T/Aui0qqRERERJKKtc7W6O3awbVrMHo0vP22MzslidOnzxE6dCjK1av/frtPnz6SPn2OJHUoFStWvOKOjSqOHTuWFqBDhw7FOnToUCzm6wUKFLgpkcubN2+8NnzIlClTxGOPPXbH5W/58+ePqFWr1vnp06fnfvHFF88ULlw41mWF15fcXZc+fXqbNWvW8CNHjvjGNaYzZ86kzZYtW3jmzJkTvXviyZMn00ZERDBy5MgCI0eOLBBbmYiIiAQt01RSJSIiIpIUTp6EVq1gzhyoVg0mT4aSJT0dVcpxfZe/ZLD7352kT58+EuDq1avm+hI0gLNnz972u3mePHkiAHr06HHk6aefvhDz9XTp0t2UeBhj3LKN+/fff59lxowZucuUKXP5q6++ytOkSZPTsSVjx48fv2k8V69eNRcuXEhbqFChOCd7uXLlCj9//nzakJAQk9jEKleuXBFp0qThzTff/Kdp06anYyuT0PvelFSJiIiIuNsPPzgH+J47BwMHQqdO4IJNCySGVq3OJMckKqbrSwM3bdqUoXr16pcBTp065bNly5bMmTJluuUywfLly18tWLDgtT/++CPDhx9+eDyp4o3u2LFjaQMDA++uUaPG+cWLF++tXLnyvY0aNSq+devWP7Jl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nufFSaj8gL5AaWNM9Cq/WmtDo8r+CkzBOVDYAk8A7YDF1tpV7hrfHU2dCoGBcDlqNeSBA9CnD2TPzrYPP+SBHj0AOHvlLJ2WduKL377gnlz38GOTH3m06KMeC1tEREREJCXzqqQKZ8e/vMBgICfOvVYbgaettUtilPXh5vGVBopG/Xl+LG3fDeyP+vMunF0FC0S1sxfoDwxK9AgSo2fPfxOq6DJn5kzVqgDM+XMObRa24eSlk/So3oM+NfqQPm36JA5URERERCT18Kqkylq7Hng8jmUDYjwP5t97r+5U93/xjS1JHDwY+/UjRzhz7QyvzHyF2X/OpmL+iix8YyEVC1RM2vhERERERFIhr0qqUr0iRZwlf9FYYPLjOWm3sTFhNoyPa31Mx6od8fXx9UyMIiIiIiKpjNdvVJGqDBgAGTMCEBQA+7LDU43T8NajpymeqThbW22lW/VuSqhERERERJKQZqq8SQNnA8KIXu/RL+Aggx8xpPHz47NnhnFvyL3cm/teDwcoIiIiIpL6aKbK2zRowNff9QcgoPQz7Hh3F29Xfps0Rm+liIiIiIgn6Ju4FwkKDsL0MzT5oQkAC3cvpOiIogQFB3k0LhERERGR1EzL/7xIUEAQQQFBAJh+BtvX3ngtODjYM0GJiIiIiKRymqkSERERERFJBCVVXqpvjb6eDkFERERERFBS5bWuLwMUERERERHPUlIlIiIiIiKSCEqqREREREREEkFJlYiIiIiISCIoqRIREREREUkEJVUiIiIiIiKJoKRKREREREQkEZRUiYiIiIiIJIKSKhERERERkURQUiUiIiIiIpIISqpEREREREQSQUmViIiIiIhIIiipEhERERERSQRjrfV0DCmOMeYkcCCJu80NnEriPpMLjT110thTJ409ddLY3auotTaPm/sQSdGUVKUQxphN1tpKno7DEzR2jT210dg19tRGY0+dYxfxJlr+JyIiIiIikghKqkRERERERBJBSVXKMd7TAXiQxp46aeypk8aeOmnsIpKs6Z4qERERERGRRNBMlYiIiIiISCIoqRIREREREUkEJVVeyBiz3xhjY3nUjWP9usaYX40xV40xB4wxvYwxPm4O2+WMMfWjxn04juV9jDEdjDHbjTGXjDHHjDHfGWMecHesrhbfsUfVyWCMCTLG7DbGhBpjThhj5htj/NwZq6slZOzR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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "figure(figsize=(10,7))\n", "plot(log(H), log(err_EE), 'r-o', label='Euler Explicite')\n", "# loglog(H, err_EE, 'r-o', label='Euler Explicite')\n", "plot(log(H), log(err_EI), 'g-+', label='Euler Implicite')\n", "# loglog(H, err_EI, 'g-+', label='Euler Implicite')\n", "# !!!!!! Ajouter ici les graphes des nouveaux schémas\n", "xlabel('$\\ln(h)$')\n", "ylabel('$\\ln(e)$')\n", "legend(bbox_to_anchor=(1.04, 1), loc='upper left')\n", "grid(True)\n", "show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Pour estimer l'ordre de convergence on doit estimer la pente de la droite qui relie l'erreur au pas $k$ à l'erreur au pas $k+1$ en echelle logarithmique.\n", "Pour estimer la pente globale de cette droite (par des moindres carrés) on peut utiliser la fonction `polyfit` (du module `numpy` que nous avons déjà importé avec `matplotlib.pylab`). " ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Euler progressif : ordre = 1.03\n", "Euler regressif : ordre = 0.98\n" ] } ], "source": [ "order_EE = polyfit(log(H),log(err_EE), 1)[0]\n", "print (f'Euler progressif : ordre = {order_EE:1.2f}')\n", "order_EI = polyfit(log(H),log(err_EI), 1)[0]\n", "print (f'Euler regressif : ordre = {order_EI:1.2f}')\n", "# !!!!!! Ajouter ici les pentes des nouveaux schémas" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercice : implémentation et étude empirique de la convergence des méthodes d'Euler modifié, RK1_m, de Crank-Nicolson et de Heun\n", "Ajouter l'implémentation et l'étude empirique de la convergence des méthodes d'**Euler modifié**, **RK1_M**, de **Crank-Nicolson** et de **Heun** . \n", "Pour cela **modifier directement le code ci-dessus** : les endroits où il faut écrire du code sont indiqués par les commentaire commençant par\n", "``# !!!!!! ``." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercice : Fonction intégrale\n", "\n", "Il existe des fonctions définies par des intégrales qu'on ne peut pas calculer explicitement.\n", "Il est pourtant possible de calculer des valeurs approchées de ces fonctions. \n", "\n", ">Pour $x\\in\\left[0;\\frac{\\pi}{2}\\right]$ calculer et afficher la table des valeurs et tracer le graphe de la fonction\n", "$$\n", "x \\mapsto f(x)=\\int_0^x \\sqrt{1-\\frac{1}{4}\\sin^2(t)}\\mathrm{d}t \n", "$$\n", "en approchant numériquement un problème de Cauchy (lequel?) avec la méthode d'**Euler explicite**. \n", ">\n", ">Vérifier que $f\\left(\\frac{\\pi}{6}\\right)\\simeq0.51788193$ et $f\\left(\\frac{\\pi}{2}\\right)\\simeq1.46746221$.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercice : Système de deux EDO avec invariant\n", "\n", ">Considérons le problème de Cauchy\n", "$$\n", "\\begin{cases}\n", "x'(t)= -y(t) ,\\\\\n", "y'(t)= x(t), & t\\in[0;4\\pi]\\\\\n", "x(0)=1,\\\\\n", "y(0)=0.\n", "\\end{cases}\n", "$$\n", ">1. **Invariant** \n", "Vérifier que $I(t)=x^2(t) + y^2(t)$ est un invariant pour le système. \n", ">1. **Approximations** \n", "Dans une simulation numérique on aimerait que l'invariant soit préservé aussi bien que possible. Nous allons regarder ce qui se passe avec certaines méthodes vues en cours. \n", "On notera $u_n\\approx x_n=x(t_n)$ et $w_n\\approx y_n=y(t_n)$. \n", "À chaque instant $t_n$, on calculera $J_n\\approx I_n=I(t_n)$. \n", "Choisissons $h=t_{n+1}-t_n=\\pi/48$.\n", " 1. Dans un premier temps on se propose d'appliquer la méthode d'**Euler explicite** à la résolution du système. \n", " 1. Tracer $(t_n,u_n)$ et $(t_n,w_n)$ sur un même graphique;\n", " 2. sur un autre graphique tracer $(t_n,J_n)$;\n", " 3. tracer enfin $(u_n,w_n)$ sur un autre graphique et vérifier que la solution numérique tourne vers l’extérieur \n", " 4. Après avoir constaté que l'invariant $J_n$ n'est pas conservé mais augment au cours du temps, montrer analytiquement que $J_n=(1+h^2)^n$.\n", " 1. Même exercice pour le schéma d'**Euler implicite** (la linéarité du second membre permet de rendre ce schéma explicite). Que peut-on constater? Commenter les résultats et écrire l'expression analytique de $J_n$.\n", " 1. Même exercice pour le schéma de **Crank Nicolson** (la linéarité du second membre permet de rendre ce schéma explicite). Que peut-on constater? Commenter les résultats et écrire l'expression analytique de $J_n$.\n", " 1. Même exercice avec la fonction ``odeint`` du module ``scipy.optimize``.\n", ">1. **Solution exacte** \n", "Dans ce cas il est même possible de calculer analytiquement la solution exacte. Calculer donc la solution exacte avec le module `sympy`." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "hide_input": false, "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.10.6" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": true, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": true, "toc_position": { "height": "calc(100% - 180px)", "left": "10px", "top": "150px", "width": "308px" }, "toc_section_display": true, "toc_window_display": false }, "vscode": { "interpreter": { "hash": "916dbcbb3f70747c44a77c7bcd40155683ae19c65e1c03b4aa3499c5328201f1" } } }, "nbformat": 4, "nbformat_minor": 4 }