我有这三个 ODE 需要求解。这是我正在使用的代码。
当我编译时,我收到以下错误消息:
类型错误:model() 缺少 2 个必需的位置参数:“T”和“t”
我不知道发生了什么,因为模型函数中提到了 T 和 t。
有人可以帮我解决这个问题吗?
import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt
v0 = 10.0 #L/min, vazão volumétrica de entrada (CSTR)
V = 100.0 #L, volume do reator (CSTR)
k = 0.14*10**(-5) #L/mol.min, constante de velocidade da reação (aprox: independente da temperatura)
Na0 = 500.0 #mol, concentração de A na entrada do reator (CSTR)
DeltaH_r = -5.9*10**(-5) #cal/mol
CpA = 40.0 #cal/mol.K
CpB = 18.0 #cal/mol.K
Tent = 50.0+273.15 #K, temperatura na entrada no reator
def model(Na, Nb, T, t):
dNadt = (Na0 / V) * v0 - (Na / V) * v0 + (- k * (Na / V)**2) * V
dNbdt = -(Nb / V) * v0 + 0.5 * (k * (Na / V)**2) * V
dTempdt = ((-DeltaH_r) * (- k * (Na / V) * V) - Cp_A * V * v0 * (T - Tent)) / (Na * CpA + Nb *CpB)
return [dNadt, dNbdt, dTempdt]
t = np.linspace(0,20)
Chutes = [500.0, 0.1, 300.0] #Chute inicial
Y = odeint(model, Chutes, t)
最佳答案
我从未使用过它,但我检查了文档中的示例 scipy.integrate.odeint我认为您必须添加 args=(val1, val2)
以及将分配给 T
和 t
Y = odeint(model, Chutes, t, args=(val1, val2))
所以最终它将使用 model
和
Na = Chutes
Nb = t
T = val1
t = val2
关于python - 类型错误 : model() missing 2 required positional arguments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56917608/