问题标签 [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 投票
3 回答
4440 浏览

python - 在 Python 中优化微分方程中的常数

好的,那么我将如何编写代码来优化微分方程中的常数 a 和 b,例如 dy/dt = a*y^2 + b,使用curve_fit?我将使用 odeint 来求解 ODE,然后使用 curve_fit 来优化 a 和 b。如果您能就这种情况提供意见,我将不胜感激!

0 投票
2 回答
446 浏览

c++ - Boost OdeInt 中是否有 lsode 模拟?

里面有boost 1.53 和 OdeInt。它有一系列数值 ode 求解器。但是我想知道其中是否有lsode模拟 - 对于您已保证分析解决方案的情况?

0 投票
1 回答
922 浏览

python - 在第一个错误时停止 scipy odeint

编辑:这个问题是由于一个错误,在 Scipy 0.15 中修复

在开发和测试代码时,我可能会犯一个简单的错误,例如 NameError。当我使用 scipy.integrate.odeint 时,odeint 将打印错误消息,但会在我请求的任何时间步长内继续集成,因此我会收到许多相同的错误消息。我认为它具有这种行为,以便在发生算术错误(例如,除以零)时可以继续,但这对于编程错误是无益的行为。

有没有办法让 scipy 在第一条错误消息后停止?如果我能让它停止错误而不是算术异常,那将是最好的。

0 投票
1 回答
213 浏览

c++ - odeint 和状态变量的临时更改

我刚刚使用 odeint C++ 库从离散 PDE 中实现了一组耦合 ODE 的数值积分。它运行良好,速度快如闪电,但有一个问题:

我的 ODE 系统具有所谓的吸收边界条件:我的状态变量 n 的时间导数,它是 N 个双倍的向量(人口密度)在系统函数中计算,但在此之前(或之后时间积分)我想设置:

但是,这当然是行不通的,因为系统函数中的状态变量被声明为const,并且看起来除了通过干预库之外无法更改...有什么办法解决这个问题吗?

我应该提到将dndt[N]and设置dndt[N-1]为零可能看起来像一个解决方案,但它并没有真正帮助,因为它违背了吸收边界条件的概念(n[N]然后n[N-1]总是具有它们在的值t=0,而不是n[N-2]在任何点的值及时),所以我真的更喜欢改变 n。

谢谢你的帮助!

问候,

迈克尔

0 投票
1 回答
730 浏览

boost - Set a maximum step size in odeint

I create a boost::odeint stepper as follows:

There will be times during the integration of my system where it "lies low" for a while. During this periods it seems as though the integrator sometimes increases its step size to the point where it then jumps over areas of interest.

Is there a way to limit the integrator's step size so it never exceeds a given maximum?

0 投票
1 回答
1583 浏览

boost - 使用 boost 和 python 在 GPU 上集成 ODE

不久前,我在这里发布了一个关于我正在尝试使用 pycuda 构建的模型,该模型解决了大约 9000 个耦合 ODE。然而,我的模型太慢了,一位 SO 成员建议从主机到 GPU 的内存传输可能是罪魁祸首。

现在 cuda 仅用于计算我正在处理的 9000 个物种中的每一个的变化率。由于我将一个数组从主机传递到 GPU 以执行此计算并从 GPU 返回一个数组以集成到主机上,因此我可以看到这会如何减慢速度。

boost会解决我的问题吗?根据我的阅读,boost 允许 c++ 和 python 之间的互操作性。它还包括我读过的 c++ odeint ,与推力合作允许在 GPU 上快速减少和集成。我的理解正确吗?

谢谢你,卡斯滕

0 投票
1 回答
1575 浏览

python - NumPy odeint output extra variables

What is the easiest way to save intermediate variables during simulation with odeint in Numpy?

For example:

What would be the easiest way to save the data stored in x during simulation? Ideally at the points specified in the t argument passed to odeint.

0 投票
1 回答
2750 浏览

python - 为什么在 SciPy 中使用Integrate.odeint 时不调用 Dfun(gradient)?

谁能提供一个为integrate.odeintSciPy 中的函数提供雅可比行列式的示例?我尝试从 SciPy 教程odeint 示例中运行此代码,但似乎Dfun()从未调用过(雅可比函数)。

0 投票
2 回答
742 浏览

c++ - odeint 的两点边界

我正在尝试用 odeint 解决两点边界问题。我的方程有

当我的边界条件y(x_1) = y_1 , y'(x_2) = y_2y(x_1) = y_1 , y(x_2) = y_2有人知道用 odeint 或其他科学图书馆处理此类问题的方法吗?

0 投票
1 回答
361 浏览

c++ - 如何在 boost::odeint 中控制 bulirsch_stoer 方法的顺序?

我正在使用boost::numeric::odeintODE 求解器并对它们有疑问。说明书上说bulirsch_stoer是一个带步长和顺序控制的步进器。此外,订单是用户可以更改的变量。我查看了头文件,但没有得到一个想法?有没有人有任何解决方案?