{"id":7655,"date":"2021-08-31T20:00:38","date_gmt":"2021-09-01T01:00:38","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/analisisnumerico\/?p=7655"},"modified":"2026-04-05T20:51:16","modified_gmt":"2026-04-06T01:51:16","slug":"s2eva2021paoi_t2-edo-para-cultivo-de-peces","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-s2eva30\/s2eva2021paoi_t2-edo-para-cultivo-de-peces\/","title":{"rendered":"s2Eva2021PAOI_T2 EDO para cultivo de peces"},"content":{"rendered":"\n<p><strong>Ejercicio<\/strong>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-2eva30\/2eva2021paoi_t2-edo-cultivo-peces\/\" data-type=\"post\" data-id=\"7630\">2Eva2021PAOI_T2 EDO para cultivo de peces<\/a><\/p>\n\n\n\n<p>Siendo la captura una constante mas una funci\u00f3n peri\u00f3dica,<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> h(t) = a + b \\sin (2 \\pi t) <\/span>\n\n\n\n<p>La ecuaci\u00f3n EDO del ejercicio, junto a las constantes a=0.9 y b=0.75, r=1<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">\\frac{\\delta y(t)}{\\delta t} = r y(t)-h(t)<\/span>\n\n\n\n<p>se convierte en:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">\\frac{\\delta y(t)}{\\delta t} = (1) y(t)- \\Big( 0.9 + .75 \\sin (2 \\pi t)\\Big)<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">\\frac{\\delta y(t)}{\\delta t} = y(t)- 0.9 - .75 \\sin (2 \\pi t) <\/span>\n\n\n\n<p>Considerando que la poblaci\u00f3n inicial de peces es 1 o 100%, y(0)=1<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">literal a<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\nh=1\/12\ntamano = muestras + 1\nestimado = np.zeros(shape=(tamano,2),dtype=float)\nestimado&#x5B;0] = &#x5B;0,1]\nti = 0\nyi = 1\nfor i in range(1,tamano,1):\n    K1 = 1\/12 * d1y(ti,yi)\n    K2 = 1\/12 * d1y(ti+1\/24, yi + K1\/2)\n    K3 = 1\/12 * d1y(ti+1\/24, yi + K2\/2)\n    K4 = 1\/12 * d1y(ti+1\/12, yi + K3)\n\n    yi = yi + (1\/6)*(K1+2*K2+2*K3 +K4)\n    ti = ti + 1\/12\n        \n    estimado&#x5B;i] = &#x5B;ti,yi]\n\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">literal b<\/h2>\n\n\n\n<p><em><strong>iteraci\u00f3n i=0<\/strong><\/em><\/p>\n\n\n\n<p>t(0) = 0<\/p>\n\n\n\n<p>y(0) = 1<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">K1 = \\frac{1}{12} \\Big(1- 0.9 - .75 \\sin (2 \\pi 0)\\Big) = 0,008333<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">K2 = \\frac{1}{12} \\Big(1- 0.9 - .75 \\sin \\Big(2 \\pi (0+\\frac{1}{12})\\Big)\\Big) = -0.02222<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y(1) = 0 + \\frac{0.008333+(-0.02222)}{2} = 0.9930 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> t(1) = 0 + \\frac{1}{12} = \\frac{1}{12}<\/span>\n\n\n\n<p><em><strong>iteraci\u00f3n i=1<\/strong><\/em><\/p>\n\n\n<span class=\"wp-katex-eq\" data-display=\"false\">t(1) = \\frac{1}{12}<\/span>\n\n\n\n<p>y(1) = 0.9930<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">K1 = \\frac{1}{12} \\Big(0.9930 - 0.9 - .75 \\sin \\Big( 2 \\pi\\frac{1}{12}\\Big)\\Big) = -0.02349 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">K2 = \\frac{1}{12} \\Big(0.9930 - 0.9 - .75 \\sin \\Big(2 \\pi (\\frac{1}{12}+\\frac{1}{12})\\Big)\\Big) = -0.04832 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y(1) = 0.9930 + \\frac{-0.02349+(-0.04832)}{2} = 0.9571<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> t(1) = \\frac{1}{12} + \\frac{1}{12} = \\frac{2}{12}<\/span>\n\n\n\n<p><em><strong>iteraci\u00f3n i=2<\/strong><\/em><\/p>\n\n\n<span class=\"wp-katex-eq\" data-display=\"false\">t(2) = \\frac{2}{12}<\/span>\n\n\n\n<p>y(1) = 0.9571<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">K1 = \\frac{1}{12} \\Big(0.9571 - 0.9 - .75 \\sin \\Big( 2 \\pi\\frac{2}{12}\\Big)\\Big) = -0.04936 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">K2 = \\frac{1}{12} \\Big(0.9571 - 0.9 - .75 \\sin \\Big(2 \\pi (\\frac{2}{12}+\\frac{1}{12})\\Big)\\Big) = -0.06185 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y(1) = 0.9571 + \\frac{-0.04936+(-0.06185)}{2} = 0.9015<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> t(3) = \\frac{2}{12} + \\frac{1}{12} = \\frac{3}{12}<\/span>\n\n\n\n<h2 class=\"wp-block-heading\">literal c<\/h2>\n\n\n\n<p>Resultado del algoritmo, muestra que la estrategia de cosecha, en el tiempo no es sostenible, dado que la poblaci\u00f3n de peces en el tiempo decrece.<\/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\/2021\/08\/2eva2021paoi_tilapias_literalc.png\" alt=\"2eva2021paoi tilapias literal c\" class=\"wp-image-18410\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>estimado&#091;xi,yi,K1,K2]\n&#091;&#091; 0.0000e+00  1.0000e+00  8.3333e-03 -2.2222e-02]\n &#091; 8.3333e-02  9.9306e-01 -2.3495e-02 -4.8330e-02]\n &#091; 1.6667e-01  9.5714e-01 -4.9365e-02 -6.1852e-02]\n &#091; 2.5000e-01  9.0153e-01 -6.2372e-02 -5.9196e-02]\n &#091; 3.3333e-01  8.4075e-01 -5.9064e-02 -4.1109e-02]\n &#091; 4.1667e-01  7.9066e-01 -4.0361e-02 -1.2475e-02]\n &#091; 5.0000e-01  7.6425e-01 -1.1313e-02  1.8994e-02]\n &#091; 5.8333e-01  7.6809e-01  2.0257e-02  4.4822e-02]\n &#091; 6.6667e-01  8.0063e-01  4.5845e-02  5.8039e-02]\n &#091; 7.5000e-01  8.5257e-01  5.8547e-02  5.5053e-02]\n &#091; 8.3333e-01  9.0937e-01  5.4907e-02  3.6606e-02]\n &#091; 9.1667e-01  9.5513e-01  3.5844e-02  7.5807e-03]\n &#091; 1.0000e+00  9.7684e-01  6.4031e-03 -2.4313e-02]\n &#091; 1.0833e+00  9.6788e-01 -2.5593e-02 -5.0602e-02]\n &#091; 1.1667e+00  9.2978e-01 -5.1645e-02 -6.4322e-02]\n &#091; 1.2500e+00  8.7180e-01 -6.4850e-02 -6.1881e-02]\n &#091; 1.3333e+00  8.0844e-01 -6.1757e-02 -4.4027e-02]\n &#091; 1.4167e+00  7.5554e-01 -4.3288e-02 -1.5645e-02]\n &#091; 1.5000e+00  7.2608e-01 -1.4494e-02  1.5549e-02]\n &#091; 1.5833e+00  7.2661e-01  1.6800e-02  4.1077e-02]\n &#091; 1.6667e+00  7.5554e-01  4.2089e-02  5.3969e-02]\n &#091; 1.7500e+00  8.0357e-01  5.4464e-02  5.0630e-02]\n &#091; 1.8333e+00  8.5612e-01  5.0470e-02  3.1799e-02]\n &#091; 1.9167e+00  8.9725e-01  3.1021e-02  2.3563e-03]\n &#091; 2.0000e+00  9.1394e-01  1.1619e-03 -2.9991e-02]\n &#091; 2.0833e+00  8.9953e-01 -3.1289e-02 -5.6773e-02]\n &#091; 2.1667e+00  8.5550e-01 -5.7835e-02 -7.1028e-02]\n &#091; 2.2500e+00  7.9107e-01 -7.1578e-02 -6.9169e-02]\n &#091; 2.3333e+00  7.2069e-01 -6.9069e-02 -5.1948e-02]\n &#091; 2.4167e+00  6.6018e-01 -5.1235e-02 -2.4254e-02]\n &#091; 2.5000e+00  6.2244e-01 -2.3130e-02  6.1924e-03]\n &#091; 2.5833e+00  6.1397e-01  7.4142e-03  3.0909e-02]\n &#091; 2.6667e+00  6.3313e-01  3.1888e-02  4.2918e-02]\n &#091; 2.7500e+00  6.7053e-01  4.3378e-02  3.8619e-02]\n &#091; 2.8333e+00  7.1153e-01  3.8421e-02  1.8746e-02]\n &#091; 2.9167e+00  7.4012e-01  1.7926e-02 -1.1830e-02]\n &#091; 3.0000e+00  7.4317e-01  0.0000e+00  0.0000e+00]]<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Instrucciones en Python<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# EDO. M\u00e9todo de RungeKutta 2do Orden \n# estima la solucion para muestras espaciadas h en eje x\n# valores iniciales x0,y0\n# entrega arreglo &#x5B;&#x5B;x,y]]\nimport numpy as np\n\ndef rungekutta2(d1y,x0,y0,h,muestras):\n    tamano   = muestras + 1\n    estimado = np.zeros(shape=(tamano,4),dtype=float)\n    # incluye el punto &#x5B;x0,y0]\n    estimado&#x5B;0] = &#x5B;x0,y0,0,0]\n    xi = x0\n    yi = y0\n    for i in range(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        estimado&#x5B;i-1,2:]=&#x5B;K1,K2]\n        estimado&#x5B;i] = &#x5B;xi,yi,0,0]\n    return(estimado)\n\n# PROGRAMA PRUEBA\n# Ref Rodriguez 9.1.1 p335 ejemplo.\n# prueba y'-y-x+(x**2)-1 =0, y(0)=1\n\n# INGRESO\n# d1y = y' = f, d2y = y'' = f'\na =0.9; b=0.75; r=1\nd1y = lambda t,y: r*y-(a+b*np.sin(2*np.pi*t))\nx0 = 0\ny0 = 1\nh  = 1\/12\nmuestras = 12*3\n\n# PROCEDIMIENTO\npuntosRK2 = rungekutta2(d1y,x0,y0,h,muestras)\nxi = puntosRK2&#x5B;:,0]\nyiRK2 = puntosRK2&#x5B;:,1]\n\n# SALIDA\nnp.set_printoptions(precision=4)\nprint('estimado&#x5B;xi,yi,K1,K2]')\nprint(puntosRK2)\n\n\n# Gr\u00e1fica\nimport matplotlib.pyplot as plt\n\n\nplt.plot(xi&#x5B;0],yiRK2&#x5B;0],\n         'o',color='r', label ='&#x5B;x0,y0]')\nplt.plot(xi&#x5B;1:],yiRK2&#x5B;1:],\n         'o',color='m',\n         label ='y Runge-Kutta 2 Orden')\n\nplt.title('EDO: Soluci\u00f3n con Runge-Kutta 2do Orden')\nplt.xlabel('x')\nplt.ylabel('y')\nplt.legend()\nplt.grid()\nplt.show()\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 2Eva2021PAOI_T2 EDO para cultivo de peces Siendo la captura una constante mas una funci\u00f3n peri\u00f3dica, La ecuaci\u00f3n EDO del ejercicio, junto a las constantes a=0.9 y b=0.75, r=1 se convierte en: Considerando que la poblaci\u00f3n inicial de peces es 1 o 100%, y(0)=1 literal a literal b iteraci\u00f3n i=0 t(0) = 0 y(0) = [&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":[49],"tags":[58,54],"class_list":["post-7655","post","type-post","status-publish","format-standard","hentry","category-mn-s2eva30","tag-ejemplos-python","tag-mnumericos"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/7655","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=7655"}],"version-history":[{"count":3,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/7655\/revisions"}],"predecessor-version":[{"id":23908,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/7655\/revisions\/23908"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=7655"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=7655"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=7655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}