Python >> Tutoriel Python >  >> Python Tag >> SciPy

Passer les arguments pour solve_ivp (nouvelle API SciPy ODE)

Relativement récemment, une question similaire est apparue sur le github de scipy. Leur solution est d'utiliser lambda :

solve_ivp(fun=lambda t, y: fun(t, y, *args), ...)

Et ils soutiennent qu'il y a déjà suffisamment de frais généraux pour que cela n'ait pas d'importance.


Il ne semble pas que la nouvelle fonction ait un args paramètre. Comme solution de contournement, vous pouvez créer un wrapper comme

def wrapper(t, y):
    orig_func(t,y,hardcoded_args)

et transmettez-le.


Récemment, l'option 'args' a été ajoutée à solve_ivp, voir ici :https://github.com/scipy/scipy/issues/8352#issuecomment-535689344