{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n" ], "text/plain": [ "" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from IPython.core.display import HTML, display\n", "css_file = './custom.css'\n", "HTML(open(css_file, \"r\").read())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 2021 CC v2 : le sujet comporte deux exercices indépendents." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercice 1 : implémentation d'un schéma pour un système\n", "\n", "Le modèle S.Z.R., proposée par Munz, Hudea, Imad et Smith en 2009, est une variation du modèle S.I.R pour modéliser une apocalypse zombie.\n", "\n", "À chaque instant on décide de diviser la population en trois catégories (qu’on appelle « compartiments » dans le langage de l’épidémiologie):\n", "- les individus « Susceptibles » ou « Sains » (S) : ceux qui n’ont jamais eu la maladie et peuvent la contracter ;\n", "- les individus « Zombies » (Z) ;\n", "- les individus « Rétablis » (R, comme « Recovered » en anglais) : les personnes décédées qui ont la faculté de revenir à la vie (terme $\\zeta R$) mais aussi les individus débarassés de leur infection (suite à un coup de hache bien placé).\n", "\n", "On travaillera avec des variables normalisées: leur valeur est comprise entre $0$ et $1$ et représente une fraction de la population totale. \n", "\n", "Le modèle s’écrit \n", "$$\n", "\\begin{cases}\n", "S'(t)=-\\beta S(t)Z(t)\\\\\n", "Z'(t)=\\beta S(t)Z(t)+\\zeta R(t)-\\alpha S(t) Z(t)\\\\\n", "R'(t)=\\alpha S(t)Z(t)-\\zeta R(t)\n", "\\end{cases}\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Testons ce modèle avec les coefficients\n", "- $\\alpha=1$ [humains sains moyennement violents]\n", "- $\\beta=0.5$ [zombies peu agressifs]\n", "- $\\zeta=0.25$ [résurrection des zombies non négligeable]\n", "\n", "Dans la suite, considérons les données initiales:\n", "- $Z(0)=0.05$\n", "- $S(0)=0.95$\n", "- $R(0)=0$\n", "\n", "\n", "On simulera pour $t\\in[0;60]$ jours" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "%reset -f\n", "%matplotlib inline\n", "\n", "from matplotlib.pylab import * # importe aussi numpy sans alias\n", "\n", "alpha = 1\n", "beta = 0.5\n", "zeta = 0.25 \n", "\n", "# yy=[S,I,R]\n", "phi0 = lambda S,Z,R,t : -beta*S*Z\n", "phi1 = lambda S,Z,R,t : (beta-alpha)*S*Z+zeta*R\n", "phi2 = lambda S,Z,R,t : alpha*S*Z-zeta*R\n", "\n", "S0=0.95\n", "Z0=1-S0\n", "R0=0 \n", "\n", "tt = linspace(0,60,61) # en jours\n", "h = tt[1]-tt[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ">**Q1** \n", "Soit $P(t)=S(t)+Z(t)+R(t)$. Montrer que $P$ est un invariant." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$P'(t)=S'(t)+Z'(t)+R'(t)=0$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ">**Q2** \n", "Calculer la solution approchée obtenue par la méthode d'Euler Progressif avec $61$ points. \n", "Afficher ensuite sur le même repère $t\\mapsto S(t)$, $t\\mapsto Z(t)$, $t\\mapsto R(t)$ et $t\\mapsto P(t)$. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On notera $S_n\\approx S(t_n)$, $Z_n\\approx Z(t_n)$ et $R_n\\approx R(t_n)$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Euler explicite**\n", "$$\n", "\\begin{cases}\n", "S_{n+1}=S_n+h\\varphi_0(S_n,Z_n,R_n,t_n),\\\\\n", "Z_{n+1}=Z_n+h\\varphi_1(S_n,Z_n,R_n,t_n),\\\\\n", "R_{n+1}=R_n+h\\varphi_2(S_n,Z_n,R_n,t_n).\n", "\\end{cases}\n", "$$" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# S0, Z0, R0, h variables globales\n", "def euler_progressif(phi0,phi1,phi2,tt):\n", "\tSS = [S0]\n", "\tZZ = [Z0]\n", "\tRR = [R0]\n", "\tfor i in range(len(tt)-1):\n", "\t\tSS.append(SS[i]+h*phi0(SS[i],ZZ[i],RR[i],tt[i]))\n", "\t\tZZ.append(ZZ[i]+h*phi1(SS[i],ZZ[i],RR[i],tt[i]))\n", "\t\tRR.append(RR[i]+h*phi2(SS[i],ZZ[i],RR[i],tt[i]))\n", "\treturn [SS,ZZ,RR]\n", "\n", "[SS_ep, ZZ_ep, RR_ep] = euler_progressif(phi0,phi1,phi2,tt)\n", "\n", "figure(figsize=(10,5))\n", "PP_ep=[SS_ep[i]+ZZ_ep[i]+RR_ep[i] for i in range(len(tt))]\n", "plot(tt,SS_ep,'--',tt,ZZ_ep,'.-',tt,RR_ep,':',tt,PP_ep)\n", "xlabel('t')\n", "legend(['S(t)','Z(t)','R(t)','P(t)'])\n", "title('Euler progressif') \n", "grid()\n", "axis([0,60,0,1.1]);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ">**Q3** \n", "Calculer la solution approchée obtenue par la méthode d'Euler Régressif avec $61$ points. \n", "Afficher ensuite sur le même repère $t\\mapsto S(t)$, $t\\mapsto Z(t)$, $t\\mapsto R(t)$ et $t\\mapsto P(t)$. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Euler implicite**\n", "$$\n", "\\begin{cases}\n", "S_{n+1}=S_n+h\\varphi_0(S_{n+1},Z_{n+1},R_{n+1},t_{n+1}),\\\\\n", "Z_{n+1}=Z_n+h\\varphi_2(S_{n+1},Z_{n+1},R_{n+1},t_{n+1}),\\\\\n", "R_{n+1}=R_n+h\\varphi_3(S_{n+1},Z_{n+1},R_{n+1},t_{n+1}).\n", "\\end{cases}\n", "$$" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from scipy.optimize import fsolve\n", "# S0, Z0, R0, h variables globales\n", "def euler_regressif(phi0,phi1,phi2,tt):\n", "\tSS = [S0]\n", "\tZZ = [Z0]\n", "\tRR = [R0]\n", "\tfor i in range(len(tt)-1):\n", "\t\tsys = lambda z : [-z[0]+SS[i]+h*phi0(z[0],z[1],z[2],tt[i+1]) , \n", " -z[1]+ZZ[i]+h*phi1(z[0],z[1],z[2],tt[i+1]) , \n", " -z[2]+RR[i]+h*phi2(z[0],z[1],z[2],tt[i+1]) ]\n", "\t\tStemp,Ztemp,Rtemp = fsolve( sys , (SS[i],ZZ[i],RR[i]) ) \n", "\t\tSS.append(Stemp)\n", "\t\tZZ.append(Ztemp)\n", "\t\tRR.append(Rtemp)\n", "\treturn [SS,ZZ,RR]\n", "\n", "[SS_er, ZZ_er, RR_er] = euler_regressif(phi0,phi1,phi2,tt)\n", "\n", "figure(figsize=(10,5))\n", "PP_er=[SS_er[i]+ZZ_er[i]+RR_er[i] for i in range(len(tt))]\n", "plot(tt,SS_er,'--',tt,ZZ_er,'.-',tt,RR_er,':',tt,PP_er)\n", "xlabel('t')\n", "legend(['S(t)','Z(t)','R(t)','P(t)'])\n", "title('Euler regressif') \n", "grid()\n", "axis([tt[0],tt[-1],0,1.1]);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ">**Q4** \n", "Calculer la solution approchée obtenue par la fonction `odeint` du module scipy. \n", "Afficher sur le même repère $t\\mapsto S(t)$, $t\\mapsto Z(t)$, $t\\mapsto R(t)$ et $t\\mapsto P(t)$. " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from scipy.integrate import odeint\n", "\n", "pphi = lambda yy,t : [ phi0(yy[0],yy[1],yy[2],t), phi1(yy[0],yy[1],yy[2],t), phi2(yy[0],yy[1],yy[2],t) ]\n", "CI = [S0,Z0,R0]\n", "sol = odeint(pphi,CI,tt)\n", "\n", "SS,ZZ,RR = sol[:,0],sol[:,1],sol[:,2]\n", "\n", "figure(figsize=(10,5))\n", "PP = [SS[i]+ZZ[i]+RR[i] for i in range(len(tt))]\n", "plot(tt,SS,'--',tt,ZZ,'.-',tt,RR,':',tt,PP)\n", "xlabel('t')\n", "legend(['S(t)','Z(t)','R(t)','P(t)'])\n", "title('Odeint') \n", "grid()\n", "axis([0,60,0,1.1]);" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercice 2 : étude d'un schéma multipas\n", "\n", "On notera $\\varphi_k\\stackrel{\\text{déf}}{=}\\varphi(t_k,u_k)$.\n", "Soit la méthode multipas\n", "$$\n", "u_{n+1}\n", "=2(1-\\gamma) u_{n}\n", "+\\left(2\\gamma-1 \\right)u_{n-1}\n", "+h(1-\\gamma) \\varphi_{n+1}\n", " +h\\left(3\\gamma-1\\right)\\varphi_{n}.\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ">**Q5** \n", "Pour quelles valeurs de $\\gamma $ est-elle consistante?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$p=1$: c'est une méthode à $q=p+1=2$ : \n", "- $a_0=2(1-\\gamma) $ et $a_1=2\\gamma-1$\n", "- $b_0=3\\gamma-1 $ et $b_1=0$\n", "- $b_{-1}=1-\\gamma $\n", "\n", "La méthode est implicite si $\\gamma\\neq1$.\n", "\n", "- La méthode est consistante pour tout $\\gamma$ car\n", "$$\n", "\\begin{cases}\n", "\\displaystyle\\sum_{j=0}^p a_j=a_0+a_1=2(1-\\gamma) +(2\\gamma-1)=1,\n", "\\\\\n", "\\displaystyle-\\sum_{j=0}^p ja_j+\\sum_{j=-1}^p b_j=-\\big(0a_0+1a_1\\big)+\\big(b_{-1}+b_0+b_1\\big)=-(2\\gamma-1)+(1-\\gamma+3\\gamma-1)=1\n", "\\end{cases}\n", "$$\n", "Vérifions ces calculs ci-dessous:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAOCAYAAAASVl2WAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAZElEQVQYGWP8//8/Aww0NDQYAdmrgdgYyP4AEmcBMgSA9GwgfgfEJkCsBMRwAFIAUhkKEgGyy4AUyBQ4YIKzcDBGFUACBj0chKHhJQQLN0ZQZAGDGBRBIOACxKC4OQfE94B4NwDm+hiAOyllRAAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle 1$" ], "text/plain": [ "1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAOCAYAAAASVl2WAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAZElEQVQYGWP8//8/Aww0NDQYAdmrgdgYyP4AEmcBMgSA9GwgfgfEJkCsBMRwAFIAUhkKEgGyy4AUyBQ4YIKzcDBGFUACBj0chKHhJQQLN0ZQZAGDGBRBIOACxKC4OQfE94B4NwDm+hiAOyllRAAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle 1$" ], "text/plain": [ "1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAVCAYAAAB7R6/OAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAATklEQVQoFWOsr68vY2BgSAdiEAgFYhcghvNZgBxhkEBDQ8MeIA0C54C4C8jvBNJCTCARfGBUASR0RsOByHAAJTkQmAlMYiAaOU0KAfm7AcSSDexw+eTdAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\left[ \\right]$" ], "text/plain": [ "[]" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import sympy as sym\n", "sym.init_printing()\n", "\n", "sym.var('gamma')\n", "p=1\n", "a0=2*(1-gamma)\n", "a1=2*gamma-1\n", "b0=3*gamma-1\n", "b1=0\n", "bm1=1-gamma\n", "\n", "cond11=a0+a1\n", "cond12=-(0*a0+1*a1)+(bm1+b0+b1)\n", "display(cond11)\n", "display(cond12.factor())\n", "display(sym.solve([sym.Eq(cond11,1),sym.Eq(cond12,1)],gamma))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ">**Q6** \n", "Pour quelles valeurs de $\\gamma$ est-elle convergente?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Le premier polynôme caractéristique est\n", "$$\n", "\\varrho(r)=r^{p+1}-\\sum_{j=0}^p a_jr^{p-j}=r^2-a_0r-a_1\n", "=\n", "r^2-2(1-\\gamma) r-(2\\gamma-1)\n", "$$\n", " dont les racines sont \n", "$$\n", "r_0=1,\\quad r_1=1-2\\gamma.\n", "$$" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAKoAAAAVCAYAAADW6nUiAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEgElEQVRoBe2a61HcMBDHnZsUwKMD6OAIFQQ64NFB6IB85L4mHRAqSKADoIOEDqAE5jog/59H8uh8a0v38PkBO+OTvJKl3f+uViv7sre3tyy8rq6u9sL7vtXXIf86xugbbl2S18J/lAU0mUwudTsOWH2s7jk9lpJ9IBgspXuHHpqz4SdWEiQDnag4VPk9Z3T4RzKymG51Hag+LYsqHgtuqvJXua3uXv1NDMTf03Mely+qv3Iv/lPdeB9t1QgIu4VsmDuqHtrSkI8qD6qHbrfFyXgjKXASnAVFt8Wfc1TxM/H/qfha1U6fkNTPxEB8nPRa5bHvr/oP1VkMx6o/eP5HWY+AsALjpWz42Q0N8Nf107TbKiVxyFOkUD0lRUEf9LrgmQSqwmBuDM1PNP2mMYnq2wljr9RFcx1pALbDhXaIlSZt4GHJv7QNfY561ncQyrg6fdCLVZxCVRjgJM/GOETSLfGJuE0TOqTq0bQsGxs/tOFIN+RlLxubfbMToddZbMoIBjjki/oQDSx6dw5kgdAgL7chWz+5l5lnyTjkgee6xqqTj/lDBUYjynR9K0Iv9IvJWYdBnm5ojDKBTSYMigOV6ix6UgVwYu5T8QoHV53o/Dfk6b5R0lyDsCFbPweT5wq0zqVoftpVSc53odLnfBik64ReKVtzHQZzOjrj+0Wbt4tHzspBAQf9qYt27kNiwReOGzY0WB+EDYmobF2cpGdIgAK0d+Ad1Unm910nnolFKde11QK9UhzVxKBGcg5Rd8IDh8wcVkTP8GDFgeteF875RKmu5s7FGE2Q5hyMDXFUnNBa5RjvjwMQkH0kzQRAUXftc4X68PyjLspUwtjFVpr6UE0/8puU+aswmBta8rGzkLOGKQFbfnjvn4NHpEWnIz2TO7ZvLJdubNKDMiFfpnYLdxaBNTePDMaGOKpJUj53GJUeOO+0Zv8yU89NxWv7vWyyA5blt+6lE063o7J4p0o/3ZsOKD4fHXZ1EdmiB1b1sxwxE5+FwI5mzoMMFqn/YGw4koKvuuqiDqu17tRrYdQVHnqhX4xiGHhn2Zfxi+ilOs6DE8boRP3uYp0abO+9DXFUVnod2ETUNkFexX5E1Ggkc30qMZCTjdXH+rxMpEtZCLvq1yb13oZs/U+6Di0UXbTAgPdWe4s8b/jY1k7qgX4ximHA4elBeJS/3kXzTjfx75gATbUPxYY4KiBiCItwUrb9jZ5WLUHgSQ4vJxECuhWPiMnp2noLQT8z7+PhgOowYJGCA/lpmVIWAV+vUvqVx17X/TBsyL+n9P+/Z13jLv0ncVVZ+E8jeqWO0xQGGvc2VYaqfhrjRNdlVftQ+dK5sOHILVte3qdEnnWt8k2Mw4cK9EqltWOgSEpET8mRYzLyBoXrvVFhw9xR3baZeoLtPFjSh+0Ofax0wJS/IQx4jbVyfi/ZyI+TdTEV7BlT+s7Y0EdU1OAVRvmw0DP1CnHzz73FXXpl3RjwVaoT+X06BJ3pOWPDwlEFKFsL3/L5r2dvycmPHgtvuQ1gMLR0aiN+YdnwPzkpqX4LbRydAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\left(r - 1\\right) \\left(2 \\gamma + r - 1\\right)$" ], "text/plain": [ "(r - 1)⋅(2⋅γ + r - 1)" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFwAAAAVCAYAAADLuIn8AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACxklEQVRYCe2Z0VHcMBCGDUMBBDqADiDp4NIBtEA6II93r0kHJBVkoIMjHQQ6gA6SUEK+z9hGZ2T5jM1N7vDO6CStVrvSL+mXDFvT6fQ8y7JPJOV0NpvdPhbH3yEQAM8FfLcA/AuO5zRcDxFg9BFHAHxznHfizU9aDI+oXZKOKT88tQxbWlWctlEzjgNsPhd278n/WEc/yMmPAo7zXYJ8L4IZ1EEMLquKs+zAC7AvyD+WfSi7M2/UkXqzQBPg7uRTgxJEDnKXDy74XkmcDgMX3PI+y7sxRnf3GRVP+btc2eNnu0ffTew6YVJ3AOwJD8WdvYu+90kfAQ9hzTKBvQdYT15M6gsRs0nqopSS7LHBjQCd02hkijml0l5dnJRPsJOC3PUulE/qaqEoe1p+hTrq2bjDRSEhACbYglq+XDJ0crqPCoH+SrLdeihHdbBtHHd4CFG87GV5BXgCK9iC624OL1AvVr9lBPnWHBsX45msLeBMSj79SerCq52+pIlxgX85PaQaqSSsU81FnTtf2pnQJ1+gvCX4WWfA5cvjYC6DFgFM8PbIqze5AZqARP9A2id5Au61jcl2TPnWdYDmLj4kr3ayQBZgtsFzgt1Vk1FvwHHe5Ug3jeO/0TMf+fcDeXVJFoNzEfzMb5P9lMEylFI62MORx7iSAuy/5F4UfY93Y5wq4CsXmIN04CV5TVn+DqWRl0Mjyj9q9YVqI+AENLAyecyyS3Ryk7fxN3Xk8pY6v8JMCwuiTZvQpzVOm48B2+f4EnT5uy7VG7zeENTFIGmXArzir8DhsyIB5DqP24uEvkvFeZHzjp2cS8cudXNZICm9ObzwLud13t3Jka1ZI/OXCRpfJ+V0egNOIC/N36XDN5z7fJSSktIbcLyfAXr0kZ+MvHmNfmVGvy7DqZYc7h/d1Xf6ErPDCLYo5LLwd/RSCT7l/zTl9/k/GmDv1PMR1P4AAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle \\left[ 1, \\ 1 - 2 \\gamma\\right]$" ], "text/plain": [ "[1, 1 - 2⋅γ]" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sym.var('r')\n", "rho=r**2-a0*r-a1\n", "display(sym.factor(rho))\n", "sol=sym.solve(rho,r)\n", "display(sol)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- La méthode est zéro-stable ssi\n", "$$\n", "\\begin{cases}\n", "|r_j|\\le1 \\quad\\text{pour tout }j=0,\\dots,p\n", "\\\\\n", "\\varrho'(r_j)\\neq0 \\text{ si } |r_j|=1,\n", "\\end{cases}\n", "$$\n", " donc ssi $0<\\gamma\\le1$." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHoAAAATCAYAAABfohl2AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAD1UlEQVRoBe2Z2VHcQBBA1xQBYMgAZwA4AkMG4AxsMoDyF/xRkAE4AhtnAI6AIwPIwBQZ4PeERit2dYyOXWur3FWtHs3R09PX9Grfvby8jAIcHx+fpu0/0A/gKX2PYfw/XQwNYLMNJL0EN2k/K/WyD4GOO8gJ9Ff6vgK9430H7M3Y8NqF7zdwr0++yhwL7KtD30CTs8aum/e8Jrpirvb6Dj6BW+A6mEFiaCZ9pWclf3Daz+n7OWM72YqWjXSPQ5Zfg5/k35JVp2Xsq0J0tm1wkIZuo6tUn3sqh/YBxKjOIES0E+6z3nHjhuYBC3WCVoZJN92Hj0rNUsl4i7m3dGoj2ky1Dep4g4BZ6ioYWu++KDhtSNmNvB+BjRrTs5Fzzrv3/VBgX3nAWwTS4P/U0PPS1XK6UZ0RVusmOJ7yUnk6hoVcZwPDQ2eRp3eORvFuz7ILbfe6zffxXggpryRd074HV8F1MDh04brQybw+ZTEYetVVkLOILtMZjJgpr2CiQpUCCnDcQkBjWNCZqjsDfEKa/Qkz5VPR7pPcRVBhg3mxUZkUga/LkucJT+uGWnn7kgU+M9FV7kyFzaXC3unOtemucQ/Ca4ReAZ46jdH7HjTdHoJmCOuFpNBIaZSR07mP0Cx6aRvd3tMqvxQY700WePWuq1LBcwMa2nK8DEK0+7u6EjiAUSZa5DyARmMXMHrzkRt42We6FjRSURH5Ovr2aTQbwZPgr4o6WXuVZQa6mjzT1PsSmwYPK/Lq0JdFwRSHXAe8jBjT4CZowaPBLfUbA+vOwCBbtj7tW4MaZbFyeQ7v4iKnsAitTN2s602WcBB49qarwLOKekcLpj8VNwkhoqPSY1jMITSQd5/p1p9nD7RNk97fU8ajvw3swusscmFZNI+UB7wG5ZcUapE889OayJJfN2LPeehqZOoW/Fy2lbTePoxMq9PWxmGt0eDdqrH90ubPrZW327R6q6wbJjjWGdHqV2doC01kKd1jhrp6NTQbmL6eoN5FCaTG+MzLl7SrE3EPUINfgb9pJwVVB6Y/Ytayj/ev93ApMMcrwPO3lSlKllIBJgaQo6uuguOFjDwKqdutjF5/+36EWnxJ/VRZdK8x1A7gZ3psmyLDplbesXL5+TbGWb1qLPJi+baRJayJok11xXwzsxCK1Uv6dOKrkf9eLRoeHR1dDkXmIclSpZNwRydusAgPPFRvjaq2Z32eIclSd9Z86q6bWzrOgS2u/JuzCfgxpGmalL+p2Ht+CNBYljnraqyjqnAf4hip8moocg1JljqdLFzqxkUrP26MXXgurSHJUnngv9S4hyT5Md0WAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle 0 \\leq \\gamma \\wedge \\gamma \\leq 1$" ], "text/plain": [ "0 ≤ γ ∧ γ ≤ 1" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cond=sym.solve([abs(c)<=1 for c in sol],gamma)\n", "display(cond)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- La méthode est convergente ssi elle est consistante et zéro-stable donc ssi $0<\\gamma\\le1$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ">**Q7** \n", "Quel ordre de convergente a-t-elle?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- La méthode est d'ordre au moins 2 car\n", "$$\n", "\\sum_{j=0}^p (-j)^{2}a_j+2\\sum_{j=-1}^p (-j)^{1}b_j\n", "=\n", "\\big(0^2a_0+1^2a_1\\big)+2\\big(-(-1)b_{-1}+0b_0+1b_1\\big)\n", "=\n", "\\big(2\\gamma-1\\big)+2\\big(1-\\gamma\\big)\n", "=\n", "1\n", "$$" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAOCAYAAAASVl2WAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAZElEQVQYGWP8//8/Aww0NDQYAdmrgdgYyP4AEmcBMgSA9GwgfgfEJkCsBMRwAFIAUhkKEgGyy4AUyBQ4YIKzcDBGFUACBj0chKHhJQQLN0ZQZAGDGBRBIOACxKC4OQfE94B4NwDm+hiAOyllRAAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle 1$" ], "text/plain": [ "1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAVCAYAAAB7R6/OAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAATklEQVQoFWOsr68vY2BgSAdiEAgFYhcghvNZgBxhkEBDQ8MeIA0C54C4C8jvBNJCTCARfGBUASR0RsOByHAAJTkQmAlMYiAaOU0KAfm7AcSSDexw+eTdAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\left[ \\right]$" ], "text/plain": [ "[]" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cond2=(0*a0+1*a1)+2*(-(-1)*bm1+0*b0+1*b1)\n", "display(cond2.factor())\n", "display(sym.solve(sym.Eq(cond2,1),gamma))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- La méthode est d'ordre 3 ssi $\\gamma=\\frac{2}{5}$ car\n", "$$\n", "\\sum_{j=0}^p (-j)^{3}a_j+3\\sum_{j=-1}^p (-j)^{2}b_j\n", "=\n", "-a_1+3\\big(b_{-1}+b_1\\big)\n", "=\n", "-(2\\gamma-1)+3\\big(1-\\gamma\\big)\n", "=4-5\\gamma\n", "=\n", "1\n", "\\iff \\gamma=\\frac{3}{5}\n", "$$" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAADoAAAAUCAYAAADcHS5uAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACNklEQVRYCd2X61HbQBCAFYYCHLsD04FJOoAOYOgAdxD/tP8x0AGkAh4dABWQUAIlgDsw3yckzelhjayRwXhnVre3d7dvrU7RYrGINhGn0+moaBe8Hjgs8pvMd6MlMJvNRiyNGcdLtqyb/YjuHkqeE0XSwv7HsNpzp2b7LWv9mvV1L72iYA4acJ28A/dxXt7KUJlRhP1ZWVL3B56x47grsaWMItwIGrVWkevKsK7llBxFwQnOXnWt6Kvl5Uo3KdnLrzYq1Y89p9C+nwNwCJ7BS5sT0yhifsRwDrr+AB7Dy6oR+gDevyyjMNw4Z3xh3ATQwRvsuQAn0OJ/aA2PAdpA/AV18ALUB+chjNg3DzPqp0RhGwHYchgawvwF1CErbg9ap8zez2DfhPk9qHM2M/uNZ6LYURhGplXJctbIP4KOTUEDcyXY8KDVdsBZnbRkq7qyPP1RvnvNdLSbHOoxtipZzvk+tPqIa0AVIPMefp9xmVztjR0ontcecAAajMwnMyrjNwteEEIw7cOEb9l8Zln/QrcXhiL0ZWBLk2o4Yl8WDDNqDcd1HEqF/yafsao8wq3roK/QWxVYG1HJ1iUG2Kkz2MmoMuE7t8p7V5bQnnOJo7mewTy9rTUN/HWo/oc3/xASBZaz0RO8Yz7Bz8og5q75gT5tSLNqyVrKdlV7Qi3oA5j/GWnyi/Pd9vArd1u0ua50a6O2qYtk0krMum1q59Y5imNeNPw85WAbHfVWVOrM2+hovgkleX0HjFAC4z2BqroAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle 4 - 5 \\gamma$" ], "text/plain": [ "4 - 5⋅γ" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABsAAAAzCAYAAABmK3MOAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACh0lEQVRYCe2Y4VEbMRCF7UwKMKECnA4g6cB0ELcAHYTJL/tfBjqAEmI6gHQAdBBKgHQA37ucjE6cpHcOkx8Z78wiaaV973a1OosbLxaLyahHlsvl7x6zZcK3F/Md3rfoY6KnFmp+0SrBE/5qTGS/6BzzNNd537+bAfsIhPl7FwaHKWuP2/VKk8anQx7SIgNQ4Ce0gWxE/wu2K9o5ekm/KtozR5SGo5YgrA9p/xYMtdYluwNI1SltBOJ1P9hqrZtGRbETg0VRnsf2Ut+NrIMB0QyDjoeq+KIzWRhYkQV/gPfpi+gzqtTeoLYMJROBdASxqvGW9s2rUfgdgUTlriJZ0Z90JjMDa88A25f2YIQ0KrVVschA0ftTKbMiyLG6e6Z0XUOmNpZP7SAc8HjuVd8lO0k9IVaBKFKVf/oQ6fJmbJEBdoHO0PgAT0E4xGZFJTaLTAtbUBtYPqm4BZL6bTTekm2UttRpm8Y0IxuNq+eM8/XkIrN2XFrrkBUBSuDp3LZA0oxsNLbTyOa/+qXGNkGnLnO1QCKgnwJn3Fx4aNWXHPxp6n/tyIB6QPUjqQhFpAvPAQ8gmyVDIrsDeG6hZhYNiSwD4Zv/KdmQNI5Io/510n7toqrC79hCwTAsy5DIRPID8DNUty2p7pKzMsXLrE0GqG5S68qjfw+MLkDxjesFuadnk/X4yiTCKcRKaVUsMsD0v7Ou4DlRiqtikYGia3Yf4Acx8CBWkbhkuhF/FHAiKg774uqSnUPWKQTGX1ti+61inTOA71F9YAmESp/elXvY1hXakmcbi0zegKry1h9dsoiFCTeNBQh/6v8lC3umt0DnHA3Z+DSRKRbzDXZIo6os/sD51h83G7xntXPA0RugKcgAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle \\left[ \\frac{3}{5}\\right]$" ], "text/plain": [ "[3/5]" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "cond3=(0*a0-1*a1)+3*(1*bm1+0*b0+1*b1)\n", "display(cond3.factor())\n", "display(sym.solve(sym.Eq(cond3,1),gamma))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ">**Q8** \n", "Pour deux valeurs différentes de $\\gamma$ pour lesquelles le schéma est convergent (dont une qui donne l'ordre de convergence maximale), vérifier empiriquement l'ordre de convergence sur le problème de Cauchy\n", "$$\n", "\\begin{cases}\n", "y'(t) = y(t)(1-y(t)), &\\forall t \\in I=[0,1],\\\\\n", "y(0) = 2,\n", "\\end{cases}\n", "$$\n", "après avoir calculé la solution exacte." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- On définit la solution exacte (calculée en utilisant le module `sympy`) pour estimer les erreurs:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "%reset -f\n", "%matplotlib inline\n", "\n", "from matplotlib.pylab import *\n", "\n", "# variables globales\n", "t0 = 0\n", "tfinal = 1\n", "y0 = 2\n", "\n", "phi = lambda t,y : y*(1-y)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\frac{d}{d t} y{\\left(t \\right)} = \\left(1 - y{\\left(t \\right)}\\right) y{\\left(t \\right)}$" ], "text/plain": [ "d \n", "──(y(t)) = (1 - y(t))⋅y(t)\n", "dt " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle y{\\left(t \\right)} = \\frac{1}{C_{1} e^{- t} + 1}$" ], "text/plain": [ " 1 \n", "y(t) = ──────────\n", " -t \n", " C₁⋅ℯ + 1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left\\{ C_{1} : - \\frac{1}{2}\\right\\}$" ], "text/plain": [ "{C₁: -1/2}" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle y{\\left(t \\right)} = 1 + \\frac{1}{2 e^{t} - 1}$" ], "text/plain": [ " 1 \n", "y(t) = 1 + ────────\n", " t \n", " 2⋅ℯ - 1" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "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) , phi(t,y(t)) )\n", "display(edo)\n", "solgen = sym.dsolve(edo)\n", "display(solgen)\n", "\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.apart())\n", "\n", "sol_exacte = sym.lambdify(t,solpar.rhs,'numpy')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On calcule la solution approchée pour différentes valeurs de $N$:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Multipas gamma=1/5 ordre=1.95\n", "Multipas gamma=3/5 ordre=2.94\n" ] }, { "data": { "image/png": "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Sk5OrpwyZcpJgBkzZhz51a9+1Rc48POf/zxp+fLl5wAUFxd32bJlS7fx48efmjdv3sD777+//w033HAiNze3NNBnjh49+tTbb7/d68CBA9G/+93vEtetW7et7vl169YVtucYAlHQExER7zl4sH6g27gRCgvB53PnExJcmPvBD1ygGzcORoxwz9nJmWsY8lo6fgZyc3OPL1y4cOCqVasKDx48GAMQExNjfbV/tkB5bUexDUyDDq0xhmXLlsWvWbMmfu3atdvj4+N9EydOTD916lTUmDFjKtavX7/1j3/8Y8K8efP6r169+uslS5bsb/iZGRkZFb/97W+7Pfroo/0efPDB4l69evnqnm9NR88YkxWoXmvtutaMS0FPREQil88HO3c2DnVffeW/JiXFBblbbvGHuppn5aSNWuq89es3mv37G6fl88+v5OOP26V7df/99x9OSEionjhx4qlly5bFAwwYMKDq6NGjMcXFxdEJCQm+lStXJkyaNOnruu9LSEioPnnyZJMBcP/+/V1Xr17dc/LkySdffvnl3pdeemnp8ePHoxMSEqrj4+N9GzZs6LZp06aeAEVFRV369u1bNXv27KPx8fG+l1566bxAn5mRkVGxZcuWHiUlJdFLly5t9L9dazp6rQ10TVHQExGRiBBVWekmO9QNdJs2uUkQANHRkJEBkyb5A93YsdC73eYCSEsWLNhX7xk9gG7dfCxYsK+9fouhQ4ee/ulPf3qw7rHY2Fj7yCOP7J84ceKIAQMGVAwbNqy84fuSk5Ors7KyStPS0kZeddVVJ5599tm9dc8PGTKk/MUXXzxv9uzZgwYPHlwxd+7cQzExMfa5555LHD58eMbQoUPLx44dexJg3bp13R9//PEBUVFRxMTE2N/85jcBF0qMjY21cXFx1YsWLdoXHd2ocdcqy5Yti1+4cGG/9PT0U7fffvuxqVOnlrTl/Qp6IiISfo4cadSl+9bWrf5br/HxLsTdeacLdOPGuZDXrVto6+7saidcPPlkf4qLu5KcXMmCBfvaYyJGWVnZhobHpk6dWlIbfObPn39w/vz5B5t73xtvvPFlU+eioqIINOnhvffe2xGonptvvjngpI6GqqqqzHXXXdemcFaXMcb27NnTV1FREZWamlrZ1vcr6ImISOhYC19+WT/UbdgAe+s0W/r3h3Hj2JWZSWrtGnWDB0OUVggL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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from scipy.optimize import fsolve\n", "\n", "def multipas(phi, tt, gamma):\n", " h = tt[1] - tt[0]\n", " uu = [y0]\n", " uu.append(sol_exacte(tt[1]))\n", " for i in range(1,len(tt) - 1):\n", " temp = fsolve( lambda x : -x+2*(1-gamma)*uu[i]+(2*gamma-1)*uu[i-1]+h*(1-gamma)*phi(tt[i+1],x)+h*(3*gamma-1)*phi(tt[i],uu[i]) ,uu[i])\n", " uu.append( temp )\n", " return uu\n", "\n", "H = []\n", "err_mp_2 = []\n", "err_mp_3 = []\n", "N = 10\n", "for k in range(7):\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_mp_2 = multipas(phi, tt, 1/5)\n", " uu_mp_3 = multipas(phi, tt, 3/5)\n", " H.append(h)\n", " err_mp_2.append(max([abs(uu_mp_2[i] - yy[i]) for i in range(len(yy))]))\n", " err_mp_3.append(max([abs(uu_mp_3[i] - yy[i]) for i in range(len(yy))]))\n", "\n", "print ('Multipas gamma=1/5 ordre=%1.2f' %(polyfit(log(H),log(err_mp_2), 1)[0]))\n", "print ('Multipas gamma=3/5 ordre=%1.2f' %(polyfit(log(H),log(err_mp_3), 1)[0]))\n", "\n", "figure(figsize=(8,5))\n", "plot(log(H), log(err_mp_2), 'r-o', label=r'Multipas $\\gamma=\\frac{1}{5}$')\n", "plot(log(H), log(err_mp_3), 'b-o', label=r'Multipas $\\gamma=\\frac{3}{5}$')\n", "xlabel('$\\ln(h)$')\n", "ylabel('$\\ln(e)$')\n", "legend(bbox_to_anchor=(1.04, 1), loc='upper left')\n", "grid(True)\n", "show()\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "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.8.5" }, "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": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }