{"id":9048,"date":"2023-08-31T08:20:06","date_gmt":"2023-08-31T13:20:06","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/analisisnumerico\/?p=9048"},"modified":"2026-04-05T20:44:07","modified_gmt":"2026-04-06T01:44:07","slug":"s2eva2023paoi_t2-pendulo-vertical-amortiguado","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-s2eva30\/s2eva2023paoi_t2-pendulo-vertical-amortiguado\/","title":{"rendered":"s2Eva2023PAOI_T2 EDO P\u00e9ndulo vertical amortiguado"},"content":{"rendered":"\n<p><strong>Ejercicio<\/strong>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-2eva30\/2eva2023paoi_t2-pendulo-vertical-amortiguado\/\" data-type=\"post\" data-id=\"9021\">2Eva2023PAOI_T2 EDO P\u00e9ndulo vertical amortiguado<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">literal a<\/h3>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\">\\frac{d^2 \\theta}{dt^2} = -\\mu \\frac{d\\theta}{ dt}-\\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' = -\\mu z -\\frac{g}{L}\\sin (\\theta) = g_t(t,\\theta,z) <\/span>\n\n\n\n<p>se usan los valores dados: g = 9.81 m\/s<sup>2<\/sup>, L = 2 m<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f_t(t,\\theta,z) = z <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> g_t(t,\\theta,z) = - 0.5 z -\\frac{9.81}{2}\\sin (\\theta) <\/span>\n\n\n\n<p>y los valores iniciales para la tabla: \u03b8(0) = \u03c0\/4 rad, \u03b8' (0) = 0 rad\/s, se complementan los valores en la medida que se aplica el desarrollo.<\/p>\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\/4<\/td><td>0<\/td><\/tr><tr><td>0.2<\/td><td>0.7161<\/td><td>-0.6583<\/td><\/tr><tr><td>0.4<\/td><td>0.5267<\/td><td>-0.1156<\/td><\/tr><tr><td>0.6<\/td><td>0.2579<\/td><td>-0.1410<\/td><\/tr><tr><td>...<\/td><td>&nbsp;<\/td><td>&nbsp;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">literal b<\/h3>\n\n\n\n<p><strong>Iteraci\u00f3n 1<\/strong>:&nbsp; ti = 0 ; yi = \u03c0\/4 ; 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*(-0.5(0) -(9.81\/2)sin (\u03c0\/4) = -0.6930\n        \nK2y = h * ft(ti+h, yi + K1y, zi + K1z)\n    = 0.2*(0-0.6930)= -0.1386\nK2z = h * gt(ti+h, yi + K1y, zi + K1z)\n    = 0.2*(-0.5(0-0.6930) -(9.81\/2)sin(\u03c0\/4-0) \n    = -0.6237\n\nyi = yi + (K1y+K2y)\/2 \n   = \u03c0\/4+ (0+(-0.1386))\/2 = 0.7161\nzi = zi + (K1z+K2z)\/2 \n   = 0+(-0.6930-0.6237)\/2 = -0.6583\nti = ti + h = 0 + 0.2 = 0.2\n\nestimado&#091;i] = &#091;0.2,0.7161,-0.6583]<\/code><\/pre>\n\n\n\n<p><strong>Iteraci\u00f3n 2<\/strong>:&nbsp; ti = 0.2 ; yi = 0.7161 ; zi = -0.6583<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>K1y = h * ft(ti,yi,zi) \n    = 0.2*(-0.6583) = -0.1317\nK1z = h * gt(ti,yi,zi) \n    = 0.2*(- 0.5 ( -0.6583) -(9.81\/2)sin (0.7161) \n    = -0.5775\n        \nK2y = h * ft(ti+h, yi + K1y, zi + K1z)\n    = 0.2*(-0.6583 -0.5775)= -0.2472\nK2z = h * gt(ti+h, yi + K1y, zi + K1z)\n    = 0.2*(- 0.5 (-0.6583 -0.5775) -(9.81\/2)sin(0.7161-0.1317) \n    = -0.4171\n\nyi = yi + (K1y+K2y)\/2 \n   = 0.7161 + (-0.1317-0.2472)\/2 = 0.5267\nzi = zi + (K1z+K2z)\/2 \n   = -0.6583+(-0.5775-0.4171)\/2 = -0.1156\nti = ti + h = 0.2 + 0.2 = 0.4\n\nestimado&#091;i] = &#091;0.4,0.5267,-0.1156]<\/code><\/pre>\n\n\n\n<p><strong>Iteraci\u00f3n 3<\/strong>:&nbsp; ti = 0.4 ; yi = 0.5267 ; zi = -1.156<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>K1y = h * ft(ti,yi,zi) \n    = 0.2*(-1.156) = -0.2311\nK1z = h * gt(ti,yi,zi) \n    = 0.2*(- 0.5(-1.156) -(9.81\/2)sin (0.5267) \n    = -0.3771\n        \nK2y = h * ft(ti+h, yi + K1y, zi + K1z)\n    = 0.2*(-1.156 -0.3771)= -0.3065\nK2z = h * gt(ti+h, yi + K1y, zi + K1z)\n    = 0.2*(- 0.5 ( -1.156 -0.3771) -(9.81\/2)sin(0.5267-0.2311) \n    = -0.1322\n\nyi = yi + (K1y+K2y)\/2 \n   = 0.5267 + (-0.2311-0.3065)\/2 = 0.2579\nzi = zi + (K1z+K2z)\/2 \n   = -1.156+(-0.3771-0.1322)\/2 = -1.410\nti = ti + h = 0.4 + 0.2 = 0.6\n\nestimado&#091;i] = &#091;0.6,0.2579,-1.410]<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">literal c<\/h3>\n\n\n\n<p>resultados del algoritmo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#091; t, \t\t y, \t dyi\/dti=z,  K1y,\t K1z,\t    K2y,      K2z]\n&#091;&#091; 0.000e+00  7.854e-01  0.000e+00  0.000e+00  0.000e+00  0.000e+00   0.000e+00]\n &#091; 2.000e-01  7.161e-01 -6.583e-01  0.000e+00 -6.930e-01 -1.386e-01  -6.237e-01]\n &#091; 4.000e-01  5.267e-01 -1.156e+00 -1.317e-01 -5.775e-01 -2.472e-01  -4.171e-01]\n &#091; 6.000e-01  2.579e-01 -1.410e+00 -2.311e-01 -3.771e-01 -3.065e-01  -1.322e-01]\n &#091; 8.000e-01 -3.508e-02 -1.377e+00 -2.820e-01 -1.089e-01 -3.038e-01    1.756e-01]\n...<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"549\" height=\"439\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2023\/08\/penduloAmortuguado03.png\" alt=\"p\u00e9ndulo Amortiguado gr\u00e1fica trayectoria velocidad 03\" class=\"wp-image-18365\" \/><\/figure>\n\n\n\n<p>con h=0.2 se tienen 1\/0.2 = 5 tramos por segundo, por lo que para 10 segundo ser\u00e1n 50 tramos. La cantidad de <strong>muestras<\/strong> = tramos + 1(valor inicial) = 51<\/p>\n\n\n\n<p>con lo que se puede usar el algoritmo en <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-unidades\/mn-u06\/runge-kutta-d2y-dx2\/\" data-type=\"post\" data-id=\"1989\">EDO Runge-Kutta d2y\/dx2<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">literal d<\/h3>\n\n\n\n<p>Se observa que la respuesta es oscilante y amortiguada en magnitud como se esperaba seg\u00fan el planteamiento. Con el tiempo se estabilizar\u00e1 en cero.<\/p>\n\n\n\n<p>Instrucciones en Python<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# 2Eva_2023PAOI_T2 P\u00e9ndulo vertical amortiguado\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,7),dtype=float)\n    # incluye el punto &#x5B;x0,y0,z0]\n    estimado&#x5B;0] = &#x5B;x0,y0,z0,0,0,0,0]\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,K1y,K1z,K2y,K2z]\n    return(estimado)\n\n# INGRESO theta = y\ng = 9.8\nL  = 2\nft = lambda t,y,z: z\ngt = lambda t,y,z: -0.5*z +(-g\/L)*np.sin(y)\n\nt0 = 0\ny0 = np.pi\/4\nz0 = 0\nh = 0.2\nmuestras = 51\n\n# PROCEDIMIENTO\ntabla = rungekutta2_fg(ft,gt,t0,y0,z0,h,muestras)\n\n# SALIDA\nnp.set_printoptions(precision=3)\nprint(' &#x5B; t, \\t\\t y, \\t dyi\/dti=z, K1y,\\t K1z,\\t K2y,\\t K2z]')\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.grid()\nplt.xlabel('ti')\nplt.title('yi')\nplt.subplot(122)\nplt.plot(ti,zi, color='green')\nplt.xlabel('ti')\nplt.title('dyi\/dti')\nplt.grid()\nplt.show()\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 2Eva2023PAOI_T2 EDO P\u00e9ndulo vertical amortiguado literal a Se simplifica su forma a: se usan los valores dados: g = 9.81 m\/s2, L = 2 m y los valores iniciales para la tabla: \u03b8(0) = \u03c0\/4 rad, \u03b8' (0) = 0 rad\/s, se complementan los valores en la medida que se aplica el desarrollo. ti [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"wp-custom-template-entrada-mn-ejemplo","format":"standard","meta":{"footnotes":""},"categories":[49],"tags":[58,54],"class_list":["post-9048","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\/9048","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=9048"}],"version-history":[{"count":3,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/9048\/revisions"}],"predecessor-version":[{"id":23891,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/9048\/revisions\/23891"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=9048"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=9048"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=9048"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}