我正在寻找可在Linux(Fedora)系统上使用的C++矩阵库。目的是为计算神经科学实现continuous attractor neural networks等。我已经开始使用Eigen。但是,我意识到我也需要微分方程求解器来完成我的任务,并遇到了Odeint(最近似乎已被Boost接受)。 Odeint与MTL4一起作为this page details使用。我现在想知道是否应该使用MTL4而不是Eigen重写我的代码,以便能够正确使用odeint。

我已经看过谷歌和stackoverflow本身,但找不到比较

最佳答案

我很确定Eigen也可以与odeint一起使用。因此,要更改为MTL,完全取决于您。

odeint http://headmyshoulder.github.com/odeint-v2/doc/boost_numeric_odeint/odeint_in_detail/state_types__algebras_and_operations.html的文档显示了如何使任意类型适应odeint。我认为Eigen支持表达式模板(因此您可以编写 vector 或矩阵表达式,例如M1=a*M2+b*M3;),以便可以将odeint与vector_space_algebradefault_operations一起使用。您要做的就是调整odeint的大小调整机制。查看odeint中的MTL绑定(bind),以了解其工作原理。这很简单。

关于c++ - 如果还需要使用ODE,是否应该从Eigen切换到MTL4?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14207698/

10-12 17:24