Python SciPy:集成期间solve_ivp的状态
我正在使用Python SciPy:集成期间solve_ivp的状态,python,scipy,Python,Scipy,我正在使用scipy.integrate.solve\u ivp在Python中运行一个长的ODE集成。在例程运行时,是否可以访问集成状态或检查例程处于哪个集成步骤?我的集成所花费的时间比预期的要长,我想知道积分器是停留在某个步骤上,还是单个步骤所花费的时间真的很长 为今后的任务;如果我将与solve_ivp的集成拆分为子间隔,以打印中间的状态消息,这会影响某些解算器的步长自适应性吗 谢谢你的反馈 有一个GitHub pull请求添加一个详细选项来解决_ivp,但这还没有完成。您可以通过修改sc
scipy.integrate.solve\u ivp
在Python中运行一个长的ODE集成。在例程运行时,是否可以访问集成状态或检查例程处于哪个集成步骤?我的集成所花费的时间比预期的要长,我想知道积分器是停留在某个步骤上,还是单个步骤所花费的时间真的很长
为今后的任务;如果我将与solve_ivp
的集成拆分为子间隔,以打印中间的状态消息,这会影响某些解算器的步长自适应性吗
谢谢你的反馈 有一个GitHub pull请求添加一个详细选项来解决_ivp,但这还没有完成。您可以通过修改scipy的solve_ivp函数(应该很容易)自己实现它,或者只打印解算器给ODE函数的时间t。我就是这么做的。若你们的系统不是太小,那个么你们不会因为打印而浪费太多时间
按照您建议的方式拆分集成可能会起作用,但是,如果每隔几个时间步拆分一次,则在解算器重新启动每个分幅时,您将损失时间。这种影响与隐式算法有关,因为它们在每次启动时都会重新计算系统的雅可比矩阵。有一个GitHub pull请求添加详细选项来解决_ivp,但这尚未完成。您可以通过修改scipy的solve_ivp函数(应该很容易)自己实现它,或者只打印解算器给ODE函数的时间t。我就是这么做的。若你们的系统不是太小,那个么你们不会因为打印而浪费太多时间 按照您建议的方式拆分集成可能会起作用,但是,如果每隔几个时间步拆分一次,则在解算器重新启动每个分幅时,您将损失时间。这种影响与隐式算法有关,因为它们会在每次启动时重新计算系统的雅可比矩阵