web-dev-qa-db-fra.com

Utilisation des équations de Sympy pour le traçage

Quel est le meilleur moyen de créer une équation de Sympy, de faire quelque chose comme prendre la dérivée, puis de tracer les résultats de cette équation? 

J'ai mon équation symbolique, mais je ne peux pas comprendre comment créer un tableau de valeurs pour le traçage. Voici mon code: 

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()

Dans mon cas, je viens de calculer la dérivée de cette équation, et maintenant je veux tracer la vitesse x, donc c'est assez simplifié. 

10
MANA624

Vous pouvez utiliser numpy.linspace() pour créer les valeurs de l'axe x (x_vals dans le code ci-dessous) et 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()

(améliorations suggérées par asmeurer et MaxNoe )

 enter image description here

Vous pouvez également utiliser la fonction plot() de sympy:

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')
14
Fermi paradox

Utiliser SymPy

Vous pouvez utiliser directement les fonctions de traçage 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)

 enter image description here

La plupart du temps, il utilise matplotlib comme back-end.

0
G M