我已经学会了如何使用SymPy创建方程,但我不知道如何绘制两个值之间的关系。每当我写plt.plot(Rho , T)
时,我总是得到一个TypeError: Cannot convert expression to float
。到目前为止,我有一个这样的代码:
import matplotlib as plt
from sympy import init_session
init_session()
rho, X, Y, Z, T_9, T, T_8, m, n, Gamma = symbols('rho X Y Z T_9 T T_8 m n Gamma')
q_pp = (2.4 * 10**(4) * rho * X**2 / T_9**(2/3)) * exp((-3.380/T_9**(1/3)))
q_CNO = (4.4 * 10**(25) * rho * X* Z/ T_9**(2/3)) * exp((-15.228/T_9**(1/3)))
q_min = q_pp + q_CNO
simplify(q_min)
T_9 = T / (10**9)
Rho = (10**3)*(T_9**(1/3) / (24000 * X * exp(15.228/T_9**(1/3)) + (4.4*10**25) * Z * exp(3.38/T_9**(1/3)))) * exp(-18.608/ T_9**(1/3))
simplify(Rho)
plot_implicit(T, Rho)
更新:我使用SymPy绘图来获得新的错误,我更新了代码以反映我目前拥有的TypeError: object of type 'Mul' has no len()
您需要为自变量提供值。例如,要绘制像y = x**2 - 1
这样的表达式,我会这样做:
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 20) # Provide the range of the independent variable.
y = x**2 - 1 # Compute the dependent variable.
plt.plot(x, y)
在您的情况下,我想您需要提供T
的值,而且看起来还有其他一些未知因素。看看这个问题,答案显示了一个SymPy绘图示例。