{
"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 v1 : 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.I.R. a été présenté pour la première fois par KERMACK & McKENDRICK à Londres et Cambridge en 1927 pour expliquer a posteriori l’évolution de l’épidémie de peste à Bombay en 1905-1906.\n",
"\n",
"A 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 « Infectés » (I) : les malades, ce sont aussi les contagieux (c’est une hypothèse de ce modèle) ;\n",
"- les individus « Rétablis » (R, comme « Recovered » en anglais) : ceux qui ont déjà eu la maladie et sont désormais immunisés contre cette maladie. Dans ce modèle on inclut dans ce groupe les personnes décédées (puisqu’elles ne peuvent plus contracter la maladie).\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 (P). \n",
"\n",
"Le modèle s’écrit \n",
"$$\n",
"\\begin{cases}\n",
"S'(t)=-\\beta S(t)I(t)\\\\\n",
"I'(t)=\\beta S(t)I(t)-\\nu I(t)\\\\\n",
"R'(t)=\\nu I(t)\n",
"\\end{cases}\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Dans la suite, considérons les données initiales:\n",
"- $I(0)=0.01$\n",
"- $S(0)=0.99$\n",
"- $R(0)=0$\n",
"\n",
"Pour la rugéole on prendra\n",
"- $\\beta=0.8$ = taux de transmission (plus il est grand, plus la maladie est infectieuse)\n",
"- $\\nu=0.05$ = taux de rémission ou de décès du virus ( = 1 / (duréé moyenne de l'infection); plus $\\nu$ est petit, plus le temps durant lequel le malade est contagieux est grand )\n",
"\n",
"On simulera pour $t\\in[0;90]$ 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",
"beta = 0.8\n",
"nu = 0.05 \n",
"\n",
"# yy=[S,I,R]\n",
"phi0 = lambda S,I,R,t : -beta*S*I\n",
"phi1 = lambda S,I,R,t : beta*S*I-nu*I\n",
"phi2 = lambda S,I,R,t : nu*I\n",
"\n",
"S0=0.99\n",
"I0=1-S0\n",
"R0=0 \n",
"\n",
"tt = linspace(0,90,91) # en jours\n",
"h = tt[1]-tt[0]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
">**Q1** \n",
"Soit $P(t)=S(t)+I(t)+R(t)$. Montrer que $P$ est un invariant."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$P'(t)=S'(t)+I'(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 $91$ points. \n",
"Afficher ensuite sur le même repère $t\\mapsto S(t)$, $t\\mapsto I(t)$, $t\\mapsto R(t)$ et $t\\mapsto P(t)$. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On notera $S_n\\approx S(t_n)$, $I_n\\approx I(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,I_n,R_n,t_n),\\\\\n",
"I_{n+1}=I_n+h\\varphi_1(S_n,I_n,R_n,t_n),\\\\\n",
"R_{n+1}=R_n+h\\varphi_2(S_n,I_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, I0, R0, h variables globales\n",
"def euler_progressif(phi0,phi1,phi2,tt):\n",
"\tSS = [S0]\n",
"\tII = [I0]\n",
"\tRR = [R0]\n",
"\tfor i in range(len(tt)-1):\n",
"\t\tSS.append(SS[i]+h*phi0(SS[i],II[i],RR[i],tt[i]))\n",
"\t\tII.append(II[i]+h*phi1(SS[i],II[i],RR[i],tt[i]))\n",
"\t\tRR.append(RR[i]+h*phi2(SS[i],II[i],RR[i],tt[i]))\n",
"\treturn [SS,II,RR]\n",
"\n",
"[SS_ep, II_ep, RR_ep] = euler_progressif(phi0,phi1,phi2,tt)\n",
"\n",
"figure(figsize=(10,5))\n",
"PP_ep=[SS_ep[i]+II_ep[i]+RR_ep[i] for i in range(len(tt))]\n",
"plot(tt,SS_ep,'--',tt,II_ep,'.-',tt,RR_ep,':',tt,PP_ep)\n",
"xlabel('t')\n",
"legend(['S(t)','I(t)','R(t)','P(t)'])\n",
"title('Euler progressif') \n",
"grid()\n",
"axis([tt[0],tt[-1],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 $91$ points. \n",
"Afficher ensuite sur le même repère $t\\mapsto S(t)$, $t\\mapsto I(t)$, $t\\mapsto R(t)$ et $t\\mapsto P(t)$. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On notera $S_n\\approx S(t_n)$, $I_n\\approx I(t_n)$ et $R_n\\approx R(t_n)$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Euler implicite**\n",
"$$\n",
"\\begin{cases}\n",
"S_{n+1}=S_n+h\\varphi_0(S_{n+1},I_{n+1},R_{n+1},t_{n+1}),\\\\\n",
"I_{n+1}=I_n+h\\varphi_1(S_{n+1},I_{n+1},R_{n+1},t_{n+1}),\\\\\n",
"R_{n+1}=R_n+h\\varphi_2(S_{n+1},I_{n+1},R_{n+1},t_{n+1}).\n",
"\\end{cases}\n",
"$$"
]
},
{
"cell_type": "code",
"execution_count": 6,
"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, I0, R0, h variables globales\n",
"def euler_regressif(phi0,phi1,phi2,tt):\n",
"\tSS = [S0]\n",
"\tII = [I0]\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]) , -z[1]+II[i]+h*phi1(z[0],z[1],z[2],tt[i+1]) , -z[2]+RR[i]+h*phi2(z[0],z[1],z[2],tt[i+1]) ]\n",
"\t\tStemp,Itemp, Rtemp = fsolve( sys , (SS[i],II[i],RR[i]) ) \n",
"\t\tSS.append(Stemp)\n",
"\t\tII.append(Itemp)\n",
"\t\tRR.append(Rtemp)\n",
"\treturn [SS,II,RR]\n",
"\n",
"[SS_er, II_er, RR_er] = euler_regressif(phi0,phi1,phi2,tt)\n",
"\n",
"figure(figsize=(10,5))\n",
"PP_er=[SS_er[i]+II_er[i]+RR_er[i] for i in range(len(tt))]\n",
"plot(tt,SS_er,'--',tt,II_er,'.-',tt,RR_er,':',tt,PP_er)\n",
"xlabel('t')\n",
"legend(['S(t)','I(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 ensuite sur le même repère $t\\mapsto S(t)$, $t\\mapsto I(t)$, $t\\mapsto R(t)$ et $t\\mapsto P(t)$. "
]
},
{
"cell_type": "code",
"execution_count": 7,
"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,I0,R0]\n",
"sol = odeint(pphi,CI,tt)\n",
"\n",
"SS,II,RR = sol[:,0],sol[:,1],sol[:,2]\n",
"\n",
"figure(figsize=(10,5))\n",
"PP = [SS[i]+II[i]+RR[i] for i in range(len(tt))]\n",
"plot(tt,SS,'--',tt,II,'.-',tt,RR,':',tt,PP)\n",
"xlabel('t')\n",
"legend(['S(t)','I(t)','R(t)','P(t)'])\n",
"title('Odeint') \n",
"grid()\n",
"axis([tt[0],tt[-1],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\\gamma u_{n}\n",
"+\\left(1-2\\gamma \\right)u_{n-1}\n",
"+h\\left(\\gamma \\varphi_{n+1}\n",
" +\\left(2-3\\gamma \\right)\\varphi_{n}\\right).\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\\gamma $ et $a_1=1-2\\gamma $\n",
"- $b_0=2-3\\gamma $ et $b_1=0$\n",
"- $b_{-1}=\\gamma $\n",
"\n",
"La méthode est implicite si $\\gamma\\neq0$.\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\\gamma+(1-2\\gamma)=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)=-(1-2\\gamma)+(\\gamma+2-3\\gamma)=1\n",
"\\end{cases}\n",
"$$\n",
"Vérifions ces calculs ci-dessous:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"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*gamma\n",
"a1=1-2*gamma\n",
"b0=2-3*gamma\n",
"b1=0\n",
"bm1=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\\gamma r+(2\\gamma-1)\n",
"$$\n",
" dont les racines sont \n",
"$$\n",
"r_0=1,\\quad r_1=2\\gamma-1.\n",
"$$"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAALoAAAAVCAYAAADxRPTKAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEuklEQVRoBe2a61HcMBSFnZ0UwKODpYMlVBDogEcHoQPyE/4mHZBUkEAHQAcJHUAJzHZAzudIHuGVLK3X7+HOeCXree/R0dW119nr62vmXpeXl3P3fmz5JvRvYoyx4TYlfX3rN8scubq6utDtwikaY3Zu7Kil+0QwqGX7hDqtcOADOxnRAh8rOVD6NS8Y8I90ZDPe6NpXfllWVWVs2KXSH+W6qnu1bwUDjTvXvBbXT8q/cK/yxyp93uvCCAi7tTiQE12dtjTkg9L98ND91hgdf0oLSAJZMHRb5StEV3mm8r9KPofqaeOK2rWCgcaF5NdKj+x8yn9Tns14pPy9LX9PqxEQVqxRLQ58NEMD/HX1NP3WykgIfYIWyqeEWNiDXef0SZC2MFjRQfrjzb9IJ06l7QTdNmqiuQ41AMf5WifcRpNWdK6rj/rV5oCN0U+HAkIFPmtVGXuwCy+QIm1hAMmePHrgybdUjsdvW8AgFYe2dWH8TvRxOTDTDXHpcxfW9TAHdp3G5m0ZAwj9rDmWAT2GRMCAiqMuzjlA6ELs6I0TtTjEwWe6FsoTT9qHKhYNLzWIo1C6hAS7sC+mZxCD0MCp5cIoD7c87cE2U33xQKo8TodQB5zR/URlxQZRntPhj1um+1ZFc02CA4QuPNg9BdA6k6H52wKlxLznSm3My4IMXbArJTSowqBxGw15rNPIx1cZMTsPWhD8uy7quXcFh1MQ361oMT8JDuDROTp5k/FGBChA2w2wozwPM3umEX1iXtI07TXBrhSiezFoUXMeQm+FJ4TODNZ4b/fBlAfWO12Q+5FUTb0nL2O0IZpzMhyA6JDY5yVY/N8GQEC2njwTAEXe1K8kakP/B12kqcJiF0d5aqeKdsRnKfOHMMDWRu3QeJyMxOxuSEPI4t5bkyjD04PJofrkG8NWllMzNuFNWbAvU71v3dhEvrnpgu2bcABbm9QHndaVnAMQ3SsyPiecUquoNdjbvlyofkuV9f1ePkjgsr6h+ybt0FiQdkdp8U6deXXvJbDK+dNrVxeelQWrFLXzETlTORuJE9k7T2hQtd+UA43qE9IzUp5zYKZGL7qqvB67veqtQWSeXquxC/tiEsMg1j9ab8i2p7TwnspDPkgck2O1u401arF+9ByA6HiKKrDx6H2CvMn6sZujntC0qcJgEx0ykXShAXyfV+BpUzbi7kYKbN559BwgdHnUdeDDwngbCHDnq++xzC58LDQhdMK+mAQxiHWM1RsMefi8V56Y1ZVo3G0a/3I7dZmfCgcgOiCyED6B5IQtnT7t+xShTHpYPfEwyI3K8Ni8nfC9BaKdN06ksyNVGDjNamVxEuBIfF6WlE3Iv6cp7cpjN3U/DQ7w9aK+333StZjaN8nYlWrTUDGQXjepNoTaaYxjXReh+q7Lu9JH88x15RyYmW3Pnz8pnq8pL9HFOPzRhV2pMjgM5Mk5kVKeMWI28gaMayjSlT4FB9zv0Tli+eezCWB7BVQ2cNy++TQ2RSH1GxQG0ofNR1g2iNAxBcOhtClzwHp09OMVUvlhaSh6r6sHdtQ5oYaGAf+KvpN83dX/3/4NBwqiC1COEzw633qPVoz+tU6mAWJQZ7OOdu2aUtzHgX+ZeB8FEtwhqwAAAABJRU5ErkJggg==\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": "iVBORw0KGgoAAAANSUhEUgAAAFwAAAAVCAYAAADLuIn8AAAACXBIWXMAAA7EAAAOxAGVKw4bAAACxUlEQVRYCe2Z7VHcMBBADUMBBDqADiDp4OgAWiAdkJ93f5MOSCrIQAdHOkjoIHSQhBLynrGMzvjONmefdTPsjJC8Wn09r1YytzOdTq+yLPtIUi5ms9n9U/Htbx8E4LnAdwfgn+l4TsVdHwO89VFPAL4557366mcthic83ZBOKT8+1/RTos8jevpU9Pae/K/P6Ldqp7XlVAucxvss+luxeCEIpXcpYF+Tn4XOKesJv9SRkt51zK8zp2XA9eQLIdCpMUgvH0KEG86PvH/G07sveXBXvcuVif5hnp057Y68lgnj/2biekosevY++kF2VjzQpstjAxfsQ+EpdWuvvog6m63S1YaUTa0A0HnYqhkvD2HUlwcn5XPsDEF6vS/KK6xbOhfK7pafsa6oSiob28NfwACYsIUabi4ZOmO6h7igv5Cs9zmWk9RhO9lRPTymFZU9LG+BJ1hhC1dvjg9QD1a/HYR8b46NLyN5SQo44K4hZkyPQ42hJH4OUNXp+YadCW3yFxQqqzn1ngc/SF3Ohd6/vJMBDhDhHZCXd3Kh8VwLEv0j6ZDkDnjQdpVoT/3pKptN1O1uYpCmMYChFx+Tl54sSFNTW+rPsbttYZeEydrAWWyXLfpi0bQ3/n4gLw/JwsiX4Gd+kxw2GaRU3yakhAUdMHG3ZSkF7H/kHlydtytt9GAPyTvKxu9YGuNyYfw9bjRieSmneE5LgQNAEMrkKctu0BkrvR18VUduHFXnV6Fp4YVo0yBz6oVu/K5KeQevVkTPjtnGLmrSb5HxGznFI64CXsbTuEG1zIDGXrd/Z7Ft50aLDdx1owpraMUpTHLtGF50ZAzu6t1hDq/KGc+d13g7eVXnAzZaGzgL99D8M+Acl3Xt9dGQtFWyNnBWewn02rvywCT8ytyKr8uYQ4jh/gigvvOX1UiwnevC/9FVpCjwCb9pet7M/wMSe+/UtGnGwAAAAABJRU5ErkJggg==\n",
"text/latex": [
"$\\displaystyle \\left[ 1, \\ 2 \\gamma - 1\\right]$"
],
"text/plain": [
"[1, 2⋅γ - 1]"
]
},
"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\\le\\gamma<1$."
]
},
{
"cell_type": "code",
"execution_count": 9,
"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\\le\\gamma<1$."
]
},
{
"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(1-2\\gamma\\big)+2\\big(\\gamma\\big)\n",
"=\n",
"1\n",
"$$"
]
},
{
"cell_type": "code",
"execution_count": 10,
"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",
"-(1-2\\gamma)+3\\big(\\gamma\\big)\n",
"=5\\gamma-1\n",
"=\n",
"1\n",
"\\iff \\gamma=\\frac{2}{5}\n",
"$$"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAADgAAAAUCAYAAADY6P5TAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB9klEQVRYCd2X7VHCQBCGI0MBKB1AB2gJ2AG0oB3oT/jnaAdoBYodIB0oJVACQwf4PIFkjpmAmaAm8M4st3e7R/bjdi+JVqtVNBgMOo4hsdaAWuHaMfL1aI3pcDhswM42c3lxuR6O4xcfOlg61m74pVYnDi6cABXm0Dv0kCjBVxabxLxgoD5cQa3Q2MTBGYr9UHAs/CYJse3wd9htklLUUu5EmZN3MDmiEem9IYk2lybkObYGk6bDNFKnx/AIKf+A+qzFxQyvvMvwGa65XiaSDOrYG4Y9Qffw0tfG4Ng+eANgMevYE6STzkN00EsdDgVl8XEGMeo6NID5HNKREdSG1xmzdR7o3TOfQDplk7K43VMppEc0wyqviy6G65xHM6vLumZmPcrqmtmdQO5JmUKOeWFgt0ol70b16myeMF4w7rrUG8gyDWd9CTUhg2BA9kJ9FHY9Z+/eosIaG70csyJ64Z9iVJ7o9dDz5aBy0MFnjGtnWGZHzFtTdt5KQgdHOGgzScHcNwKRVXdryfbv6/a0tFkS6Pj0acWZXwg4ZA15NQiFC8guac3sBToG6Hav0h8Leb4v2MJTZ7lZVvaEydYnUpHPIT6pxkX2/dcej2hhEDkj9mP3LPyAX9h4kIM83xcEr5nK4lAHfYvJ22lLCcKhDpbaXPJE7BuYTdfHGv5njwAAAABJRU5ErkJggg==\n",
"text/latex": [
"$\\displaystyle 5 \\gamma - 1$"
],
"text/plain": [
"5⋅γ - 1"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAABsAAAAzCAYAAABmK3MOAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACdklEQVRYCe2Y4U3DMBCFW8QACCagbEBhg7IBrAAbwM/2H4INYARgA8oI7QYwArABfK9q2vTqJM8B8QP1JCv22fee73xOHHeHw+FOJyGj0egzobZU2CYxt7CeUD5CubFQqwc9BjzhP3bx7JXKBbMZV9v+rAfscxDOtl0YDHqMvZqPP+L5rjb66VzX+LDI5kR3PE8KROoK9UQ6ihUVrZkjAr4oD4RAXiqJtD6WuGQD0F4hiFkmj3bQK8SN4pIJ9A3Qqu0QJ5EkdtfsLGnd6RxKzySsJHE9W+OCQEQKX5Gha2OiojUZQEqMJ0hvI2hVuxUZBHcAag2rwpvkyyaDQG+DXZ6LPZdETiizyCA4BeOg7BH1nkoCe01lkwGohDjmGRNCE9Crq1Hc1NfMlRBjyLReZRmgs5LEIgP5mSJCrVcUa4/JyCJj5geRoU3bXrM24NFmQxYj0qq9CWOrsEWjxn3GHvuKRlVtxnar+qR3yGoB6sBj3yZBYkRate0wsvizk1SZBZ19ZpRdY4KUwF8ETrv4pBRnxX5pTG3V9gwUfY11SJWHInqi9JmAdJbkeDYFOOs0FWeQ41m0zW7/KVlOGDuEUWcQrdcepUe5RlckDM16yfFMJA+A31J0nFPRz+CgnmLZa5MBqj/MReZRfwNGv1LxaLdEDzWbLNgVTRH+7okYL54pusKoEoW4UVzPdDuQAtwVAxOxksQluwcwdVBVclg3BZqUS6ZriZVEoH0pAMR+q1j7DGD9+N2UCBU+vSv30S0yVMx1YpEJAFBl3spdSB1wqs8NY8o2W/d/yYo101tgZR/lLHyMZ8Sif4ZdhFFpXb7g/O3LzRneN8O0tvopBioDAAAAAElFTkSuQmCC\n",
"text/latex": [
"$\\displaystyle \\left[ \\frac{2}{5}\\right]$"
],
"text/plain": [
"[2/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": 12,
"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": 13,
"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.97\n",
"Multipas gamma=2/5 ordre=2.94\n"
]
},
{
"data": {
"image/png": "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n7aoHbWr/vffE//ppzT79FPiP/2UuA0bMNYSiI7mwOmns/fqq9mXksK+Hj0oKl7qJDc3l91r1nhc+ckL15/JifBTWyp64glaPPQQbXJyaJCURMHkyWy75Rb21MS1Bw8evO+ll15q9vOf//z7559/vsWoUaP2LFu2LG79+vUNhg0b1vXLL79cCzB58uTE3Nzceo899ti3Je+dMGFC2y1btsScfvrp3QcOHLh/+vTpW2NjY3sfOnRoxfr16xukpaV17d2798E1a9bEdurUKe+ll17a2KRJk8CQIUM6b9++vUF+fn7ULbfcsmPixIm79+/fHzV8+PBO27dvbxAIBMw999zz7U033fR92VpXr14dk5aWdtqCBQu+6NmzZ35+fr4588wzz3jzzTe/7Ny5c5UD6u9+97tWS5Ysabpv3756X3zxRcN77rmnWr16ngc9Y8wiICnIoQzgBuDPxpjJwOtAQbBrWGufBJ4E6Nu3r73oootqpdasrCxq69qh5pe2+KUd4J+2qB01bMuW8jNiPy/ugGjUCPr3hzFjYMAAos45h/hGjYgPcomwactJ8ks7wF9tKeuJJ2hx1110yMtzQ8O2b6fBXXfRAaAmwt6YMWP2TJky5dRrrrlm77p162JvvPHG75YtWxZXlfc++uijW4cNG9bo888//yzY8Y0bNzacPn36xqFDhx686qqrkh9++OGEhx56aEdmZubGxMTEotzcXNO7d+/uo0eP/v4///lPk6SkpCNZWVlfgestrHi9Xr165Y8ZM2bXG2+80bRnz567pk2blnDppZfuLRvyUlNTux08ePCo906bNm3LiBEjDgDcf//9O++///6dVf1vVJHnQc9aO+Q4pwwFMMacBlxe+xWJiHjEWvjqq/LBbuNGdyw+3m0h9vOfu4kTffpAgwaelit1zw030G7NGmIrO75qFY0LCig32DMvj6g77yT5mWdICPaenj059MwzbKnK9z/nnHMOb926Neapp55qMWTIkH3Vq/7YkpKSCoYOHXoQYMyYMd/9+c9/bgXs+P3vf584f/78ZgA5OTn1165d27BPnz6HMzIy2t16661trrjiin1paWm5wa7Zq1evwwsXLmy6Y8eOejNnzkzIzs5eV/Z4dnb2+ppsQzCeB71jMca0stbuNMZEAffjZuCKiESmzEzIyHCTItq3h9/+1q1NVzbY5eS4cxMS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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*gamma*uu[i]+(1-2*gamma)*uu[i-1]+h*(gamma*phi(tt[i+1],x)+(2-3*gamma)*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, 2/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=2/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{2}{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
}