我正在使用 odeint 来模拟一个系统,其中有几个变量不应小于零。
是否有适当的方法将 odeint 中的变量绑定到特定范围?
在odeint中不存在这种可能性。我想没有算法可以做到这一点。您必须以某种方式对 ODE 中的界限进行编码。
如果您只想在系统演化过程中找到界限,请使用类似的循环
while( t < tmax )
{
stepper.do_step( ode , x , t , dt );
t += dt;
if( check_bound( x , t ) ) break;
}
两个侧节点,也许这就是您的问题的情况:
对于具有守恒定律的 ODE 有一些特殊的算法,其中该算法确保守恒定律成立,例如参见辛求解器。
如果您的边界已经在 ODE 中以某种方式进行编码,并且无论如何都达到了边界,则必须缩短求解器的步长。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)