小编ger*_*nnp的帖子

结合使用numba.jit和scipy.integrate.ode

使用numba.jit加快了右手端计算odeintscipy.integrate正常工作:

from scipy.integrate import ode, odeint
from numba import jit

@jit
def rhs(t, X):
    return 1

X = odeint(rhs, 0, np.linspace(0, 1, 11))
Run Code Online (Sandbox Code Playgroud)

但是这样使用integrate.ode

solver = ode(rhs)
solver.set_initial_value(0, 0)
while solver.successful() and solver.t < 1:
    solver.integrate(solver.t + 0.1)
Run Code Online (Sandbox Code Playgroud)

装饰器产生以下错误@jit

capi_return is NULL
Call-back cb_f_in_dvode__user__routines failed.
Traceback (most recent call last):
  File "sandbox/numba_cubic.py", line 15, in <module>
    solver.integrate(solver.t + 0.1)
  File "/home/pgermann/Software/anaconda3/lib/python3.4/site-packages/scipy/integrate/_ode.py", line 393, in integrate
    self.f_params, self.jac_params)
  File "/home/pgermann/Software/anaconda3/lib/python3.4/site-packages/scipy/integrate/_ode.py", line …
Run Code Online (Sandbox Code Playgroud)

python integrate scipy ode odeint

6
推荐指数
1
解决办法
1392
查看次数

标签 统计

integrate ×1

ode ×1

odeint ×1

python ×1

scipy ×1