{"id":3947,"date":"2017-12-16T09:56:49","date_gmt":"2017-12-16T14:56:49","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/matg1013\/?p=3947"},"modified":"2026-04-05T20:17:22","modified_gmt":"2026-04-06T01:17:22","slug":"s2eva2016tii_t3_mn-edo-taylor-2-tanque-de-agua","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-s2eva20\/s2eva2016tii_t3_mn-edo-taylor-2-tanque-de-agua\/","title":{"rendered":"s2Eva2016TII_T3_MN EDO Tanque de agua Taylor O(2)"},"content":{"rendered":"\n<p><em><strong>Ejercicio<\/strong><\/em>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-2eva20\/2eva2016tii_t3_mn-edo-taylor-2-tanque-de-agua\/\" data-type=\"post\" data-id=\"990\">2Eva2016TII_T3_MN EDO Tanque de agua Taylor O(2)<\/a><\/p>\n\n\n\n<p>La soluci\u00f3n obtenida se realiza con h=0.5 y usando dos m\u00e9todos para comparar resultados.<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{dy}{dt} = -k \\sqrt{y} <\/span>\n\n\n\n<h2 class=\"wp-block-heading\">1. EDO con Taylor<\/h2>\n\n\n\n<p>Usando una aproximaci\u00f3n con dos t\u00e9rminos de Taylor:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y_{i+1}=y_{i}+ y'_{i} h+\\frac{y&quot;_{i}}{2}h^{2}<\/span>\n\n\n\n<p>Por lo que se obtienen las derivadas necesarias:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y'_i= -k (y_i)^{1\/2} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y&quot;_i= \\frac{-k}{2}(y_i)^{-1\/2} <\/span>\n\n\n\n<h3 class=\"wp-block-heading\">1.1 iteraciones<\/h3>\n\n\n\n<p>i=0, y<sub>0<\/sub>=3, t<sub>0<\/sub>=0<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y'_0= -k(y_0)^{1\/2} =-0.06(3)^{1\/2} = -0.1039<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y&quot;_0= \\frac{-0.06}{2}(3)^{-1\/2} = -0.0173<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y_{1}=y_{0}+ y'_{0} (1)+\\frac{y&quot;_{0}}{2}(1)^{2}<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y_{1}=3+ (-0.1039) (0.5)+\\frac{-0.0173}{2}(0.5)^{2}= 2.9458<\/span>\n\n\n\n<p class=\"has-text-align-center\">t<sub>1<\/sub>=t<sub>0<\/sub>+h = 0+0.5= 0.5<\/p>\n\n\n\n<p>i=1, y<sub>1<\/sub>=2.9458, t<sub>1<\/sub>=0.5<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y'_1= -k(y_1)^{1\/2} =-0.06(2.887)^{1\/2} =-0.1029 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y&quot;_1= \\frac{-0.06}{2}(2.887)^{-1\/2} = -0.0174<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y_{2}=y_{1}+ y'_{1} (1)+\\frac{y&quot;_{1}}{2}(1)^{2}<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y_{1}=2.9458+ (-0.1029) (1)+\\frac{-0.0174}{2}(1)^{2}= 2.8921<\/span>\n\n\n\n<p class=\"has-text-align-center\">t<sub>2<\/sub>=t<sub>1<\/sub>+h = 0.5+0.5 = 1.0<\/p>\n\n\n\n<p>i=2, y<sub>2<\/sub>=2.8921, t<sub>2<\/sub>=1.0<\/p>\n\n\n\n<p>Resolver como Tarea<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1.2 Resultados con Python<\/h3>\n\n\n\n<p>Realizando una tabla de valores usando Python y una gr\u00e1fica, encuentra que el valor buscado del tanque a la mitad se obtiene en 16 minutos.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>estimado&#091;xi,yi]\n&#091;&#091; 0.          3.        ]\n &#091; 0.5         2.94587341]\n &#091; 1.          2.89219791]\n &#091; 1.5         2.83897347]\n &#091; 2.          2.7862001 ]\n ...\n &#091;14.          1.65488507]\n &#091;14.5         1.61337731]\n &#091;15.          1.57231935]\n &#091;15.5         1.53171109]\n &#091;16.          1.49155239]\n &#091;16.5         1.45184313]\n &#091;17.          1.41258317]\n &#091;17.5         1.37377234]\n &#091;18.          1.33541049]\n &#091;18.5         1.29749744]\n &#091;19.          1.26003297]\n &#091;19.5         1.22301689]\n &#091;20.          1.18644897]]<\/code><\/pre>\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\/2017\/12\/s2Eva2016TII_T3_MNTanqueAgua.png\" alt=\"s2Eva2016TII_T3_MN Tanque Agua\" class=\"wp-image-18460\" \/><\/figure>\n\n\n\n<p>Algoritmo en Python para Soluci\u00f3n EDO con tres t\u00e9rminos:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n# EDO. M\u00e9todo de Taylor 3 t\u00e9rminos \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 edo_taylor3t(d1y,d2y,x0,y0,h,muestras):\n    tamano = muestras + 1\n    estimado = np.zeros(shape=(tamano,2),dtype=float)\n    # incluye el punto &#x5B;x0,y0]\n    estimado&#x5B;0] = &#x5B;x0,y0]\n    x = x0\n    y = y0\n    for i in range(1,tamano,1):\n        y = y + h*d1y(x,y) + ((h**2)\/2)*d2y(x,y)\n        x = x+h\n        estimado&#x5B;i] = &#x5B;x,y]\n    return(estimado)\n\n# PROGRAMA PRUEBA\n# 2Eva_IIT2016_T3_MN EDO Taylor 2, Tanque de agua\n\n# INGRESO.\nk=0.06\n# d1y = y' = f, d2y = y'' = f'\nd1y = lambda x,y: -k*(y**0.5)\nd2y = lambda x,y: -(k\/2)*(y**(-0.5))\nx0 = 0\ny0 = 3\nh = 1\/2\nmuestras = 40\n\n# PROCEDIMIENTO\npuntos = edo_taylor3t(d1y,d2y,x0,y0,h,muestras)\nxi = puntos&#x5B;:,0]\nyi = puntos&#x5B;:,1]\n\n# SALIDA\nprint('estimado&#x5B;xi,yi]')\nprint(puntos)\n# Gr\u00e1fica\nimport matplotlib.pyplot as plt\nplt.plot(xi&#x5B;0],yi&#x5B;0],'o', color='r', label ='&#x5B;x0,y0]')\nplt.plot(xi&#x5B;1:],yi&#x5B;1:],'o', color='g', label ='y estimada')\nplt.axhline(y0\/2)\nplt.title('EDO: Soluci\u00f3n con Taylor 3 t\u00e9rminos')\nplt.xlabel('x')\nplt.ylabel('y')\nplt.legend()\nplt.grid()\nplt.show()\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">2. EDO con Runge-Kutta de 2do Orden dy\/dx<\/h2>\n\n\n\n<p>Para \u00e9ste m\u00e9todo no se requiere desarrollar la segunda derivada, se usa el mismo h =0.5 con fines de comparaci\u00f3n de resultados<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.1 Iteraciones<\/h3>\n\n\n\n<p>i = 1, y0=3, t0=0<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_1 = h y'(x_0,y_0) = (0.5)*(-0.06)(3)^{1\/2} =-0.05196 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_2 = h y'(x_0+h,y_0+K_1) = (0.5)* y'(0.5,3-0.05196) = -0.05150<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y_1 = y_0+\\frac{K1+K2}{2} = 3+\\frac{-0.05196-0.05150}{2} = 2.9482<\/span>\n\n\n\n<p>i = 2, y1=2.9482, t1=0.5<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_1 = h y'(x_1,y_1) = (0.5)*(-0.06)(2.9482)^{1\/2} =-0.05149 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> K_2 = h y'(x_1+h,y_1+K_1) = (0.5)* y'(0.5,2.9482-0.05149) = -0.05103<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> y_1 = y_0+\\frac{K1+K2}{2} = 3+\\frac{-0.05149-0.05103}{2} = -2.8946<\/span>\n\n\n\n<p>i = 3,&nbsp; y1=2.8946, t1=1.0<\/p>\n\n\n\n<p>Resolver como Tarea<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.2 Resultados con Python<\/h3>\n\n\n\n<p>Si comparamos con los resultados anteriores en una tabla, y obteniendo las diferencias entre cada iteraci\u00f3n se tiene que:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>estimado&#091;xi,yi Taylor, yi Runge-Kutta, diferencias]\n&#091;&#091; 0.0  3.00000000  3.00000000  0.00000000e+00]\n &#091; 0.5  2.94587341  2.94826446 -2.39104632e-03]\n &#091; 1.0  2.89219791  2.89697892 -4.78100868e-03]\n &#091; 1.5  2.83897347  2.84614338 -7.16990106e-03]\n &#091; 2.0  2.78620010  2.79575783 -9.55773860e-03]\n...\n &#091; 14.0  1.65488507  1.72150488 -6.66198112e-02]\n &#091; 14.5  1.61337731  1.68236934 -6.89920328e-02]\n &#091; 15.0  1.57231935  1.64368380 -7.13644510e-02]\n &#091; 15.5  1.53171109  1.60544826 -7.37371784e-02]\n &#091; 16.0  1.49155239  1.56766273 -7.61103370e-02]\n &#091; 16.5  1.45184313  1.53032719 -7.84840585e-02]\n &#091; 17.0  1.41258317  1.49344165 -8.08584854e-02]\n &#091; 17.5  1.37377234  1.45700611 -8.32337718e-02]\n &#091; 18.0  1.33541049  1.42102058 -8.56100848e-02]\n &#091; 18.5  1.29749744  1.38548504 -8.79876055e-02]\n &#091; 19.0  1.26003297  1.35039950 -9.03665304e-02]\n &#091; 19.5  1.22301689  1.31576397 -9.27470733e-02]\n &#091; 20.0  1.18644897  1.28157843 -9.51294661e-02]]\nerror en rango:  0.09512946613018003<\/code><\/pre>\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\/2017\/12\/s2Eva2016TII_T3_MNTanqueAgua0.png\" alt=\"s2Eva2016TII_T3 Tanque de Agua 03\" class=\"wp-image-18461\" \/><\/figure>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# EDO. M\u00e9todo de Taylor 3 t\u00e9rminos \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 edo_taylor3t(d1y,d2y,x0,y0,h,muestras):\n    tamano = muestras + 1\n    estimado = np.zeros(shape=(tamano,2),dtype=float)\n    # incluye el punto &#x5B;x0,y0]\n    estimado&#x5B;0] = &#x5B;x0,y0]\n    x = x0\n    y = y0\n    for i in range(1,tamano,1):\n        y = y + h*d1y(x,y) + ((h**2)\/2)*d2y(x,y)\n        x = x+h\n        estimado&#x5B;i] = &#x5B;x,y]\n    return(estimado)\n\ndef rungekutta2(d1y,x0,y0,h,muestras):\n    tamano = muestras + 1\n    estimado = np.zeros(shape=(tamano,2),dtype=float)\n    # incluye el punto &#x5B;x0,y0]\n    estimado&#x5B;0] = &#x5B;x0,y0]\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        \n        estimado&#x5B;i] = &#x5B;xi,yi]\n    return(estimado)\n\n# PROGRAMA PRUEBA\n# 2Eva_IIT2016_T3_MN EDO Taylor 2, Tanque de agua\n\n# INGRESO.\nk=0.06\n# d1y = y' = f, d2y = y'' = f'\nd1y = lambda x,y: -k*(y**0.5)\nd2y = lambda x,y: -(k\/2)*(y**(-0.5))\nx0 = 0\ny0 = 3\nh = 1\/2\nmuestras = 40\n\n# PROCEDIMIENTO\npuntos = edo_taylor3t(d1y,d2y,x0,y0,h,muestras)\nxi = puntos&#x5B;:,0]\nyi = puntos&#x5B;:,1]\n\n# Con Runge Kutta\npuntosRK2 = rungekutta2(d1y,x0,y0,h,muestras)\nxiRK2 = puntosRK2&#x5B;:,0]\nyiRK2 = puntosRK2&#x5B;:,1]\n\n# diferencias\ndiferencias = yi-yiRK2\nerror = np.max(np.abs(diferencias))\ntabla = np.copy(puntos)\ntabla = np.concatenate((puntos,np.transpose(&#x5B;yiRK2]),\n                        np.transpose(&#x5B;diferencias])),\n                       axis = 1)\n\n# SALIDA\nprint('estimado&#x5B;xi,yi Taylor,yi Runge-Kutta,diferencias]')\nprint(tabla)\nprint('error en rango: ', error)\n\n# Gr\u00e1fica\nimport matplotlib.pyplot as plt\nplt.plot(xi&#x5B;0],yi&#x5B;0],'o',\n         color='r', label ='&#x5B;x0,y0]')\nplt.plot(xi&#x5B;1:],yi&#x5B;1:],'o',\n         color='g',\n         label ='y Taylor 3 terminos')\nplt.plot(xiRK2&#x5B;1:],yiRK2&#x5B;1:],'o',\n         color='blue',\n         label ='y Runge-Kutta 2Orden')\nplt.axhline(y0\/2)\nplt.title('EDO: Taylor 3T vs Runge=Kutta 2Orden')\nplt.xlabel('x')\nplt.ylabel('y')\nplt.legend()\nplt.grid()\nplt.show()\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 2Eva2016TII_T3_MN EDO Tanque de agua Taylor O(2) La soluci\u00f3n obtenida se realiza con h=0.5 y usando dos m\u00e9todos para comparar resultados. 1. EDO con Taylor Usando una aproximaci\u00f3n con dos t\u00e9rminos de Taylor: Por lo que se obtienen las derivadas necesarias: 1.1 iteraciones i=0, y0=3, t0=0 t1=t0+h = 0+0.5= 0.5 i=1, y1=2.9458, t1=0.5 t2=t1+h [&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":[48],"tags":[58,54],"class_list":["post-3947","post","type-post","status-publish","format-standard","hentry","category-mn-s2eva20","tag-ejemplos-python","tag-mnumericos"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/3947","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=3947"}],"version-history":[{"count":5,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/3947\/revisions"}],"predecessor-version":[{"id":23871,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/3947\/revisions\/23871"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=3947"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=3947"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=3947"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}