{"id":4102,"date":"2019-08-29T11:08:07","date_gmt":"2019-08-29T16:08:07","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/matg1013\/?p=4102"},"modified":"2026-04-05T20:12:00","modified_gmt":"2026-04-06T01:12:00","slug":"s2eva2019ti_t2-pendulo-vertical","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-s2eva20\/s2eva2019ti_t2-pendulo-vertical\/","title":{"rendered":"s2Eva2019TI_T2 EDO P\u00e9ndulo vertical"},"content":{"rendered":"\n<p><strong>Ejercicio<\/strong>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-2eva20\/2eva2019ti_t2-pendulo-vertical\/\" data-type=\"post\" data-id=\"4089\">2Eva2019TI_T2 EDO P\u00e9ndulo vertical<\/a><\/p>\n\n\n\n<p>Para resolver la ecuaci\u00f3n usando Runge-Kutta se estandariza la ecuaci\u00f3n a la forma:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{d^2\\theta }{dt^2}+\\frac{g}{L}\\sin (\\theta)=0 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{d^2\\theta }{dt^2}= -\\frac{g}{L}\\sin (\\theta) <\/span>\n\n\n\n<p>Se simplifica su forma a:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{d\\theta}{dt}=z = f_t(t,\\theta,z)<\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\frac{d^2\\theta }{dt^2}= z' =-\\frac{g}{L}\\sin (\\theta) = g_t(t,\\theta,z)<\/span>\n\n\n\n<p>y se usan los valores iniciales para iniciar la tabla:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\theta(0) = \\frac{\\pi}{6} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> \\theta '(0) = 0 <\/span>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>t<sub>i<\/sub><\/th><th>\u03b8(t<sub>i<\/sub>)<\/th><th>\u03b8'(t<sub>i<\/sub>)=z<\/th><\/tr><\/thead><tbody><tr><td>0<\/td><td>\u03c0\/6 = 0.5235<\/td><td>0<\/td><\/tr><tr><td>0.2<\/td><td>0.3602<\/td><td>-1.6333<\/td><\/tr><tr><td>0.4<\/td><td>-0.0815<\/td><td>-2.2639<\/td><\/tr><tr><td>...<\/td><td>&nbsp;<\/td><td>&nbsp;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>para las iteraciones se usan los valores (-g\/L) = (-9.8\/0.6)<\/p>\n\n\n\n<p><strong>Iteraci\u00f3n 1<\/strong>:&nbsp; ti = 0 ; yi = \u03c0\/6 ; zi = 0<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>K1y = h * ft(ti,yi,zi) \n    = 0.2*(0) = 0\nK1z = h * gt(ti,yi,zi) \n    = 0.2*(-9.8\/0.6)*sin(\u03c0\/6) = -1.6333\n        \nK2y = h * ft(ti+h, yi + K1y, zi + K1z)\n    = 0.2*(0-1.6333)= -0.3266\nK2z = h * gt(ti+h, yi + K1y, zi + K1z)\n    = 0.2*(-9.8\/0.6)*sin(\u03c0\/6+0) = -1.6333\n\nyi = yi + (K1y+K2y)\/2 \n   = \u03c0\/6+ (0+(-0.3266))\/2 = 0.3602\nzi = zi + (K1z+K2z)\/2 \n   = 0+(-1.6333-1.6333)\/2 = -1.6333\nti = ti + h = 0 + 0.2 = 0.2\n\nestimado&#091;i] = &#091;0.2,0.3602,-1.6333]\n<\/code><\/pre>\n\n\n\n<p><strong>Iteraci\u00f3n 2<\/strong>: ti = 0.2 ; yi = 0.3602 ; zi = -1.6333<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>K1y = 0.2*( -1.6333) = -0.3266\nK1z = 0.2*(-9.8\/0.6)*sin(0.3602) = -1.1515\n        \nK2y = 0.2*(-1.6333-0.3266)= -0.5569\nK2z = 0.2*(-9.8\/0.6)*sin(0.3602-0.3266) = -0.1097\n\nyi = 0.3602 + ( -0.3266 + (-0.3919))\/2 = -0.0815\nzi = -1.6333+(-1.151-0.1097)\/2 = -2.2639\nti = ti + h = 0.2 + 0.2 = 0.4\n\nestimado&#091;i] = &#091;0.4,-0.0815,-2.2639]\n<\/code><\/pre>\n\n\n\n<p>Se contin\u00faan con las iteraciones, hasta completar la tabla.<\/p>\n\n\n\n<p><strong>Tarea<\/strong>: realizar la Iteraci\u00f3n 3<\/p>\n\n\n\n<p>Usando el algoritmo RungeKutta_fg se obtienen los valores y luego la gr\u00e1fica<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code> &#091; t, \t\t y, \t dyi\/dti=z]\n&#091;&#091; 0.          0.52359878  0.        ]\n &#091; 0.2         0.36026544 -1.63333333]\n &#091; 0.4        -0.08155862 -2.263988  ]\n &#091; 0.6        -0.50774327 -1.2990876 ]\n &#091; 0.8        -0.60873334  0.62920692]\n &#091; 1.         -0.29609456  2.32161986]]\n<\/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\/2019\/08\/penduloVertical02.png\" alt=\"penduloVertical02\" class=\"wp-image-18523\" \/><\/figure>\n\n\n\n<p>si se mejora la resoluci\u00f3n disminuyendo h = 0.05 y muestras = 20 para cubrir el dominio [0,1] se obtiene el siguiente resultado:<\/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\/2019\/08\/penduloVertical03.png\" alt=\"p\u00e9ndulo Vertical 03\" class=\"wp-image-18524\" \/><\/figure>\n\n\n\n<p><strong>Tarea<\/strong>: Para el literal b, se debe considerar que los errores se calculan con<\/p>\n\n\n\n<p>Runge-Kutta 2do Orden tiene error de truncamiento O(h<sup>3<\/sup>)<br>Runge-Kutta 4do Orden tiene error de truncamiento O(h<sup>5<\/sup>)<\/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_IT2019_T2 P\u00e9ndulo vertical\nimport numpy as np\nimport matplotlib.pyplot as plt\n\ndef rungekutta2_fg(f,g,x0,y0,z0,h,muestras):\n    tamano = muestras + 1\n    estimado = np.zeros(shape=(tamano,3),dtype=float)\n    # incluye el punto &#x5B;x0,y0,z0]\n    estimado&#x5B;0] = &#x5B;x0,y0,z0]\n    xi = x0\n    yi = y0\n    zi = z0\n    for i in range(1,tamano,1):\n        K1y = h * f(xi,yi,zi)\n        K1z = h * g(xi,yi,zi)\n        \n        K2y = h * f(xi+h, yi + K1y, zi + K1z)\n        K2z = h * g(xi+h, yi + K1y, zi + K1z)\n\n        yi = yi + (K1y+K2y)\/2\n        zi = zi + (K1z+K2z)\/2\n        xi = xi + h\n        \n        estimado&#x5B;i] = &#x5B;xi,yi,zi]\n    return(estimado)\n\n# INGRESO theta = y\ng = 9.8\nL  = 0.6\nft = lambda t,y,z: z\ngt = lambda t,y,z: (-g\/L)*np.sin(y)\n\nt0 = 0\ny0 = np.pi\/6\nz0 = 0\nh=0.2\nmuestras = 5\n\n# PROCEDIMIENTO\ntabla = rungekutta2_fg(ft,gt,t0,y0,z0,h,muestras)\n\n# SALIDA\nprint(' &#x5B; t, \\t\\t y, \\t dyi\/dti=z]')\nprint(tabla)\n\n# Grafica\nti = np.copy(tabla&#x5B;:,0])\nyi = np.copy(tabla&#x5B;:,1])\nzi = np.copy(tabla&#x5B;:,2])\nplt.subplot(121)\nplt.plot(ti,yi)\nplt.xlabel('ti')\nplt.title('yi')\nplt.subplot(122)\nplt.plot(ti,zi, color='green')\nplt.xlabel('ti')\nplt.title('dyi\/dti')\nplt.show()\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p>Otra soluci\u00f3n propuesta puede seguir el problema semejante:<\/p>\n\n\n\n<p><a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-ejemplos\/mn-s2e10\/s2eva2010ti_t2-movimiento-angular\/\" data-type=\"post\" data-id=\"3104\">s2Eva2010TI_T2 EDO Movimiento angular<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 2Eva2019TI_T2 EDO P\u00e9ndulo vertical Para resolver la ecuaci\u00f3n usando Runge-Kutta se estandariza la ecuaci\u00f3n a la forma: Se simplifica su forma a: y se usan los valores iniciales para iniciar la tabla: ti \u03b8(ti) \u03b8'(ti)=z 0 \u03c0\/6 = 0.5235 0 0.2 0.3602 -1.6333 0.4 -0.0815 -2.2639 ... &nbsp; &nbsp; para las iteraciones se usan [&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-4102","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\/4102","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=4102"}],"version-history":[{"count":3,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/4102\/revisions"}],"predecessor-version":[{"id":23856,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/4102\/revisions\/23856"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=4102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=4102"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=4102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}