{"id":5005,"date":"2017-05-20T09:40:47","date_gmt":"2017-05-20T14:40:47","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/matg1013\/?p=5005"},"modified":"2026-03-10T07:54:04","modified_gmt":"2026-03-10T12:54:04","slug":"taylor-polinomio-tabla-y-grafico","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-u01\/taylor-polinomio-tabla-y-grafico\/","title":{"rendered":"1.3.1 Polinomio de Taylor - Tabla y Gr\u00e1fica con Python"},"content":{"rendered":"\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><em>Taylor<\/em>: <\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#funcion\">funci\u00f3n<\/a> politaylor()<\/p>\n\n\n\n<p><a href=\"#prettyprint\">pprint()<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"ejercicio\">1. Ejercicio<\/h2>\n\n\n\n<p><em><strong>Referencia<\/strong>: Burden 7Ed Cap\u00edtulo 1.1 Ejemplo 3. 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>Continuando con el <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/analisisnumerico\/taylor-polinomio-ejemplo01\/\">Ejemplo01<\/a>, se generaliza el algoritmo para crear una tabla de polinomios de Taylor de diferente grado.<br>Se complementa el ejercicio con el gr\u00e1fico de cada polinomio para interpretar los resultados, alrededor de <strong>x<\/strong><sub>0 <\/sub>= 0<\/p>\n\n\n\n<span class=\"wp-katex-eq katex-display\" data-display=\"true\"> f(x) = \\cos (x) <\/span>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>grado :  polinomio\n0 : 1\n1 : 1\n2 : -x**2\/2 + 1\n3 : -x**2\/2 + 1\n4 : x**4\/24 - x**2\/2 + 1\n5 : x**4\/24 - x**2\/2 + 1\n6 : -x**6\/720 + x**4\/24 - x**2\/2 + 1\n7 : -x**6\/720 + x**4\/24 - x**2\/2 + 1\n8 : x**8\/40320 - x**6\/720 + x**4\/24 - x**2\/2 + 1\n9 : x**8\/40320 - x**6\/720 + x**4\/24 - x**2\/2 + 1<\/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\/2025\/11\/taylor01_animado.gif\" alt=\"Serie de Taylor gr\u00e1fico animado\" class=\"wp-image-14\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><em>Taylor<\/em>: <\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#funcion\">funci\u00f3n<\/a> politaylor()<\/p>\n\n\n\n<p><a href=\"#prettyprint\">pprint()<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"funcion\">2. Funci\u00f3n politaylor(fx,x0,n) en Python<\/h2>\n\n\n\n<p><em>Secci\u00f3n complementaria, no obligatoria para la parte algor\u00edtmica<\/em><\/p>\n\n\n\n<p>En el ejercicio presentado requiere resolver con varios grados de polinomio, por lo que se generaliza convirtiendo el procedimiento del algoritmo anterior al formato de funci\u00f3n <code>def-return<\/code>. Cada polinomio intermedio se a\u00f1ade a una tabla de resultados:<\/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\/2017\/05\/taylor_ejercicio01.png\" alt=\"Polinomio de Taylor de varios grados\" class=\"wp-image-13221\" \/><\/figure>\n\n\n\n<p>Instrucciones en Python<\/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<\/pre><\/div>\n\n\n<p>Con lo que se obtiene los polinomios para cada grado calculado.<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>grado :  polinomio\n0 : 1\n1 : 1\n2 : -x**2\/2 + 1\n3 : -x**2\/2 + 1\n4 : x**4\/24 - x**2\/2 + 1\n5 : x**4\/24 - x**2\/2 + 1\n6 : -x**6\/720 + x**4\/24 - x**2\/2 + 1\n7 : -x**6\/720 + x**4\/24 - x**2\/2 + 1\n8 : x**8\/40320 - x**6\/720 + x**4\/24 - x**2\/2 + 1\n9 : x**8\/40320 - x**6\/720 + x**4\/24 - x**2\/2 + 1<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><em>Taylor<\/em>: <\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#funcion\">funci\u00f3n<\/a> politaylor()<\/p>\n\n\n\n<p><a href=\"#prettyprint\">pprint()<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"prettyprint\">3. Mostrar polinomio<\/h2>\n\n\n\n<p>Otra forma de presentar la salida es \"<strong>p<\/strong>retty <strong>print<\/strong>\" con <code><strong>sym.pprint<\/strong>()<\/code> . a\u00f1ada las instrucciones en el bloque de salida como se muestra a continuaci\u00f3n:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\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<\/pre><\/div>\n\n\n<p>para obtener el siguiente resultado<\/p>\n\n\n\n<pre class=\"wp-block-code alignwide\"><code>grado :  polinomio\n0 : 1\npolinomio: \n1\n\n1 : 1\npolinomio: \n1\n\n2 : -x**2\/2 + 1\npolinomio: \n   2    \n  x     \n- -- + 1\n  2     \n\n3 : -x**2\/2 + 1\npolinomio: \n   2    \n  x     \n- -- + 1\n  2     \n\n4 : x**4\/24 - x**2\/2 + 1\npolinomio: \n 4    2    \nx    x     \n-- - -- + 1\n24   2     \n\n5 : x**4\/24 - x**2\/2 + 1\npolinomio: \n 4    2    \nx    x     \n-- - -- + 1\n24   2     \n\n6 : -x**6\/720 + x**4\/24 - x**2\/2 + 1\npolinomio: \n    6    4    2    \n   x    x    x     \n- --- + -- - -- + 1\n  720   24   2     <\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><em>Taylor<\/em>: <\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#funcion\">funci\u00f3n<\/a> politaylor()<\/p>\n\n\n\n<p><a href=\"#prettyprint\">pprint()<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"grafica\">4. Gr\u00e1fica con Python para la Serie de Taylor<\/h2>\n\n\n\n<p>La forma gr\u00e1fica de cada polinomio se obtiene evaluando cada polinomio para obtener las l\u00edneas en el intervalo [a, b] para cada punto del vector <strong><em>x<sub>i<\/sub><\/em><\/strong> .<\/p>\n\n\n\n<p>Se utiliza un cierto n\u00famero de <em><strong>muestras<\/strong> <\/em>en cada intervalo [a,b].<\/p>\n\n\n\n<p>El resultado es una matriz, <em><strong>px_lineas<\/strong><\/em>, cuya fila representa el <em><strong>grado<\/strong> <\/em>del polinomio, y la columna contiene los valores del polinomio de cada grado evaluado en cada punto x<sub>i<\/sub><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\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<\/pre><\/div>\n\n\n<p>Cada polinomio en la fila de <code>px_lineas<\/code>, genera una l\u00ednea adicional en la gr\u00e1fica. Se itera cada fila de <code>px_lineas<\/code> usando el grado del polinomio, dibujando cada l\u00ednea con <code>plt.plot()<\/code>:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code alignwide\"><pre class=\"brush: python; first-line: 14; title: ; notranslate\" title=\"\">\n# SALIDA - GRAFICA\nimport matplotlib.pyplot as plt\n\ntitulo = 'Aproximaci\u00f3n con Polinomios de Taylor'\nplt.plot(xi,fi,'r',label=str(fx))\n\nfor grado in range(0,n,2):\n    etiqueta = 'grado: '+str(grado)\n    plt.plot(xi, px_lineas&#x5B;grado],\n             '-.',label = etiqueta)\n\n# entorno de gr\u00e1fica\nymax = 2*np.max(fi)\nplt.xlim(&#x5B;a,b])\nplt.ylim(&#x5B;-ymax,ymax])\nplt.xlabel('x')\nplt.ylabel('y')\nplt.title(titulo)\nplt.legend()\nplt.show()\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<div class=\"wp-block-group has-medium-font-size is-layout-flex wp-block-group-is-layout-flex\">\n<p><em>Taylor<\/em>: <\/p>\n\n\n\n<p><a href=\"#ejercicio\">Ejercicio<\/a><\/p>\n\n\n\n<p><a href=\"#funcion\">funci\u00f3n<\/a> politaylor()<\/p>\n\n\n\n<p><a href=\"#prettyprint\">pprint()<\/a><\/p>\n\n\n\n<p><a href=\"#grafica\">gr\u00e1fica<\/a><\/p>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n","protected":false},"excerpt":{"rendered":"<p>Taylor: Ejercicio funci\u00f3n politaylor() pprint() gr\u00e1fica 1. Ejercicio Referencia: Burden 7Ed Cap\u00edtulo 1.1 Ejemplo 3. p11, 10Ed p8. Chapra, 4.1 p80. Taylor Series (Wikipedia) Continuando con el Ejemplo01, se generaliza el algoritmo para crear una tabla de polinomios de Taylor de diferente grado.Se complementa el ejercicio con el gr\u00e1fico de cada polinomio para interpretar los [&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-5005","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\/5005","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=5005"}],"version-history":[{"count":9,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/5005\/revisions"}],"predecessor-version":[{"id":22855,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/5005\/revisions\/22855"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=5005"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=5005"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=5005"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}