matplotlib 用症状方程作图

8ljdwjyq  于 2023-03-09  发布在  其他
关注(0)|答案(2)|浏览(133)

创建症状方程的最佳方法是什么,比如求导数,然后绘制方程的结果?
我有一个符号方程,但不知道如何创建一个用于绘图的数组。下面是我的代码:

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,因此这相当简单。

pu3pd22g

pu3pd22g1#

您可以使用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()

asmeurerMaxNoe建议的改进)

或者,您可以使用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')
4nkexdtk

4nkexdtk2#

使用SymPy

您可以直接使用plotting functions of 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)

大多数时候它使用matplotlib作为后端。

相关问题