Polinomio De Taylor Con Python 3

Hola

Veamos cómo de una forma sencilla podemos calcular y dibujar el Polinomio de Taylor de funciones de una variable real. Utilizaré las librerías de mates simbólicas Sympy sobre Python 3. Para dibujar la función y su desarrollo de Taylor utilizo las librerías Matplotlib.

Para calcular el pol. de Taylor hay que utilizar el método series() de Sympy, la ayuda por el Shell es:

usuario@nombrepc:~$

Help on function series in module sympy.series.series:

series(expr, x=None, x0=0, n=6, dir=’+’)
Series expansion of expr around point `x = x0`.

See the doctring of Expr.series() for complete details of this wrapper.

El código es el siguiente, es muy sencillo:

  1. __author__ = 'tobal'
  2.  
  3. #/usr/bin/env python3
  4. # -*- coding: utf-8 -*-
  5.  
  6. from sympy import *
  7. from sympy.plotting import *
  8. import matplotlib.pyplot as plt
  9. from matplotlib import rcParams
  10. import numpy as np
  11.  
  12. rcParams['text.latex.unicode'] = True
  13. rcParams['text.usetex'] = True
  14. rcParams['text.latex.preamble'] = '\\usepackage{amsthm}', '\\usepackage{amsmath}', '\\usepackage{amssymb}',
  15. '\\usepackage{amsfonts}', '\\usepackage[T1]{fontenc}', '\\usepackage[utf8]{inputenc}'
  16.  
  17. x = symbols('x')
  18. init_printing(use_unicode=True)
  19. pprint('Introduce la función para calcular su polinomio de Taylor: ')
  20. expr = eval(input())
  21. pprint('La función es: ')
  22. pprint(expr)
  23. pprint(r'Introduce el punto local x_0: ')
  24. x0 = float(input())
  25. pprint('Introduce el grado del polinomio: ')
  26. n = int(input())
  27. taylor = expr.series(x, x0, n).removeO()
  28. pprint('El Polinomio de Taylor  de orden {0} centrado en {1} es:\n '.format(n, x0))
  29. pprint(taylor)
  30. f = lambdify(x, expr, 'numpy')
  31. g = lambdify(x, taylor, 'numpy')
  32.  
  33. fig, ax = plt.subplots()
  34. title = r'$Polinomio \; De \; Taylor \; (x_0={0},\; n={1})$'.format(x0, n)
  35. ax.set_title(title)
  36. t = np.linspace(-6.0, 6.0, 1000)
  37. ax.axis([-6, 6, -1, 6])
  38.  
  39. ax.set_xlabel('x', color='blue')
  40. ax.set_ylabel('y', color='blue')
  41.  
  42. ax.grid('on')
  43.  
  44. ax.plot(t, f(t), 'b-', lw=1.5)
  45. ax.plot(t, g(t), 'r-', lw=1.5)
  46.  
  47. # Drawing Our Legend
  48. text1 = r'$f(x)={}$'.format(latex(expr))
  49. text2 = r'$g(x)={}$'.format(latex(taylor))
  50.  
  51. plt.legend([text1, text2])
  52.  
  53. plt.show()

Si lo ejecutamos en el Shell:

usuario@nombrepc:~$

Introduce la función para calcular su polinomio de Taylor:
exp(sin(x))
La función es:
e^{sin(x)}
Introduce el punto local x_0:
0
Introduce el grado del polinomio:
7
El Polinomio de Taylor  de orden 7 centrado en 0.0 es:

-\frac{x^6}{240}-\frac{x^5}{15}-\frac{x^4}{8}+\frac{x^2}{2}+x+1

El código lo he realizado de forma que desde la Shell podemos introducir nuestra función respetando la sintaxis de Sympy, eso ha sido gracias al uso que hago de la función eval(). La gráfica de las funciones son:

taylor

Vemos que hemos obtenido una buena aproximación alrededor de x_0=0 con Sympy y Matplotlib. De la misma forma podemos obtener desarrollos de Taylor para funciones de varias variables.

Saludos

Pingbacks/Trackbacks

  1. Bitacoras.com - 12 abril, 2014

    Información Bitacoras.com

    Valora en Bitacoras.com: Hola Veamos cómo de una forma sencilla podemos calcular y dibujar el Polinomio de Taylor de funciones de una variable real. Utilizaré las librerías de mates simbólicas Sympy sobre Python 3. Para dibujar la función y su d…

Comments are closed.

Proudly powered by WordPress   Premium Style Theme by www.gopiplus.com
A %d blogueros les gusta esto: