如何将雅可比行列式提供给 scikits.odes.odeint
How to feed Jacobian to scikits.odes.odeint
我正在使用 scikits.odes.odeint
求解一个相对较大的 ODE 系统(40 个变量,100 个动力学参数)。我想通过向求解器提供雅可比来加快这个过程。但是,我不知道如何为此目的最好地定义 jacobian 并将其提供给求解器。
这是一个非常基本的符号 Jacobion,但它适用于大多数 ODE 求解器。
import sympy as sp
def rhs(t, y):
return [y[0],2*y[1]]
def jacob(t, y):
ydot = rhs(t,y)
J = sp.Matrix(ydot).jacobian(y)
J_func = sp.lambdify((t, y) , J)
return J_func
有更深入的指南here。
我正在使用 scikits.odes.odeint
求解一个相对较大的 ODE 系统(40 个变量,100 个动力学参数)。我想通过向求解器提供雅可比来加快这个过程。但是,我不知道如何为此目的最好地定义 jacobian 并将其提供给求解器。
这是一个非常基本的符号 Jacobion,但它适用于大多数 ODE 求解器。
import sympy as sp
def rhs(t, y):
return [y[0],2*y[1]]
def jacob(t, y):
ydot = rhs(t,y)
J = sp.Matrix(ydot).jacobian(y)
J_func = sp.lambdify((t, y) , J)
return J_func
有更深入的指南here。