{"id":6698,"date":"2020-09-22T19:58:43","date_gmt":"2020-09-23T00:58:43","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/analisisnumerico\/?p=6698"},"modified":"2026-04-05T20:57:59","modified_gmt":"2026-04-06T01:57:59","slug":"s3eva2020paoi_t2-modelo-epidemiologico-no-letal","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-s3eva20\/s3eva2020paoi_t2-modelo-epidemiologico-no-letal\/","title":{"rendered":"s3Eva2020PAOI_T2 EDO Modelo epidemiol\u00f3gico no letal"},"content":{"rendered":"\n<p><strong>Ejercicio<\/strong>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-3eva20\/3eva2020paoi_t2-modelo-epidemiologico-no-letal\/\" data-type=\"post\" data-id=\"6688\">3Eva2020PAOI_T2 EDO Modelo epidemiol\u00f3gico no letal<\/a><\/p>\n\n\n\n<p>El ejercicio representa un sistema de ecuaciones diferenciales ordinarias, que ser\u00e1n resueltas usando Runge-Kutta de 2do Orden.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2020\/09\/ModeloEpidemiologicoSIR01.png\" alt=\"Modelo Epidemiologico SIR 01\" class=\"wp-image-18628\" \/><\/figure>\n\n\n\n<p>De compararse con la curva de contagios de Covid-19 se tienen diferencias en la poblaci\u00f3n recuperada, pues el modelo se considera no letal por lo que no se contabiliza el n\u00famero de fallecidos.<\/p>\n\n\n\n<p>El modelo es el m\u00e1s b\u00e1sico y permite cambiar por ejemplo la tasa de infecci\u00f3n, y se ve los cambios en la curva de infectados. Se puede observar lo que se indicaba como objetivo de \"aplanar la curva\" al disminuir la poblaci\u00f3n expuesta mediante cambiar la tasa de infecci\u00f3n al exponer m\u00e1s o menos poblaci\u00f3n al contagio por interacci\u00f3n entre \"susceptibles\" e \"infectados.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Desarrollo anal\u00edtico<\/h2>\n\n\n\n<p>Las f\u00f3rmulas para el algoritmo se identifican como:<\/p>\n\n\n\n<p>\u03b2<sub>infecta<\/sub> = 1.4<\/p>\n\n\n\n<p>\u03b3<sub>recupera<\/sub> = 1\/4<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(t,S,I,R) = -1.4(S)(I) <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> g(t,S,I,R) = 1.4(S)(I) - \\frac{1}{4}(I) <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> w(t,S,I,R) = \\frac{1}{4}(I) <\/span>\n\n\n\n<p>que luego se usan en cada iteraci\u00f3n que se registra en la tabla empezando con las condiciones iniciales<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>itera<\/th><th>S<sub>i<\/sub><\/th><th>I<sub>i<\/sub><\/th><th>R<sub>i<\/sub><\/th><\/tr><\/thead><tbody><tr><td>0<\/td><td>1<\/td><td>0.001<\/td><td>0<\/td><\/tr><tr><td>1<\/td><td>0.9977<\/td><td>0.002809<\/td><td>0.0003937<\/td><\/tr><tr><td>2<\/td><td>0.9916<\/td><td>0.007862<\/td><td>0.0014987<\/td><\/tr><tr><td>3<\/td><td><em><strong>tarea<\/strong><\/em><\/td><td>...<\/td><td>...<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><em><strong>itera = 1<\/strong><\/em><br><span class=\"wp-katex-eq\" data-display=\"false\"> K_{1S} = h. f(t_i,S_i,I_i,R_i) =<\/span><\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> = 1(-1.4)( 1)(0.001) = -0.0014 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_{1I} = h. g(t_i,S_i,I_i,R_i) =<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> = 1\\Big((1.4)(1)(0.001) - \\frac{1}{4}0.001 \\Big) = 0.00115 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_{1R} = h. w(t_i,S_i,I_i,R_i) = <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> = 1 \\Big( \\frac{1}{4} 0.001 \\Big) = 0.00025 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_{2S} = h. f(t_i+h, S_i + K_{1S}, I_i+K_{1I}, R_i +K_{1R}) = <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> = 1 \\Big( (-1.4)(1-0.0014)(0.001+0.00115)\\Big) =<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> = -0.003005786 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_{2I} = h. g(t_i+h, S_i + K_{1S}, I_i+K_{1I}, R_i + K_{1R}) = <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> = 1\\Big((1.4)(1-0.0014)(0.001+0.00115) -\\frac{1}{4} (0.001+0.00115)\\Big) =<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> = 0.002468286 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_{2R} = h w(t_i+h, S_i + K_{1S}, I_i+K_{1I}, R_i +K_{1R}) <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> = 1\\Big( \\frac{1}{4}(0.001+0.00115) \\Big) = 0.0005375 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> S_i = S_i + \\frac{K_{1S}+K_{2S}}{2} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> = 1 + \\frac{-0.0014 -0.003005786}{2} = 0.997797107 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> I_i = I_i + \\frac{K_{1I}+K_{2I}}{2} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> = 0.001 + \\frac{0.00115+0.002468286}{2} = 0.002809143 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> R_i = R_i + \\frac{K_{1R}+K_{2R}}{2} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> = 0 + \\frac{0.00025 + 0.0005375}{2} = 0.00039375 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> t_i = t_i + h = 1 + 1 = 2 <\/span>\n\n\n\n<p><em><strong>itera = 2<\/strong><\/em><\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_{1S} = 1(-1.4)(0.9977)(0.002809) = -0.003924<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_{1I} = 1 \\Big(1.4(0.9977)(0.002809) - \\frac{1}{4}0.002809 \\Big) = 0.003221<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_{1R} = 1(\\frac{1}{4} 0.002809) = 0.0007022 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_{2S} = 1 \\Big( -1.4*(0.9977-0.003924)(0.002809+0.003221) \\Big) = <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> = -0.008391 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_{2I} = 1 \\Big(1.4(0.9977-0.003924)(0.002809+0.003221) - \\frac{1}{4}(0.002809+0.003221) \\Big)<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> = 0.006883 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_{2R} = 1 \\Big( \\frac{1}{4}(0.002809+0.0032218) \\Big) = 0.001507<\/span>\n\n\n\n<p>&nbsp;<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> S_i = 0.9977 + \\frac{-0.003924 -0.008391}{2} = 0.9916 <\/span>\n\n\n\n<p>&nbsp;<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> I_i = 0.002809 + \\frac{0.003221+0.006883}{2} = 0.007862 <\/span>\n\n\n\n<p>&nbsp;<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> R_i = 0.0003937 + \\frac{0.0007022 + 0.001507}{2} = 0.001498 <\/span>\n\n\n\n<p>&nbsp;<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> t_i = t_i + h = 2 + 1 = 3 <\/span>\n\n\n\n<p>&nbsp;<em><strong>itera 3<\/strong><\/em> - TAREA<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Algoritmo en Python<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# 3Eva_2020PAOI_T2 Modelo epidemiol\u00f3gico no letal\n# Sistemas EDO con Runge-Kutta de 2do Orden\nimport numpy as np\n\ndef rungekutta2_fgw(f,g,w,t0,x0,y0,z0,h,muestras):\n    tamano = muestras +1\n    tabla = np.zeros(shape=(tamano,4),dtype=float)\n    tabla&#x5B;0] = &#x5B;t0,x0,y0,z0]\n    ti = t0\n    xi = x0\n    yi = y0\n    zi = z0\n    for i in range(1,tamano,1):\n        K1x = h * f(ti,xi,yi,zi)\n        K1y = h * g(ti,xi,yi,zi)\n        K1z = h * w(ti,xi,yi,zi)\n        \n        K2x = h * f(ti+h, xi + K1x, yi+K1y, zi +K1z)\n        K2y = h * g(ti+h, xi + K1x, yi+K1y, zi +K1z)\n        K2z = h * w(ti+h, xi + K1x, yi+K1y, zi +K1z)\n\n        xi = xi + (1\/2)*(K1x+K2x)\n        yi = yi + (1\/2)*(K1y+K2y)\n        zi = zi + (1\/2)*(K1z+K2z)\n        ti = ti + h\n        \n        tabla&#x5B;i] = &#x5B;ti,xi,yi,zi]\n    tabla = np.array(tabla)\n    return(tabla)\n\n# Programa\n# Par\u00e1metros de las ecuaciones\n\nbinfecta = 1.4\ngrecupera = 1\/4\n# Ecuaciones\nf = lambda t,S,I,R : -binfecta*S*I\ng = lambda t,S,I,R : binfecta*S*I - grecupera*I\nw = lambda t,S,I,R : grecupera*I\n# Condiciones iniciales\nt0 = 0\nS0 = 1.0\nI0 = 0.001\nR0 = 0.0\n\n# par\u00e1metros del algoritmo\nh = 1.0\nmuestras = 51\n\n# PROCEDIMIENTO\ntabla = rungekutta2_fgw(f,g,w,t0,S0,I0,R0,h,muestras)\nti = tabla&#x5B;:,0]\nSi = tabla&#x5B;:,1]\nIi = tabla&#x5B;:,2]\nRi = tabla&#x5B;:,3]\n# SALIDA\nnp.set_printoptions(precision=6)\nprint(' &#x5B; ti, Si, Ii, Ri]')\nprint(tabla)\n\n# Grafica tiempos vs poblaci\u00f3n\nimport matplotlib.pyplot as plt\nplt.plot(ti,Si, label='S')\nplt.plot(ti,Ii, label='I')\nplt.plot(ti,Ri, label='R')\nplt.title('Modelo SIR')\nplt.xlabel('t tiempo')\nplt.ylabel('poblaci\u00f3n')\nplt.legend()\nplt.grid()\nplt.show()\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 3Eva2020PAOI_T2 EDO Modelo epidemiol\u00f3gico no letal El ejercicio representa un sistema de ecuaciones diferenciales ordinarias, que ser\u00e1n resueltas usando Runge-Kutta de 2do Orden. De compararse con la curva de contagios de Covid-19 se tienen diferencias en la poblaci\u00f3n recuperada, pues el modelo se considera no letal por lo que no se contabiliza el n\u00famero [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"wp-custom-template-entrada-mn-ejemplo","format":"standard","meta":{"footnotes":""},"categories":[51],"tags":[58,54],"class_list":["post-6698","post","type-post","status-publish","format-standard","hentry","category-mn-s3eva20","tag-ejemplos-python","tag-mnumericos"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/6698","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/comments?post=6698"}],"version-history":[{"count":4,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/6698\/revisions"}],"predecessor-version":[{"id":23919,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/6698\/revisions\/23919"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=6698"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=6698"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=6698"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}