C ++ odeint:输出变量的列随机返回为NaN

时间:2015-05-28 14:17:25

标签: c++ matlab differential-equations numerical-integration odeint

我使用C ++和odeint来求解一组微分方程。我在Mac OS X上使用mex和g ++在Matlab中编译代码。有一段时间一切都很完美,但现在出现了一些奇怪的事情:

我可以运行相同的模拟(使用相同的参数)两次,在一次运行中结果很好,而在另一个输出中,整个列(或多列)是NaN(这也影响其他输出暗示整合过程中出现问题。)

我尝试在各种求解器之间切换。现在我使用具有固定步长的runge_kutta_fehlberg78。 (NaN输出的一种可能性是自适应求解器的初始步长太大。)

这可能是什么原因?特别是随机性让我很好奇。

编辑:我开始怀疑这个问题与Matlab有关。我编译了一个没有Matlab接口的版本,Xcode作为普通的可执行文件,到目前为止我还没有NaN结果的问题。很难说这个问题是否真的得到解决,我不明白为什么会解决这个问题。

0 个答案:

没有答案