MAN*_*624 11 python symbols matplotlib sympy python-3.x
创建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()
Run Code Online (Sandbox Code Playgroud)
在我的情况下,我只计算了该方程的导数,现在我想绘制速度x,所以这相当简单.
Fer*_*dox 17
您可以使用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()
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用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')
Run Code Online (Sandbox Code Playgroud)
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)
Run Code Online (Sandbox Code Playgroud)
大多数时候它使用 matplotlib 作为后端。
| 归档时间: |
|
| 查看次数: |
12111 次 |
| 最近记录: |