Usando las ecuaciones de Sympy para trazar

¿Cuál es la mejor manera de crear una ecuación de Sympy, hacer algo como tomar la derivada y luego trazar los resultados de esa ecuación?

Tengo mi ecuación simbólica, pero no puedo entender cómo hacer una matriz de valores para trazar. Aquí está mi código:

from sympy import symbols import matplotlib.pyplot as mpl t = symbols('t') x = 0.05*t + 0.2/((t - 5)**2 + 2) nums = [] for i in range(1000): nums.append(t) t += 0.02 plotted = [x for t in nums] mpl.plot(plotted) mpl.ylabel("Speed") mpl.show() 

En mi caso, solo calculé la derivada de esa ecuación, y ahora quiero trazar la velocidad x , así que esto está bastante simplificado.

Puede usar numpy.linspace() para crear los valores del eje x ( x_vals en el código a continuación) y lambdify() .

 from sympy import symbols from numpy import linspace from sympy import lambdify import matplotlib.pyplot as mpl t = symbols('t') x = 0.05*t + 0.2/((t - 5)**2 + 2) lam_x = lambdify(t, x, modules=['numpy']) x_vals = linspace(0, 10, 100) y_vals = lam_x(x_vals) mpl.plot(x_vals, y_vals) mpl.ylabel("Speed") mpl.show() 

(mejoras sugeridas por asmeurer y MaxNoe )

introduzca la descripción de la imagen aquí

Alternativamente, puedes usar la plot() de sympy plot() :

 from sympy import symbols from sympy import plot t = symbols('t') x = 0.05*t + 0.2/((t - 5)**2 + 2) plot(x, (t, 0, 10), ylabel='Speed') 

Usando SymPy

Puedes usar directamente las funciones de trazado de SymPy :

 from sympy import symbols from sympy.plotting import plot as symplot t = symbols('t') x = 0.05*t + 0.2/((t - 5)**2 + 2) symplot(x) 

introduzca la descripción de la imagen aquí

La mayoría de las veces usa matplotlib como backend.