问题标签 [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.
boost - boost::numeric::odeint 用于刚性系统,如果我们无法得到解析的雅可比矩阵怎么办?
我正在使用 boost::numeric::odeint rosenbrock4 积分器。问题是我无法得到一个分析的雅可比矩阵,有什么解决方案可以解决这个问题吗?
python - 如何在循环和绘图中设置一个 numpy 数组
我正在尝试修改 scipy 食谱中的代码
scipy 食谱解决了一些状态方程,然后打印它们:
scipy 食谱要求您运行程序并将打印的内容保存到文件中:
程序.py > 文件.dat
然后一个单独的绘图功能要求您从该文件加载数据
在绘图之前
我只想设置 t,x1,x2 和 plot
谁能告诉我该怎么做?
这就是我要修改的内容:
c++ - 如何使用 odeint 处理不连续性
我想知道使用 odeint 处理不连续性的最佳(计算效率高、代码美观)方法是什么。有没有示例代码?
我正在模拟类似反馈控制的电机,其角度由旋转编码器以数字方式测量。旋转编码器输出 y 可以像 y=floor(angle) 一样建模,其中角度是实数。
从概念上讲,我知道该怎么做。模拟过程中,我要找到角度与整数值相交的时间,然后回到上一步,积分到相交的那个时间,根据不连续性调整状态,y,从同一点重新开始积分时间。
经过一番谷歌搜索,我找到了下面的代码。但我没有看到库中提供的函数 make_const_step_time_range。
在http://meetingcpp.com/tl_files/mcpp/slides/12/odeint.pdf第 18 页:
我正在使用 boost_1_54_0。
odeint - odeint:如何在集成时记录中间结果?
我想知道如何在 odeint 集成期间记录状态以外的值。我有一个卫星动力学的模拟,它被描述为总角动量 L 和内轮动量 h 的微分方程。我的模拟运行正常。但我不仅需要记录状态变量,还需要记录其他一些值,例如外部扭矩 N 和角速度 omega,即 Jinv*L,其中 Jinv 是一个 3x3 常数卫星惯性矩阵。从某种意义上说,我的模拟器的目的不是计算 L 和 h,而是生成“其他”变量的时间历史。
为了展示我在做什么,下面是我当前代码的稍微简化的版本。
python - 使用 scipy.integrate.odeint 求解 ODE 系统时结合真实数据
我正在尝试构建一个由 ODE 系统表示并使用 scipy 的 odeint 函数解决的加热系统的简单模型。
我想在这个模型中加入“真实”数据,例如外部温度(在下面模拟为正弦波)。下面的代码显示了我当前的解决方案/hack,它使用一个名为 FindVal 的函数将真实数据插入到由 odeint 评估的时间戳。
这非常慢,所以我正在寻找有关如何以更好的方式完成此操作的建议。
这是代码...
c++ - odeint 简单一维 ode 示例无法编译
我尝试在 Debian Squeeze g++4.4 上的 boost_1_54_0 中运行odeint 示例
Lorenz 系统工作正常,但简单的一维颂歌:
不编译。有 192 行错误以以下结尾:
有什么问题?
c++ - 使用导数和雅可比提升 odeint 类
我打算在 MCMC 例程中使用 Boost odeint 库来估计 ODE 模型中的参数。由于这些 ODE 可能很僵硬,我需要能够将雅可比传递到具有导数的求解器中。我想创建一个将参数和初始值作为私有成员的类,然后将导数、雅可比和更改参数的方法作为公共方法。我试图修改 odeint 网站上的僵硬示例以使用一个包含两者的类,但是在编译时收到错误“错误:没有匹配函数用于调用 'Fitzhugh::deriv()'。我不是一个经验丰富的 C++ 程序员,所以这可能是一个概念错误。这是代码。
这是完整的输出
python - 使用带有 scipy odeint 的 numpy 数组
我正在使用 scipy 来求解一个常微分方程组。为简单起见,将我的代码设为:
但现在我想为常数“a”的几个值解决这个系统。因此,例如,我不想只有一个 = -2.0,而是:
并针对 a 的每个值求解系统。有没有办法做到这一点而不必遍历数组的每个元素?我可以一次性完成吗?