{"id":10695,"date":"2025-02-12T09:40:46","date_gmt":"2025-02-12T14:40:46","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/analisisnumerico\/?p=10695"},"modified":"2026-04-05T21:05:11","modified_gmt":"2026-04-06T02:05:11","slug":"s3eva2024paoii_t2-interpolar-trayectoria-helicoptero","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-s3eva30\/s3eva2024paoii_t2-interpolar-trayectoria-helicoptero\/","title":{"rendered":"s3Eva2024PAOII_T2 Interpolar trayectoria helic\u00f3ptero"},"content":{"rendered":"\n<p><strong>Ejercicio<\/strong>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-3eva30\/3eva2024paoii_t2-interpolar-trayectoria-helicoptero\/\" data-type=\"post\" data-id=\"10690\">3Eva2024PAOII_T2 Interpolar trayectoria helic\u00f3ptero<\/a><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><strong>x<sub>i<\/sub><\/strong> = &#091;0.&nbsp; , 2.50, 3.75, 5.00, 6.25, 7.5 ]\n<strong>y<sub>i<\/sub><\/strong> = &#091;3.7 , 3.25, 4.05, 4.33, 2.95, 3.22]<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">literal a<\/h2>\n\n\n\n<p>Seg\u00fan la gr\u00e1fica presentada, los puntos a considerar para todo el intervalo, deber\u00edan ser al menos el primero y el \u00faltimo. Para un polinomio de grado 3 se requieren usar 4 muestras, por lo que faltar\u00edan dos muestras dentro del intervalo. Los puntos adicionales estar\u00edan entre los puntos intermedios, tratando de mantener una distancia equidistante entre ellos y tratar de mantener los cambios de direcci\u00f3n.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"565\" height=\"420\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2025\/02\/helicopteroInterpola01.png\" alt=\"helic\u00f3ptero Interpola trayectoria\" class=\"wp-image-17646\" \/><\/figure>\n\n\n\n<p>Los puntos seleccionados para el ejercicio ser\u00e1n<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>xi = &#091;0. , 2.50, 5.00, 7.5 ]\nfi = &#091;3.7 , 3.25, 4.33, 3.22]<\/code><\/pre>\n\n\n\n<p>Se puede construir el polinomio con los cualquiera de los m\u00e9todos para interpolaci\u00f3n dado que tienen tama\u00f1os de paso iguales entre tramos.<\/p>\n\n\n\n<p>Desarrollando con el m\u00e9todo de Lagrange, el polinomio se construye como:<\/p>\n\n\n\n<p><strong>t\u00e9rmino 1<\/strong><\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> L_{0} (x) = \\frac{(x-2.5)(x-5.0)(x-7.5)}{(0-2.5)(0-5.0)(0-7.5)}<\/span>\n\n\n\n<h4 class=\"wp-block-heading\">t\u00e9rmino 2<\/h4>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> L_{1} (x) = \\frac{(x-0)(x-5.0)(x-7.5)}{(2.5-0)(2.5-5.0)(2.5-7.5)}<\/span>\n\n\n\n<h4 class=\"wp-block-heading\">t\u00e9rmino 3<\/h4>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> L_{2} (x) = \\frac{(x-0)(x-2.5)(x-7.5)}{(5-0)(5-2.5)(5-7.5)}<\/span>\n\n\n\n<h4 class=\"wp-block-heading\">t\u00e9rmino 4<\/h4>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> L_{3} (x) = \\frac{(x-0)(x-2.5)(x-5)}{(7.5-0)(7.5-2.5)(7.5-5)}<\/span>\n\n\n\n<p>se construye el polinomio usando la f\u00f3rmula para f<sub>n<\/sub>(x) para cada valor fi,<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> p_3(x) = 3.7 \\frac{(x-2.5)(x-5.0)(x-7.5)}{(0-2.5)(0-5.0)(0-7.5)} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + 3.25 \\frac{(x-0)(x-5.0)(x-7.5)}{(2.5-0)(2.5-5.0)(2.5-7.5)} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + 4.33 \\frac{(x-0)(x-2.5)(x-7.5)}{(5-0)(5-2.5)(5-7.5)} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + 3.22 \\frac{(x-0)(x-2.5)(x-5)}{(7.5-0)(7.5-2.5)(7.5-5)} <\/span>\n\n\n\n<p>simplificando con Sympy:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>Polinomio de Lagrange, expresiones\n0.104*x*(x - 7.5)*(x - 5.0) - 0.13856*x*(x - 7.5)*(x - 2.5) + 0.0343466666666667*x*(x - 5.0)*(x - 2.5) - 0.0394666666666667*(x - 7.5)*(x - 5.0)*(x - 2.5)\n\nPolinomio de Lagrange: \n-0.03968*x**3 + 0.42*x**2 - 0.982*x + 3.7<\/code><\/pre>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> p_3(x) = 3.7 - 0.982x + 0.42 x^2 -0.03968 x^3<\/span>\n\n\n\n<h2 class=\"wp-block-heading\">literal b<\/h2>\n\n\n\n<p>Para verificar que el polinomio pasa por los puntos, se puede usar una gr\u00e1fica o al menos dos puntos usados para crear el polinomio:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> p_3(2.5) = 3.7 - 0.982(2.5) + 0.42 (2.5)^2 -0.03968 (2.5)^3 = 3.25 <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> p_3(5) = 3.7 - 0.982(5) + 0.42 (5)^2 -0.03968 (5)^3 = 4.33 <\/span>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; polisimple\n-0.03968*x**3 + 0.42*x**2 - 0.982*x + 3.7\n&gt;&gt;&gt; polisimple.subs(x,2.5)\n3.25000000000000\n&gt;&gt;&gt; polisimple.subs(x,5)\n4.33000000000000\n&gt;&gt;&gt;<\/code><\/pre>\n\n\n\n<p>Se comprueba que los valores obtenidos corresponden a las muestras, por lo que el polinomio cumple con los criterios b\u00e1sicos de interpolaci\u00f3n. La gr\u00e1fica permite verificar tambi\u00e9n el resultado.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"566\" height=\"442\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2025\/02\/helicopterointerpola02.png\" alt=\"helic\u00f3ptero interpola trayectoria 02\" class=\"wp-image-18655\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">literal c<\/h2>\n\n\n\n<p>Error en puntos no usados de las muestras<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> p_3(3.75) = 3.7 - 0.982(3.75) + 0.42 (3.75)^2 -0.03968 (3.75)^3 = 3.83125 <\/span>\n\n\n\n<p>error = |3.83125 - 4.05| = 0.218<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> p_3(6.25) = 3.7 - 0.982(6.25) + 0.42 (6.25)^2 -0.03968 (6.25)^3 = 4.28125 <\/span>\n\n\n\n<p>error = |4.28125 - 2.95| = 1.3312<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">literal d<\/h2>\n\n\n\n<p>Observando las gr\u00e1ficas de la trayectoria construida junto a las funciones descritas en el tema 1 se tiene que:<\/p>\n\n\n\n<p>Un polinomio de grado 3 es insuficiente para describir la trayectoria, se debe aumentar el grado del polinomio para ajustar mejor la curva.<\/p>\n\n\n\n<p>Por ejemplo, usando todos los puntos, la trayectoria y el polinomio son mas cercanas aunque no iguales.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"562\" height=\"444\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2025\/02\/helicopterointerpola03.png\" alt=\"helic\u00f3ptero interpola 03\" class=\"wp-image-18656\" \/><\/figure>\n\n\n\n<p>Encontrar el error en P(5), como x=5 y es parte de los puntos de muestra, el error deber\u00eda ser cero. <strong>Siempre y cuando x=5 sea parte de los puntos seleccionados<\/strong>.<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> p_3(5) = 3.7 - 0.982(5) + 0.42 (5)^2 -0.03968 (5)^3 = 4.33 <\/span>\n\n\n\n<p>error = | 4.33-4.33| = 0<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">literal f<\/h2>\n\n\n\n<p>Los resultados con el algoritmo de Lagrange se muestran como:<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>    valores de fi:  &#091;3.7  3.25 4.33 3.22]\ndivisores en L(i):  &#091;-93.75  31.25 -31.25  93.75]\n\nPolinomio de Lagrange, expresiones\n0.104*x*(x - 7.5)*(x - 5.0) - 0.13856*x*(x - 7.5)*(x - 2.5) + 0.0343466666666667*x*(x - 5.0)*(x - 2.5) - 0.0394666666666667*(x - 7.5)*(x - 5.0)*(x - 2.5)\n\nPolinomio de Lagrange: \n-0.03968*x**3 + 0.42*x**2 - 0.982*x + 3.7<\/code><\/pre>\n\n\n\n<p>Algoritmo en Python. Interpolaci\u00f3n polin\u00f3mica de Lagrange<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# 3Eva_2024PAOII_T2 Interpolar trayectoria helic\u00f3ptero\n# Interpolacion de Lagrange\n# divisoresL solo para mostrar valores\nimport numpy as np\nimport sympy as sym\nimport matplotlib.pyplot as plt\n\n# INGRESO , Datos de prueba\n# todos los datos\nxj = &#x5B;0.  , 2.50, 3.75, 5.00, 6.25, 7.5 ]\nfj = &#x5B;3.7 , 3.25, 4.05, 4.33, 2.95, 3.22]\n\n# datos seleccionados\nxi = &#x5B;0.  , 2.50, 5.00, 7.5 ]\nfi = &#x5B;3.7 , 3.25, 4.33, 3.22]\n\n# trayectoria\ngx = lambda t: 0.5*t +0 *t\ngy = lambda t: np.sin(0.10*t)*np.cos(0.7*t)+ 3.7\n\nta = 0 ; tb = 15\nmuestrast = 7\nmuestrasj = 4*muestrast\n\n# PROCEDIMIENTO\n# trayectoria\ntj = np.linspace(ta,tb,muestrasj)\ngxj = gx(tj)\ngyj = gy(tj)\n\n# Interpolaci\u00f3n\nxi = np.array(xi,dtype=float)\nfi = np.array(fi,dtype=float)\n# Polinomio de Lagrange\nn = len(xi)\nx = sym.Symbol('x')\npolinomio = 0\ndivisorL = np.zeros(n, dtype = float)\nfor i in range(0,n,1):\n    \n    # Termino de Lagrange\n    numerador = 1\n    denominador = 1\n    for j  in range(0,n,1):\n        if (j!=i):\n            numerador = numerador*(x-xi&#x5B;j])\n            denominador = denominador*(xi&#x5B;i]-xi&#x5B;j])\n    terminoLi = numerador\/denominador\n\n    polinomio = polinomio + terminoLi*fi&#x5B;i]\n    divisorL&#x5B;i] = denominador\n\n# simplifica el polinomio\npolisimple = polinomio.expand()\n\n# para evaluaci\u00f3n num\u00e9rica\npx = sym.lambdify(x,polisimple)\n\n# Puntos para la gr\u00e1fica\nmuestras = 101\na = np.min(xi)\nb = np.max(xi)\npxi = np.linspace(a,b,muestras)\npfi = px(pxi)\n\n# SALIDA\nprint('    valores de fi: ',fi)\nprint('divisores en L(i): ',divisorL)\nprint()\nprint('Polinomio de Lagrange, expresiones')\nprint(polinomio)\nprint()\nprint('Polinomio de Lagrange: ')\nprint(polisimple)\n\n# Gr\u00e1fica\nplt.plot(gxj,gyj,color='orange', label = 'trayectoria')\nplt.plot(xi,fi,'o', label = 'muestras')\nplt.plot(pxi,pfi,color='green',linestyle='dashed', label = 'P(x)')\nplt.legend()\nplt.xlabel('xi')\nplt.ylabel('fi')\nplt.grid()\nplt.title('Interpolaci\u00f3n Lagrange')\nplt.show()\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 3Eva2024PAOII_T2 Interpolar trayectoria helic\u00f3ptero literal a Seg\u00fan la gr\u00e1fica presentada, los puntos a considerar para todo el intervalo, deber\u00edan ser al menos el primero y el \u00faltimo. Para un polinomio de grado 3 se requieren usar 4 muestras, por lo que faltar\u00edan dos muestras dentro del intervalo. Los puntos adicionales estar\u00edan entre los puntos [&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-10695","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\/10695","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=10695"}],"version-history":[{"count":7,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/10695\/revisions"}],"predecessor-version":[{"id":23937,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/10695\/revisions\/23937"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=10695"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=10695"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=10695"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}