{"id":8580,"date":"2022-11-25T18:05:49","date_gmt":"2022-11-25T23:05:49","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/analisisnumerico\/?p=8580"},"modified":"2026-04-05T20:00:11","modified_gmt":"2026-04-06T01:00:11","slug":"s1eva2022paoii_t3-trayectoria-de-dron-con-polinomios","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-s1eva30\/s1eva2022paoii_t3-trayectoria-de-dron-con-polinomios\/","title":{"rendered":"s1Eva2022PAOII_T3 Trayectoria de dron con polinomios"},"content":{"rendered":"\n<p><strong>Ejercicio<\/strong>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-1eva30\/1eva2022paoii_t3-trayectoria-de-dron-con-polinomios\/\" data-type=\"post\" data-id=\"8572\">1Eva2022PAOII_T3 Trayectoria de dron con polinomios<\/a><\/p>\n\n\n\n<p>La variable independiente para la trayectoria es tiempo, con datos en el vector de ti.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ti&nbsp;&nbsp;= &#091;0, 1, 2, 3, 4]\nxti = &#091;2, 1, 3, 4, 2]\nyti = &#091;0, 1, 5, 1, 0]<\/code><\/pre>\n\n\n\n<p>Considerando que los puntos marcan posiciones por donde debe pasar el dron y se define la trayectoria, se usar\u00e1n todos los puntos. Cada polinomio ser\u00e1 de <strong>grado 4<\/strong> al incluir los 5 puntos disponibles para cada eje.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"555\" height=\"439\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2022\/11\/TrayectoriaDrone01.png\" alt=\"Trayectoria Drone puntos en XY\" class=\"wp-image-14231\" \/><\/figure>\n\n\n\n<p><em><strong>Nota<\/strong><\/em>: podr\u00eda usar polinomios de menor grado, siempre que considere que se debe completar la trayectoria y regresar al punto de salida.<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> px(t) = 2\\frac{(t-1)(t-2)(t-3)(t-4)}{(0-1)(0-2)(0-3)(0-4)} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + 1 \\frac{(t-0)(t-2)(t-3)(t-4)}{(1-0)(1-2)(1-3)(1-4)} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + 3 \\frac{(t-0)(t-1)(t-3)(t-4)}{(2-0)(2-1)(2-3)(2-4)} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + 4 \\frac{(t-0)(t-1)(t-2)(t-4)}{(3-0)(3-1)(3-2)(3-4)} <\/span>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> + 2 \\frac{(t-0)(t-1)(t-2)(t-3)}{(4-0)(4-1)(4-2)(4-3)} <\/span>\n\n\n\n<p>simplificando con el algoritmo:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> px(t) = \\frac{1}{12}t^4 - \\frac{7}{6}t^3 + \\frac{53}{12}t^2 - \\frac{13}{3}t + 2 <\/span>\n\n\n\n<p>Realizando lo mismo con el algoritmo para polinomio de Lagrange se obtiene:<\/p>\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> py(t) = \\frac{11}{12}t^4 - \\frac{22}{3}t^3 + \\frac{205}{12}t^2 - \\frac{29}{3}t <\/span>\n\n\n\n<p>se muestra la gr\u00e1fica de trayectorias por cada eje vs tiempo<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"558\" height=\"434\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2022\/11\/TrayectoriaDrone02.png\" alt=\"Trayectoria Drone agr\u00edcola en planos Xt Yt\" class=\"wp-image-14232\" \/><\/figure>\n\n\n\n<p><strong>Observaciones<\/strong>: La trayectoria usada tiene el mismo punto de salida como de retorno. La trayectoria presenta l\u00f3bulos que podr\u00edan ser reducidos y minimizar uso de recursos como bater\u00eda.<\/p>\n\n\n\n<p>Considere usar trazadores c\u00fabicos y observe la misma gr\u00e1fica de trayectorias x(t) vs y(t).<\/p>\n\n\n\n<p>Resultado con el algoritmo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Polinomio de Lagrange x: \nx**4\/12 - 7*x**3\/6 + 53*x**2\/12 - 13*x\/3 + 2\nPolinomio de Lagrange y: \n11*x**4\/12 - 22*x**3\/3 + 205*x**2\/12 - 29*x\/3<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Algoritmo en Python<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\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\nti  = &#x5B;0,1,2,3,4]\nxti = &#x5B;2,1,3,4,2]\nyti = &#x5B;0,1,5,1,0]\n\n# PROCEDIMIENTO\nx = sym.Symbol('x')\n\ndef interpola_lagrange(xi,yi):\n    '''\n    Interpolaci\u00f3n con m\u00e9todo de Lagrange\n    resultado: polinomio en forma simb\u00f3lica\n    '''\n    # PROCEDIMIENTO\n    n = len(xi)\n    x = sym.Symbol('x')\n    # Polinomio\n    polinomio = 0\n    for i in range(0,n,1):\n        # Termino de Lagrange\n        termino = 1\n        for j  in range(0,n,1):\n            if (j!=i):\n                termino = termino*(x-xi&#x5B;j])\/(xi&#x5B;i]-xi&#x5B;j])\n        polinomio = polinomio + termino*yi&#x5B;i]\n    # Expande el polinomio\n    polinomio = polinomio.expand()\n    return(polinomio)\n\n# para ejex\npolinomiox = interpola_lagrange(ti,xti)\npolisimplex = polinomiox.expand()\npx = sym.lambdify(x,polisimplex)\n\n# para ejey\npolinomioy = interpola_lagrange(ti,yti)\npolisimpley = polinomioy.expand()\npy = sym.lambdify(x,polisimpley)\n\n# Puntos para la gr\u00e1fica\nmuestras = 101\na = np.min(ti)\nb = np.max(ti)\nti = np.linspace(a,b,muestras)\npxi = px(ti)\npyi = py(ti)\n\n# SALIDA\nprint('Polinomio de Lagrange x: ')\nprint(polisimplex)\nprint('Polinomio de Lagrange y: ')\nprint(polisimpley)\n\n# Gr\u00e1fica\nfigura, enplano = plt.subplots()\nplt.scatter(xti,yti, color='red')\nplt.plot(pxi,pyi)\nplt.ylabel('y(t)')\nplt.xlabel('x(t)')\nplt.title('trayectoria 2D')\nplt.grid()\n\nfigura, entiempo = plt.subplots()\nplt.plot(ti,pxi, label = 'px')\nplt.plot(ti,pyi, label = 'py')\nplt.legend()\nplt.title('posicion en tiempo')\nplt.xlabel('t')\nplt.ylabel('p(t)')\nplt.grid()\n\nplt.show()\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 1Eva2022PAOII_T3 Trayectoria de dron con polinomios La variable independiente para la trayectoria es tiempo, con datos en el vector de ti. Considerando que los puntos marcan posiciones por donde debe pasar el dron y se define la trayectoria, se usar\u00e1n todos los puntos. Cada polinomio ser\u00e1 de grado 4 al incluir los 5 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","format":"standard","meta":{"footnotes":""},"categories":[46],"tags":[58,54],"class_list":["post-8580","post","type-post","status-publish","format-standard","hentry","category-mn-s1eva30","tag-ejemplos-python","tag-mnumericos"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/8580","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=8580"}],"version-history":[{"count":3,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/8580\/revisions"}],"predecessor-version":[{"id":23831,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/8580\/revisions\/23831"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=8580"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=8580"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=8580"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}