{"id":10707,"date":"2025-02-12T09:50:56","date_gmt":"2025-02-12T14:50:56","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/analisisnumerico\/?p=10707"},"modified":"2026-04-05T21:04:46","modified_gmt":"2026-04-06T02:04:46","slug":"s3eva2024paoii_t3-edo-efecto-allee-en-poblaciones-pequenas","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-s3eva30\/s3eva2024paoii_t3-edo-efecto-allee-en-poblaciones-pequenas\/","title":{"rendered":"s3Eva2024PAOII_T3 EDO efecto Allee en poblaciones peque\u00f1as"},"content":{"rendered":"\n<p><strong>Ejercicio<\/strong>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-3eva30\/3eva2024paoii_t3-edo-efecto-allee-poblaciones-pequenas\/\" data-type=\"post\" data-id=\"10705\">3Eva2024PAOII_T3 EDO efecto Allee en poblaciones peque\u00f1as<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">literal a<\/h2>\n\n\n\n<p>Dada la ecuaci\u00f3n diferencial ordinaria, se reemplazan los valores de las constantes:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{dx}{dt} = rx \\left(\\frac{x}{K}-1 \\right) \\left(1-\\frac{x}{A} \\right) <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{dx}{dt} = 0.7 x \\left(\\frac{x}{10}-1 \\right) \\left(1-\\frac{x}{50} \\right) <\/span>\n\n\n\n<p>siendo h = 0.2<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_1 = 0.2 f(t_i,x_i) <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> = 0.2\\left(0.7 x \\left(\\frac{x}{10}-1 \\right) \\left(1-\\frac{x}{50} \\right) \\right)<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_2 = 0.2 f(t_i+0.2, x_i + K_1) <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> = 0.2\\left(0.7(x+K_1) \\left(\\frac{x+K_1}{10}-1 \\right) \\left(1-\\frac{x+K_1}{50} \\right) \\right)<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x_{i+1} = x_i + \\frac{K_1+K_2}{2} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> t_{i+1} = t_i + 0.2 <\/span>\n\n\n\n<h2 class=\"wp-block-heading\">literal b<\/h2>\n\n\n\n<p>Para el desarrollo de las iteraciones se requieren valores iniciales. Para la variable independiente tiempo podr\u00eda usar t = 0.<\/p>\n\n\n\n<p>Para la variable dependiente poblaci\u00f3n, seg\u00fan la descripci\u00f3n se encontrar\u00eda entre el intervalo [10,50]. Si x<sub>0<\/sub>&lt;10 la poblaci\u00f3n se extingue. Si la variable x<sub>0<\/sub>&gt;50 se encuentra saturada la capacidad del medio.<\/p>\n\n\n\n<p>Por lo que se propone usar un valor mayor que el m\u00ednimo, por ejemplo x<sub>0<\/sub>=11 y otro valor que se encuentre en el intervalo.<\/p>\n\n\n\n<p><strong>itera<\/strong> = 0 , t<sub>0<\/sub> = 0, x<sub>0<\/sub> = 11<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_1 = 0.2\\left(0.7 (11) \\left(\\frac{11}{10}-1 \\right) \\left(1-\\frac{11}{50} \\right) \\right) = 0.1201 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_2 = 0.2\\left(0.7(11+0.1201) \\left(\\frac{11+0.1201}{10}-1 \\right) \\left(1-\\frac{11+0.1201}{50} \\right) \\right)<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_2= 0.1355<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x_{i+1} = 11 + \\frac{0.1201+0.1355}{2} = 11.1278<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> t_{i+1} = 0 + 0.2 = 0.2 <\/span>\n\n\n\n<p><strong>itera<\/strong> = 1 , t<sub>0<\/sub> = 0.2, x<sub>0<\/sub> = 11.1278<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_1 = 0.2\\left(0.7 (11.1278) \\left(\\frac{11.1278}{10}-1 \\right) \\left(1-\\frac{11.1278}{50} \\right) \\right) = 0.1366 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_2 = 0.2\\left(0.7(11.1278+0.1366) \\left(\\frac{11.1278+0.1366}{10}-1 \\right) \\left(1-\\frac{11.1278+0.1366}{50} \\right) \\right) <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_2= 0.1544 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x_{i+1} = 11.1278 + \\frac{0.1366+0.1544}{2} =11.2734 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> t_{i+1} = 0.2 + 0.2 = 0.4 <\/span>\n\n\n\n<p><strong>itera<\/strong> = 2 , t<sub>0<\/sub> = 0.4, x<sub>0<\/sub> = 11.2734<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_1 = 0.2\\left(0.7 (11.2734) \\left(\\frac{11.2734}{10}-1 \\right) \\left(1-\\frac{11.2734}{50} \\right) \\right) = 0.1556 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_2 = 0.2\\left(0.7(11.2734+0.1556) \\left(\\frac{11.2734+0.1556}{10}-1 \\right) \\left(1-\\frac{11.2734+0.1556}{50} \\right) \\right) <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_2 = 0.1763 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> x_{i+1} = 11.2734 + \\frac{0.1556+0.1763}{2} = 11.4394<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> t_{i+1} = 0.4 + 0.2 = 0.6<\/span>\n\n\n\n<h2 class=\"wp-block-heading\">literal c<\/h2>\n\n\n\n<p>Seg\u00fan los resultados de las tres iteraciones anteriores, la poblaci\u00f3n crece. El resultado es acorde al concepto descrito en el enunciado para poblaciones mayores al valor m\u00ednimo de extinci\u00f3n. En el ejercicio se us\u00f3 11 como valor inicial.<\/p>\n\n\n\n<p>Esto se puede comprobar usando el algoritmo y teniendo los resultados presentados en el literal d<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">literal d<\/h2>\n\n\n\n<p>Los resultados tabulados con el algoritmo son:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>EDO con Runge-Kutta 2 Orden\n &#091;ti, xi, K1, K2]\n&#091;&#091; 0. 11. 0. 0. ] \n &#091; 0.2 11.12785958 0.12012 0.13559915] \n &#091; 0.4 11.2734037 0.13660392 0.15448432] \n &#091; 0.6 11.43943235 0.15566412 0.17639319] \n &#091; 0.8 11.629282 0.17778585 0.20191345] \n &#091; 1. 11.84695218 0.20356688 0.23177349] \n ... \n &#091; 5.6 48.42689825 1.26594886 0.67489419] \n &#091; 5.8 49.04060051 0.81966583 0.4077387 ] \n &#091; 6. 49.41989811 0.5143157 0.2442795 ]]<\/code><\/pre>\n\n\n\n<p>La gr\u00e1fica del ejercicio para 30 muestras es:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"547\" height=\"442\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2025\/02\/efectoallee01_x11.png\" alt=\"efecto Allee 01 x11\" class=\"wp-image-18661\" \/><\/figure>\n\n\n\n<p>Instrucciones en Python:&nbsp;<a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/analisisnumerico\/runge-kutta-2do-orden-dy-dx\/#algoritmo\">EDO dy\/dx, Runge-Kutta con Python<\/a><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><span style=\"color: #ff0000\"># 3Eva_2024PAOII_T3 EDO efecto Allee en poblaciones peque\u00f1as<\/span>\n<span style=\"color: #ff0000\"># EDO. M\u00e9todo de RungeKutta 2do Orden <\/span>\n<span style=\"color: #ff0000\"># estima la solucion para muestras espaciadas h en eje x<\/span>\n<span style=\"color: #ff0000\"># valores iniciales x0,y0, entrega tabla[xi,yi,K1,K2]<\/span>\n<span style=\"color: #d35400\">import<\/span> numpy <span style=\"color: #d35400\">as<\/span> np\n\n<span style=\"color: #d35400\">def<\/span> <span style=\"color: #0000e6\">rungekutta2<\/span>(d1y,x0,y0,h,muestras,\n                vertabla=<span style=\"color: #d35400\">False<\/span>,precision=6):\n    <span style=\"color: #008000\">'''solucion a EDO dy\/dx, con Runge Kutta de 2do orden\n    d1y es la expresi n dy\/dx, tambien planteada como f(x,y),\n    valores iniciales: x0,y0, tama o de paso h.\n    muestras es la cantidad de puntos a calcular. \n    '''<\/span>\n    tamano = muestras + 1\n    tabla = np.zeros(shape=(tamano,2+2),dtype=<span style=\"color: #ff00ff\">float<\/span>)\n    tabla[0] = [x0,y0,0,0] <span style=\"color: #ff0000\"># incluye el punto [x0,y0]<\/span>\n    \n    xi = x0 <span style=\"color: #ff0000\"># valores iniciales<\/span>\n    yi = y0\n    <span style=\"color: #d35400\">for<\/span> i <span style=\"color: #d35400\">in<\/span> <span style=\"color: #ff00ff\">range<\/span>(1,tamano,1):\n        K1 = h * d1y(xi,yi)\n        K2 = h * d1y(xi+h, yi + K1)\n\n        yi = yi + (K1+K2)\/2\n        xi = xi + h\n        \n        tabla[i] = [xi,yi,K1,K2]\n       \n    <span style=\"color: #d35400\">if<\/span> vertabla==<span style=\"color: #d35400\">True<\/span>:\n        np.set_printoptions(precision)\n        <span style=\"color: #ff00ff\">print<\/span>( <span style=\"color: #008000\">'EDO dy\/dx con Runge-Kutta 2 Orden'<\/span>)\n        <span style=\"color: #ff00ff\">print<\/span>(<span style=\"color: #008000\">'i, [xi,     yi,     K1,    K2]'<\/span>)\n        <span style=\"color: #d35400\">for<\/span> i <span style=\"color: #d35400\">in<\/span> <span style=\"color: #ff00ff\">range<\/span>(0,tamano,1):\n            <span style=\"color: #ff00ff\">print<\/span>(i,tabla[i])\n\n    <span style=\"color: #d35400\">return<\/span>(tabla)\n\n<span style=\"color: #ff0000\"># PROGRAMA PRUEBA -------------------<\/span>\n<span style=\"color: #ff0000\"># INGRESO<\/span>\n<span style=\"color: #ff0000\"># d1y = y' = f, d2y = y'' = f'<\/span>\nr = 0.7\nK = 10\nA = 50\nd1x = <span style=\"color: #d35400\">lambda<\/span> t,x: r*x*(x\/A-1)*(1-x\/K)\nt0 = 0\nx0 = 11\nh  = 0.2\nmuestras = 30\n\n<span style=\"color: #ff0000\"># PROCEDIMIENTO<\/span>\ntabla = rungekutta2(d1x,t0,x0,h,muestras)\nxi = tabla[:,0]\nyiRK2 = tabla[:,1]\n\n<span style=\"color: #ff0000\"># SALIDA<\/span>\n<span style=\"color: #ff00ff\">print<\/span>( <span style=\"color: #008000\">'EDO con Runge-Kutta 2 Orden'<\/span>)\n<span style=\"color: #ff00ff\">print<\/span>(<span style=\"color: #008000\">' [ti, xi, K1, K2]'<\/span>)\n<span style=\"color: #ff00ff\">print<\/span>(tabla)\n\n<span style=\"color: #ff0000\"># GRAFICA<\/span>\n<span style=\"color: #d35400\">import<\/span> matplotlib.pyplot <span style=\"color: #d35400\">as<\/span> plt\nplt.plot(xi,yiRK2)\nplt.plot(xi[0],yiRK2[0],\n         <span style=\"color: #008000\">'o'<\/span>,color=<span style=\"color: #008000\">'r'<\/span>, label =<span style=\"color: #008000\">'[t0,x0]'<\/span>)\nplt.plot(xi[1:],yiRK2[1:], <span style=\"color: #008000\">'o'<\/span>,color=<span style=\"color: #008000\">'m'<\/span>,\n         label =<span style=\"color: #008000\">'[ti,xi] Runge-Kutta 2 Orden'<\/span>)\n\nplt.title(<span style=\"color: #008000\">'EDO: Soluci\u00f3n con Runge-Kutta 2do Orden'<\/span>)\nplt.xlabel(<span style=\"color: #008000\">'t'<\/span>)\nplt.ylabel(<span style=\"color: #008000\">'x'<\/span>)\nplt.legend()\nplt.grid()\nplt.show()<\/pre>\n\n\n\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 3Eva2024PAOII_T3 EDO efecto Allee en poblaciones peque\u00f1as literal a Dada la ecuaci\u00f3n diferencial ordinaria, se reemplazan los valores de las constantes: siendo h = 0.2 literal b Para el desarrollo de las iteraciones se requieren valores iniciales. Para la variable independiente tiempo podr\u00eda usar t = 0. Para la variable dependiente poblaci\u00f3n, seg\u00fan la [&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":[52],"tags":[58,54],"class_list":["post-10707","post","type-post","status-publish","format-standard","hentry","category-mn-s3eva30","tag-ejemplos-python","tag-mnumericos"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/10707","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=10707"}],"version-history":[{"count":3,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/10707\/revisions"}],"predecessor-version":[{"id":23936,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/10707\/revisions\/23936"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=10707"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=10707"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=10707"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}