问题标签 [odeint]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
148 浏览

c++ - 如何使用 odeint 的标签系统为各种步进器类型做特定的工作

我有一个模板类,可以使用 odeint 的步进器类执行一些工作,我希望它是每个步进器类别的特定(不同)工作。

问题是我收到以下编译器错误:

error C2244: 'foo<Stepper>::do_specific_work' : unable to match function definition to an existing declaration`

我尝试以与实施方法相同的方式integrate_adaptive来执行此操作,与我的情况不同的是,这些是独立函数(不是任何类的成员)并且不需要前向声明。如何修改代码以实现我所需要的?提前致谢!

0 投票
1 回答
463 浏览

c++ - boost odeint 有越级算法吗?

我正在使用 boost::odeint,到目前为止,我使用的是 runge_kutta4 步进器。现在我想切换到跳跃方法,例如我的迭代步骤应该如下所示:

所以我需要一个多步骤的方法,但我对文档有点迷茫,想得到一些帮助。

0 投票
0 回答
330 浏览

c++ - 具有 OdeInt 的刚性系统,变化中具有常数

我有一个僵硬的系统,我想将它与Integrate_adaptive 和来自(boost::) odeint 的受控rosenbrock4 步进器集成。

在大多数情况下,我可以预测一个好的第一步,但对于某些情况,它“肯定”会失败

我认为问题在于一个变化确实取决于一个常数:

对州的依赖确实出现在雅可比行列中,C 没有。但是C可以产生重大影响。我有办法让步进器知道 C 的影响吗?

为了澄清我得到的错误是:

另一种猜测是,这是由 States[0] 和其他状态的不同大小引起的

我试着举一个结构性的例子,完整的例子会很大,所有因素都设置为一个:

C在某些情况下可能比来自states

雅可比行列式相应地设置。

0 投票
1 回答
555 浏览

c++ - boost odeint 包示例代码中的错误 C2309

我一直在使用 VC++ 2010 Express,以及 Windows SDK 7.1 附带的 64 位编译器。我的 boost 包版本是 boost_1_55_0。

可以在此处找到 boost 包 odeint 的示例代码,如下所示:

但是,这不会编译。错误信息如下:

0 投票
1 回答
280 浏览

c++ - 为什么在使用 icc 14.01 和 gcc 4.8 时 std::bind 会出错?

我在编译这段简短的代码时遇到问题:

更新:我有一个更简单的代码片段,现在产生相同的错误,旧的仍然可以在帖子末尾看到。

我有一台可以正常编译的计算机:

在这台电脑上

工作。

在另一台计算机上

有效,但是

导致以下错误消息:

旧代码:

错误信息:

我觉得这不是 boost::odeint 特有的,而是在使用 std::bind、std::function 等时出现的一个奇怪的编译器问题(这是真的,请参阅帖子顶部的新代码)

0 投票
1 回答
1333 浏览

c++ - 使用 C++ Boost odeint 库的二阶微分方程

使用 boost c++ odeint 库,是否可以求解如下定义的二阶微分方程?

其中 x 的初始值是一个向量或数组,由 N 个均匀生成的随机数组成,介于 0 到 2*pi 之间。我想使用 odeint 的 runge_kutta 步进器整合上述方程?

我可以通过写上面的eqn来解决它。在两个一阶微分方程中,但在那种情况下,如何编写或修改 odeint 步进器?

0 投票
1 回答
669 浏览

c++ - 使用 boost odeint 的 DDE

是否可以使用 C++ Boost - odeint 库求解时间延迟微分方程?对于以下等式的示例:

其中 tau 是时间延迟的常数值。

0 投票
1 回答
241 浏览

c++ - 带有 odeint 的简单二维系统(使用数组)无法编译

我在 Mint 12 上运行 g++ 4.7,boost 1.55。我正在尝试使用 odeint 解决一个简单的 ode 二维系统 - 遵循此处的 1d 示例:1d。1d 示例在答案的原始版本和修改版本中都可以正常编译。现在,如果我想要一个 2d 系统并且我使用 double[2] 东西不起作用:

错误消息是一团糟,但以:

/usr/include/boost/numeric/odeint/algebra/range_algebra.hpp:129:47:错误:函数返回一个数组

数组 double[2] 有问题吗?我应该如何解决它?也许使用向量?顺便说一句,我尝试同时使用

正如 1d 答案中所建议的那样,但无济于事。我还应该提到,在具有较旧 boost(不记得哪个版本)的旧机器上,所有编译都没有问题。感谢您的任何建议!

0 投票
0 回答
133 浏览

python - 如何修改函数 scipy odeint 中的初始条件

当我尝试求解一个微分方程时,我发现初始条件与以前不同。初始条件是 : f(0)=0,f'(a)=0,与条件不同f(0)=0,f'(0)=b


函数 odeint 参数 y0 : array y 的初始条件(可以是向量)。(由 scipy.org 引用)


如何修改初始条件 y0?

0 投票
1 回答
666 浏览

c++11 - 使用 boost odeint 的精确多维积分

使用 boost odeint 以高精度计算多维积分的推荐方法是什么?以下代码将 f=x*y 从 -1 积分到 2,但相对于解析解的误差超过 1%(gcc 4.8.2,-std=c++0x):

印刷:

我应该在内部积分中使用更严格的停止条件还是有更快/更准确的方法来做到这一点?谢谢!