我的问题是,是否有办法在函数中取一些值而不是 整合在odeint中。
例如:如果我有一个导数dy(x)/dt = A*x+ln(x)
,并且在得到这个等式之前,我计算了一个像A = B*D
这样的中间等式的A通过。我希望在此过程中获取A的价值。
更详细(仅举例):
def func(y,t)
K = y[0]
B = 3
A = cos(t**2) + B
dy/dt = A*t+ln(t)
return [dy/dt]
我可以使用A的函数值吗?
Josh Karpel的答案
代码就是这样:
def Reaction(state,t):
# Integrate Results
p = state[0]
T = state[1]
# function determine enthalpy of system
f1(T,p) = enthalpy
# function determine specific volume of system
f2(T,p) = specific volume
# function determine heat release by reactions
f3(T,p,t) = heat release by reactions
#Derivatives
dp/dt = f(T,p,enthalpy,specific volume,heat release by reactions)
dT/dt = f(T,p,enthalpy,specific volume,heat release by reactions)
真正的代码比那更重要。但是,我想知道是否有一种方法可以将f1(enthalpy),f2(比容),f3(热释放)的值存储为odeint解决过程中的向量或元组,其大小与p和T.
答案 0 :(得分:0)
它并不完全清楚你想要什么,但听起来你需要将另一个值传递给你正在整合的功能。我能想到两个选择:
args
参数,该参数包含要传递给integrand函数的额外参数,然后可以使用签名y(t, A)
。A
已经设置了y(t, A)
。