如何将雅可比行列式提供给 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