jjzjj

python - 通过 scipy.integrate.ode 使用自适应步长

scipy.integrate.ode的(简要)文档说两种方法(dopri5和dop853)具有步长控制和密集输出.查看示例和代码本身,我只能看到一种从集成器获取输出的非常简单的方法。即,看起来您只是将积分器向前移动了某个固定的dt,获取当时的函数值,然后重复。我的问题有相当多变的时间尺度,所以我想在需要评估的任何时间步获取值以达到所需的容差。也就是说,在早期,事情正在缓慢变化,因此输出时间步长可能很大。但随着事情变得有趣,输出时间步长必须更小。我实际上并不想要等间隔的密集输出,我只想要自适应函数使用的时间步长。编辑:密集输出一个相关的概念(几乎相反)是“密集输出”,即所采取的步数与步

python - 如何将 ODE 系统与 FEM 系统相结合

我有一个动态模型设置为ODE的(刚性)系统。我目前用CVODE(来自Assimulopython包中的SUNDIALS包)解决了这个问题,一切都很好。我现在想为问题添加一个新的3D散热器(具有与温度相关的热参数)。我的想法是使用现有的FEM或FVM框架为我提供一个接口(interface),让我可以轻松地提供(t,y)将3Dblock转换为例程,并取回残差y'。原理是使用FEM系统中的方程,而不是求解器。CVODE可以利用稀疏性,但预计组合系统的求解速度比FEM系统自身求解的速度要慢,专为此类问题量身定制。#pseudocodeofaresidualsfunctionforCVODEd