python - 类型错误 : model() missing 2 required positional arguments

标签 python arguments odeint

我有这三个 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) 以及将分配给 Tt

的值
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/

相关文章:

python - 将带有反斜杠后跟数字的字符串转换为路径

python - wx.grid.Grid 不加载图像

javascript - 检查参数

c# - 如何在 C# 中使用参数执行 Java 应用程序

c++ - 与 boost odeint 集成期间的析构函数调用

python - websocket-client 的 send() 尝试了多少次?

python - 使用日期索引从 pandas DataFrame 计算 3 个月的滚动中位数

c++ - 构造函数中的默认参数

c++ - 无法获得 Matlab 生成的相同结果

c++ - 使用 boost::numeric::odeint 积分非线性函数 f'(x, y, z) = a + b*I