问题标签 [ode]

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 投票
1 回答
891 浏览

c++ - 如果我还需要使用 ODE,是否应该从 Eigen 切换到 MTL4?

我正在寻找可在 Linux (Fedora) 系统上使用的 C++ 矩阵库。目的是为计算神经科学实现连续吸引子神经网络等。我已经开始使用Eigen了。然而,我意识到我的任务也需要微分方程求解器并遇到了Odeint(最近似乎已被 boost 接受)。Odeint 与 MTL4 一起使用作为此页面的详细信息。我现在想知道是否应该使用 MTL4 而不是 Eigen 重写我的代码,以便能够正确使用 odeint。

我查看了 google 和 stackoverflow 本身,但没有找到比较

0 投票
1 回答
12982 浏览

matlab - 如何求解具有时间相关参数的常微分方程组

如何解决常微分方程系统..初始值问题....参数取决于时间或自变量?说出我的方程式

其中a(t)是一个向量,b(t) =c*a(t);其中 a 和 b 的值随时间变化,而不是以单调方式和每个时间步长变化。我试图用这篇文章解决这个问题......但是当我应用相同的原理时......我收到了错误消息

“使用 griddedInterpolant 出错点坐标未按严格单调顺序排序。”

有人可以帮我吗?

0 投票
1 回答
2251 浏览

python - python中具有无限初始条件的ODE

我有一个二阶微分方程,我想在 python 中求解它。问题是对于其中一个变量,我没有初始条件,0而只有无穷大的值。谁能告诉我应该提供哪些参数scipy.integrate.odeint?能解决吗?

方程: 在此处输入图像描述

需要根据时间找到 Theta。它的一阶导数在 处等于 0 t=0。theta 是未知的,t=0但它会在足够长的时间变为零。其余的都是已知的。作为一个近似值I可以设置为零,从而消除二阶导数,这应该会使问题更容易。

0 投票
1 回答
339 浏览

matlab - ode45 时间步短不工作

我正在使用 ode45,但我不知道在这种情况下该怎么做。我有一个微分方程,其中我的参数随时间变化非常快。理想情况下,我想选择 tspan 为 0:epsilon:10*epsilon ,其中考虑到我的 DE 因素中的任何内容,epsilon 的顺序很小。但是,这不起作用,MATLAB 只是给了我一个情节,其中我的初始条件没有任何变化。

我做了明显的事情来修复它,如下所示。假设我有 xdot(t)=10^9*x(t)。我将其重写为 xdot(t)=x(t) 并将我的时间轴标记为纳秒而不是秒。

只是好奇MATLAB是否可以自己做到这一点。

0 投票
1 回答
311 浏览

performance - 每次迭代中涉及 ODE 求解器的 Matlab 代码向量化

我想编写一个快速的 MATLAB 代码,我需要编写一个 for 循环,并且每次都需要求解一个常微分方程。有没有办法对代码进行矢量化?以下是部分代码:

在哪里

0 投票
2 回答
3752 浏览

matlab - 如何在 Matlab 中求解常微分方程(ODE)系统

我必须求解以下形式的常微分方程组:

其中x和y是我需要找出的变量,s是自变量;其余的都是常数。到目前为止,我试图用 ode45 解决这个问题,但没有成功:

其中@yprime 具有方程组。我收到以下错误消息:

YPRIME 返回一个长度为 0 的向量,但初始条件向量的长度为 2。YPRIME 返回的向量和初始条件向量必须具有相同数量的元素。

有任何想法吗?谢谢

0 投票
1 回答
1106 浏览

python - 使用完整矩阵模拟 scipy 中的 ode(对象对于所需数组而言太深)

我在 am*m 矩阵 S 中有一个 diff eqs 系统。 S[i,j] 是一个特定的物种浓度,受 S[i-1,j] 和 S[i,j-1] 的影响

我可以在每个步骤中获取每个条目的 dx/dt(由 update_matrix 返回),但随后我需要将其整合以更新我的初始浓度(x 与 x_counts 相同)。但是 scipy 的Integrate.odeint 不接受矩阵作为输入(或返回值并引发对象太深错误。

有什么办法可以调整它以使用矩阵上的积分器?我提供了一段代码:diffeq 为每个条目返回 dx/dt。update_matrix 返回矩阵 B,其中 B[ij]=dx[i,j]/dt

0 投票
1 回答
1709 浏览

matlab - 通过 Crank-Nicolson 实现 Fitzhugh-Nagumo 模型

对于一个问题,我需要通过 Crank-Nicolson 方案实现具有空间扩散的 Fitzhugh-Nagumo 模型。现在问题在于空间扩散。

而 DV_{xx} 是空间扩散。

使用Matlab,可以给即ODE45求解器以下函数。但是它还没有实现空间扩散......

问题:如何实现 V_{xx} ?

此外,V 需要是什么矩阵形状?通常 V 仅取决于 t,因此是一个 [1 by t] 向量。现在 V 取决于 x 和 t,因此我希望它是一个 [x by y] 向量,对吗?

谢谢

0 投票
3 回答
540 浏览

matlab - 在 Matlab 中求解 ODE 时是否可以使用匿名函数作为事件函数

是否可以在 Matlab 中使用匿名函数作为事件函数。我想做的基本上是

但是,这会返回一个错误,抱怨要处理的输出数量必须完全匹配。还有其他方法可以使匿名函数返回多个参数吗?

0 投票
1 回答
4166 浏览

matlab - 在 Matlab odeset() 中使用 NonNegative 设置

我正在尝试在 MatLab 中解决一些 ODE,并看到方程中的变量是需要限制为正的总体。所以我在调用方程求解器之前尝试使用 odeset() 使它们成为非负数,但在绘制这些值之后它们有时实际上是负数(在下面的代码中它是洋红色线)。我究竟做错了什么?

这是一些代码:

方程(...)的代码是: