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