从 odeint scipy 函数返回导数向量

计算科学 Python 数值建模
2021-12-09 15:24:34

我有以下要在 scipy.integrate.odeint 中实现的功能

def numericSolver(rv_,t,alpha=1.,gamma=1.):
    BVal = B_f(alpha,gamma,t) #this function returns a vector
    BdotVal = Bdot_f(alpha,gamma,t) #this function returns a vector
    matDynamics = np.array([[0.,1.,float(BdotVal[2]),0.,0.,0.],
            [0.,0.,0.,float(BVal[2]),0,-float(BVal[1])],
            [0.,0.,0.,1,0.,0.],
            [0.,-float(BVal[2]),0.,0.,0.,float(BVal[0])],
            [0.,0.,0.,0.,0.,1.],
            [0.,float(BVal[1]),0.,-float(BVal[0]),0.,0.]])
    derivatives = matDynamics.dot(rv_) 
    return derivatives

为了实现此功能,我将 odeint 称为

solution = odeint(numericSolver,IC,t=t,args=(alpha,gamma))

其中IC是初始条件向量,t是感兴趣的时间向量,alphagamma是 的输入numericSolver

为了更清楚的解释,derivatives是解决方案,X˙, 到方程

X˙=MX,

在哪里MmatDynamicsrv_X.

有没有办法让 odeint 返回derivatives每个值的值t还是最好使用中返回的值手动计算导数值solution

0个回答
没有发现任何回复~