我正试图用等高线绘制一个复杂的双变量函数。我在contour函数调用中收到一个“TypeError:只有size-1数组才能转换为Python标量”错误
'''
from matplotlib.pyplot import (contour,plot,grid,xlabel,ylabel,show,legend,subplot,figure,suptitle)
import math
import numpy as np
from scipy.integrate import odeint
from sympy.solvers import solveset
from sympy import Symbol
V = 3.78 #m^3
CA0 = 5000.0 #mol/m3
CB0 = 0.0
Keq0 = 9.0 #at 350K
Ea = 15000.0*4.184 #j/mol
R = 8.314 #j/mol/K
DHrx = -25000.0*4.184 #j/mol
T1 = 350.0 #K
kT1 = .4/V/CA0/(.6**2-(.4**2/Keq0))
dT = 1.0
dX = 1/310
T,X = np.meshgrid(np.arange(290,600,dT),np.arange(0,1,dX))
contour(
T,X,
X-V*kT1*math.exp((Ea/R)*((1/T1)-(1/T)))*((1-X)**2-(X**2/(Keq0*math.exp(DHrx/R*((1/T1)-(1/T)))))),[0]
)
show()
'''
任何指点都将不胜感激目标是绘制T,X等于零的函数
您需要在数组上使用
np.exp
,而不是math.exp
np.exp
取数组中每个元素的指数,而math.exp
仅对单个数字有效,例如int
或float
相关问题 更多 >
编程相关推荐