问题标签 [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.
c++ - 如何使用 odeint 的标签系统为各种步进器类型做特定的工作
我有一个模板类,可以使用 odeint 的步进器类执行一些工作,我希望它是每个步进器类别的特定(不同)工作。
问题是我收到以下编译器错误:
error C2244: 'foo<Stepper>::do_specific_work' : unable to match function definition to an existing declaration
`
我尝试以与实施方法相同的方式integrate_adaptive
来执行此操作,与我的情况不同的是,这些是独立函数(不是任何类的成员)并且不需要前向声明。如何修改代码以实现我所需要的?提前致谢!
c++ - boost odeint 有越级算法吗?
我正在使用 boost::odeint,到目前为止,我使用的是 runge_kutta4 步进器。现在我想切换到跳跃方法,例如我的迭代步骤应该如下所示:
所以我需要一个多步骤的方法,但我对文档有点迷茫,想得到一些帮助。
c++ - 具有 OdeInt 的刚性系统,变化中具有常数
我有一个僵硬的系统,我想将它与Integrate_adaptive 和来自(boost::) odeint 的受控rosenbrock4 步进器集成。
在大多数情况下,我可以预测一个好的第一步,但对于某些情况,它“肯定”会失败
我认为问题在于一个变化确实取决于一个常数:
对州的依赖确实出现在雅可比行列中,C 没有。但是C可以产生重大影响。我有办法让步进器知道 C 的影响吗?
为了澄清我得到的错误是:
另一种猜测是,这是由 States[0] 和其他状态的不同大小引起的
我试着举一个结构性的例子,完整的例子会很大,所有因素都设置为一个:
C
在某些情况下可能比来自states
雅可比行列式相应地设置。
c++ - boost odeint 包示例代码中的错误 C2309
我一直在使用 VC++ 2010 Express,以及 Windows SDK 7.1 附带的 64 位编译器。我的 boost 包版本是 boost_1_55_0。
可以在此处找到 boost 包 odeint 的示例代码,如下所示:
但是,这不会编译。错误信息如下:
c++ - 为什么在使用 icc 14.01 和 gcc 4.8 时 std::bind 会出错?
我在编译这段简短的代码时遇到问题:
更新:我有一个更简单的代码片段,现在产生相同的错误,旧的仍然可以在帖子末尾看到。
我有一台可以正常编译的计算机:
在这台电脑上
和
工作。
在另一台计算机上
有效,但是
导致以下错误消息:
旧代码:
错误信息:
我觉得这不是 boost::odeint 特有的,而是在使用 std::bind、std::function 等时出现的一个奇怪的编译器问题(这是真的,请参阅帖子顶部的新代码)
c++ - 使用 C++ Boost odeint 库的二阶微分方程
使用 boost c++ odeint 库,是否可以求解如下定义的二阶微分方程?
其中 x 的初始值是一个向量或数组,由 N 个均匀生成的随机数组成,介于 0 到 2*pi 之间。我想使用 odeint 的 runge_kutta 步进器整合上述方程?
我可以通过写上面的eqn来解决它。在两个一阶微分方程中,但在那种情况下,如何编写或修改 odeint 步进器?
c++ - 使用 boost odeint 的 DDE
是否可以使用 C++ Boost - odeint 库求解时间延迟微分方程?对于以下等式的示例:
其中 tau 是时间延迟的常数值。
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(不记得哪个版本)的旧机器上,所有编译都没有问题。感谢您的任何建议!
python - 如何修改函数 scipy odeint 中的初始条件
当我尝试求解一个微分方程时,我发现初始条件与以前不同。初始条件是 : f(0)=0,f'(a)=0
,与条件不同f(0)=0,f'(0)=b
函数 odeint 参数
y0 : array
y 的初始条件(可以是向量)。(由 scipy.org 引用)
如何修改初始条件 y0?
c++11 - 使用 boost odeint 的精确多维积分
使用 boost odeint 以高精度计算多维积分的推荐方法是什么?以下代码将 f=x*y 从 -1 积分到 2,但相对于解析解的误差超过 1%(gcc 4.8.2,-std=c++0x):
印刷:
我应该在内部积分中使用更严格的停止条件还是有更快/更准确的方法来做到这一点?谢谢!