{"id":2784,"date":"2017-05-21T09:45:11","date_gmt":"2017-05-21T14:45:11","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/matg1013\/?p=2784"},"modified":"2026-03-15T07:32:48","modified_gmt":"2026-03-15T12:32:48","slug":"taylor-polinomio-grafico-animado","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-u01\/taylor-polinomio-grafico-animado\/","title":{"rendered":"1.3.2 Polinomio de Taylor - Gr\u00e1fica animada en Python"},"content":{"rendered":"\n<p><em><strong>Referencia<\/strong>: Burden 7Ed, Cap 1.1 Ejemplo 3.&nbsp; p11, 10Ed p8. Chapra, 4.1 p80, <a href=\"https:\/\/en.wikipedia.org\/wiki\/Taylor_series\">Taylor Series (Wikipedia)<\/a><\/em><\/p>\n\n\n\n<p>El ejercicio se presenta como un complemento para la secci\u00f3n 1.3&nbsp; que permite obtener una gr\u00e1fica animada.<\/p>\n\n\n\n<p><strong>Esta secci\u00f3n es complementaria <\/strong>y usada solo como referencia para exponer el tema. Normalmente se da una explicaci\u00f3n breve en el laboratorio de computadoras.<\/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\/2025\/11\/taylor01_animado.gif\" alt=\"Serie de Taylor gr\u00e1fico animado\" class=\"wp-image-14\" \/><\/figure>\n\n\n\n<p>la parte adicional se muestra a partir de:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# SALIDA\n# GRAFICA CON ANIMACION ------------\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Algoritmo completo en Python<\/h2>\n\n\n\n<p>El tema en detalle se desarrolla en Movimiento circular \u2013 Una part\u00edcula, animaci\u00f3n con matplotlib-Python del curso de Fundamentos de Programaci\u00f3n<\/p>\n\n\n\n<p>El algoritmo requiere disponer de la librer\u00eda\"pillow\".<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n# Aproximaci\u00f3n Polinomio de Taylor alrededor de x0\n# f(x) en forma simb\u00f3lica con sympy\n\nimport numpy as np\nimport math\nimport sympy as sym\n\ndef politaylor(fx,x0,n):\n    k = 0\n    polinomio = 0\n    while (k &lt;= n):\n        derivada   = fx.diff(x,k)\n        derivadax0 = derivada.subs(x,x0)\n        divisor   = math.factorial(k)\n        terminok  = (derivadax0\/divisor)*(x-x0)**k\n        polinomio = polinomio + terminok\n        k = k + 1\n    return(polinomio)\n\n# PROGRAMA  -------------\n# Capitulo 1 Ejemplo 2, Burden p11, pdf 21\n\n# INGRESO\nx = sym.Symbol('x')\nfx = sym.cos(x) \n\nx0 = 0          \nn  = 10  # Grado polinomio Taylor\na  = -5   # intervalo &#x5B;a,b]\nb  = 5\nmuestras = 51\n\n# PROCEDIMIENTO\n# tabla polinomios\npx_tabla = &#x5B;]\nfor grado in range(0,n,1):\n    polinomio = politaylor(fx,x0,grado)\n    px_tabla.append(polinomio)\n\n# SALIDA\nprint('grado :  polinomio')\nfor grado in range(0,n,1):\n    px = px_tabla&#x5B;grado]\n    print(str(grado)+ ' : '+str(px))\n    \n    # print('polinomio: ')\n    # sym.pprint(px)\n    # print()\n\n# GRAFICA - TABLA polinomios ------\nxi = np.linspace(a,b,muestras)\n\n# Forma lambda, simplifica evaluaci\u00f3n\nfxn = sym.utilities.lambdify(x,fx,'numpy')\nfi  = fxn(xi)\n\n# lineas de cada grado de polinomio\npx_lineas = np.zeros(shape=(n,muestras), dtype =float)\nfor grado in range(0,n,1):\n    polinomio = px_tabla&#x5B;grado]\n    px = sym.utilities.lambdify(x,polinomio,'numpy')\n    px_lineas&#x5B;grado] = px(xi)\n\n# SALIDA\n# GRAFICA CON ANIMACION ------------\nimport matplotlib.pyplot as plt\nimport matplotlib.animation as animation\n\n# Parametros de trama\/foto\nnarchivo = 'Taylor01' # nombre archivo\nretardo = 700   # milisegundos entre tramas\ntramas = len(px_lineas)\nymax = 2*np.max(np.abs(fi))\n\n# GRAFICA figura\nfigura, ejes = plt.subplots()\n\n# Funci\u00f3n Base\nfx_linea, = ejes.plot(xi,fi,'r')\n\n# Polinomios de tablapoli grado = 0\npx_unalinea, = ejes.plot(xi, px_lineas&#x5B;0],\n                         '-.', label='grado: 0')\n\n# Configura gr\u00e1fica\nplt.xlim(&#x5B;a,b])\nplt.ylim(&#x5B;-ymax,ymax])\nplt.axhline(0, color='k')  # horizontal en cero\nplt.title('Polinomio Taylor: '+'f(x) = ' + str(fx))\nplt.xlabel('x')\nplt.ylabel('y')\nplt.grid()\n\n# cuadros de texto en gr\u00e1fico\ntxt_x = (b+a)\/2\ntxt_y = ymax*(1-0.1)\ntexto_poli = ejes.text(txt_x, txt_y*(1),\n                      'p(x):',\n                      horizontalalignment='center')\ntexto_grado = ejes.text(txt_x, txt_y*(1-0.1),\n                        'grado:',\n                        horizontalalignment='center')\n\n# Nueva Trama\ndef unatrama(i,xi,pxi):\n    \n    # actualiza cada linea\n    px_unalinea.set_xdata(xi)\n    px_unalinea.set_ydata(pxi&#x5B;i])\n    etiquetap = 'p'+str(i)+'(x) = '+str(px_tabla&#x5B;i])\n    px_unalinea.set_label(etiquetap)\n    \n    # actualiza texto\n    texto_poli.set_text(etiquetap)\n    texto_grado.set_text('Grado: '+str(i))\n    \n    # color de la l\u00ednea\n    if (i&lt;=9):\n        lineacolor = 'C'+str(i)\n    else:\n        numerocolor = i%10\n        lineacolor = 'C'+str(numerocolor)\n    px_unalinea.set_color(lineacolor)\n    \n    return (px_unalinea, texto_poli, texto_grado)\n\n# Limpia Trama anterior\ndef limpiatrama():\n    \n    px_unalinea.set_ydata(np.ma.array(xi, mask=True))\n    px_unalinea.set_label('')\n    \n    texto_poli.set_text('')\n    texto_grado.set_text('')\n    \n    return (px_unalinea,texto_poli, texto_grado)\n\n# Trama contador\ni  = np.arange(0,tramas,1)\nani = animation.FuncAnimation(figura,\n                              unatrama,\n                              i ,\n                              fargs = (xi,px_lineas),\n                              init_func = limpiatrama,\n                              interval = retardo,\n                              blit=True)\n\n# Graba Archivo GIFAnimado y video\nani.save(narchivo+'_GIFanimado.gif',writer='pillow')\n\n# ani.save(narchivo+'_video.mp4')\nplt.draw()\nplt.show()\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Referencia: Burden 7Ed, Cap 1.1 Ejemplo 3.&nbsp; p11, 10Ed p8. Chapra, 4.1 p80, Taylor Series (Wikipedia) El ejercicio se presenta como un complemento para la secci\u00f3n 1.3&nbsp; que permite obtener una gr\u00e1fica animada. Esta secci\u00f3n es complementaria y usada solo como referencia para exponer el tema. Normalmente se da una explicaci\u00f3n breve en el laboratorio [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"wp-custom-template-entrada-mn-unidades","format":"standard","meta":{"footnotes":""},"categories":[35],"tags":[],"class_list":["post-2784","post","type-post","status-publish","format-standard","hentry","category-mn-u01"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/2784","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=2784"}],"version-history":[{"count":4,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/2784\/revisions"}],"predecessor-version":[{"id":22994,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/2784\/revisions\/22994"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=2784"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=2784"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=2784"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}