En este artículo, trazaremos la derivada de una función usando matplotlib y python. Para esto estamos usando unos módulos en python los cuales son los siguientes:
- Matplotlib: Matplotlib es uno de los paquetes de Python más populares utilizados para la visualización de datos. Es una biblioteca multiplataforma para hacer gráficos 2D a partir de datos en arrays.
- NumPy: Es una biblioteca de python que se usa para trabajar con arreglos, también admite grandes arreglos y arrays multidimensionales, también tiene varias funciones matemáticas.
- SciPy: Python tiene una biblioteca llamada SciPy que se usa para cálculos matemáticos, científicos y de ingeniería. Esta biblioteca depende de NumPy y proporciona varias operaciones numéricas.
Para graficar la derivada de una función primero, tenemos que calcularla. La biblioteca scipy.misc tiene una función derivada() que acepta un argumento como función y el otro es la variable wrt con la que diferenciaremos la función. Así que crearemos un método llamado function() que devolverá la función original y un segundo método llamado deriv() que devolverá la derivada de esa función.
Después de este cálculo de la derivada de la función de entrada, usaremos la función NumPy linspace() que establece el rango del eje x. La función plot() se utilizará para trazar la función y también la derivada de esa función.
Acercarse:
- Importe los módulos requeridos.
- Definir métodos para la función y su derivada.
- Use la función NumPy linspace para hacer el espaciado del eje x.
- Graficar la función y su derivada
- Cambie los límites del eje usando la función gca()
- Graficar el texto usando la función text()
Ejemplo 1: (Derivada de cúbico)
En este ejemplo, daremos la función f(x)=2x 3 +x+3 como entrada, luego calcularemos la derivada y trazaremos tanto la función como su derivada.
Python3
# importing the library import matplotlib.pyplot as plt from scipy.misc import derivative import numpy as np # defining the function def function(x): return 2*x*x*x+x+3 # calculating its derivative def deriv(x): return derivative(function, x) # defininf x-axis intervals y = np.linspace(-6, 6) # plotting the function plt.plot(y, function(y), color='purple', label='Function') # plotting its derivative plt.plot(y, deriv(y), color='green', label='Derivative') # formatting plt.legend(loc='upper left') plt.grid(True)
Producción:
Ejemplo 2: (Derivada del polinomio de poligrado)
En este ejemplo, daremos la función f(x)=x 4 +x 2 +5 como entrada, luego calcularemos la derivada y trazaremos tanto la función como su derivada.
Python3
# importing the library import matplotlib.pyplot as plt from scipy.misc import derivative import numpy as np # defining the function def function(x): return x*x*x*x+x*x+5 # calculating its derivative def deriv(x): return derivative(function, x) # defininf x-axis intervals y = np.linspace(-15, 15) # plotting the function plt.plot(y, function(y), color='red', label='Function') # plotting its derivative plt.plot(y, deriv(y), color='green', label='Derivative') # formatting plt.legend(loc='upper left') plt.grid(True)
Producción:
Ejemplo 3: (Derivada de cuadrática con formato por texto)
En este ejemplo, trazaremos la derivada de f(x)=4x 2 +x+1. Además, usaremos algún formato usando la función gca() que cambiará los límites del eje para que ambos ejes x, y se crucen en el origen. La función text() que se encuentra en la biblioteca matplotlib traza el texto en el gráfico y toma un argumento como coordenadas (x, y). También haremos algo de formateo.
Python3
# importing modules import matplotlib.pyplot as plt from scipy.misc import derivative import numpy as np # method to return function def function(x): return 4*x**2+x+1 # method to return its derivative def deriv(x): return derivative(function, x) #range in x-axis y = np.linspace(-6, 6) # plotting function plt.plot(y, function(y), color='brown', label='Function') # plotting its derivative plt.plot(y, deriv(y), color='blue', label='Derivative') # changing limits of y-axis plt.gca().spines['left'].set_position('zero',) # changing limits of x-axis plt.gca().spines['bottom'].set_position('zero',) plt.legend(loc='upper left') # plotting text in the graph plt.text(5.0, 1.0, r"$f'(x)=8x+1$", horizontalalignment='center', fontsize=18, color='blue') plt.text(-4.4, 25.0, r'$f(x)=4x^2+x+1$', horizontalalignment='center', fontsize=18, color='brown') plt.grid(True)
Producción:
Publicación traducida automáticamente
Artículo escrito por adityaprasad1308 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA