创建Sympy方程的最佳方法是什么,做一些类似于导数的方法,然后绘制该方程的结果?
我有我的符号方程,但无法弄清楚如何为绘图制作一组数值。这是我的代码:
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()
在我的情况下,我只计算了该等式的导数,现在我想绘制速度x
,所以这相当简单。
答案 0 :(得分:14)
您可以使用numpy.linspace()
创建x轴(x_vals
在下面的代码中)和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()
或者,您可以使用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')
答案 1 :(得分:0)
您可以直接使用plotting functions of SymPy:
for key in dictionary:
print(key)
if key in answer_string:
pattern = re.compile(r"[^ ]*"+key+r"[^ ]*", re.IGNORECASE)
answer_string = pattern.sub("<a href=\"" + dictionary.get(key) + "\">" + key + "</a>", answer_string)
大多数情况下,它使用matplotlib作为后端。