问题标签 [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 回答
69 浏览

apache - 在 apache ode 下上传 ZIP 文件时出错:null model

我有一个在 Intalio BPMN 设计器中创建的工作流和一个包含构建目录(deploy.xml、wsdl、bpel)内容的 ZIP 文件,问题是为什么这个工作流没有部署在 Apache ODE 中。

Apache ODE 中显示的错误是:Invocation of operation deploy failed: java.lang.IllegalArgumentException: Null model。

欢迎任何帮助

0 投票
2 回答
2431 浏览

python - 每个时间步更新 ODE 求解器中的初始条件

我想解决一个 ODE 系统,在前 30,000 秒内,我希望我的一个状态变量从相同的初始值开始。在这 30,000 秒之后,我想将该状态变量的初始值更改为不同的值,并在其余时间模拟系统。这是我的代码:

所以,换句话说,我想odeint在前 30,000 秒内每次调用 y0[1] 为相同的值 (100)。在将信号输入系统之前,我正在有效地尝试让系统平衡一段时间。我考虑过像if t < 30000: y0[1] = 100我的函数的第一行那样做一些事情ode_rhs(),但我不太确定它是否有效。

0 投票
2 回答
6266 浏览

matlab - 是否可以从 matlab 提高 ODE 求解器的速度?(ode45 ode15s 等)

我写了一个代码来解决一个在matlab中使用ode45和ode15s的系统。我想知道是否可以在我的脚本中使用多核(或并行代码)来提高代码的速度。

有人试过这个吗??

谢谢

0 投票
2 回答
5768 浏览

matlab - 在 Matlab 中保存 ode45 中的导数值

我正在模拟具有质量弹簧和双摆的(有些奇怪的)系统的运动方程,我有一个质量矩阵和函数 f(x),并调用 ode45 来求解

我有 5 个状态变量,q= [ QDot, phi, phiDot, r, rDot]'; (删除了 Q,因为没有任何东西依赖它,QDot 是当前的。)现在,为了计算一些力,我还想保存 rDotDot 的计算值,ode45 会为每个积分步骤计算该值,但是 ode45 不会返回这个值。我搜索了一下,但我发现的唯一两个解决方案是 a) 将其转换为 3 阶问题并将 phiDotDot 和 rDotDot 添加到状态向量中。我想尽可能地避免这种情况,因为它已经是非线性的,这确实使事情变得更糟,并增加了计算时间。

b) 扩充状态以直接计算函数,如此所述。但是,在示例中,他说要在质量矩阵中添加一行零。这是有道理的,因为否则它将集成导数,而不仅仅是在某一点上对其进行评估,另一方面它会使质量矩阵变得奇异。似乎对我不起作用...

这似乎是一个基本的事情(想要状态向量的导数值),有什么我没有想到的非常明显的事情吗?(或者不那么明显的东西也可以....)

哦,全局变量不是很好,因为 ode45 在优化它的步骤时多次调用 f() 函数,所以全局变量的大小和返回的状态向量 q 根本不匹配。

如果有人需要,代码如下:

0 投票
1 回答
141 浏览

matlab - 使用 MATLAB 计算 ODE

微分方程:

α'(t)=s(β-βα+α-qα^2)

β'(t)=(s^-1)(-β-αβ+γ)

γ'(t)=w(α-γ)

初始值

α (0) = 30.00

β (0) = 1.000

γ (0) = 30.00

计算

我想解决从 t_0=0 到 t=10 的问题,同时使用值 s = 1、q = 1 和 w = 0.1610

我不知道如何为 ODE 编写函数,非常感谢您的帮助!

0 投票
1 回答
1655 浏览

matlab - Matlab - Odeset - Odeplot

我想使用 odeplot 所以逐步得到结果,而不是事后绘制结果。我试过这样写,但我无法让它工作,所以我希望能得到一些帮助。

0 投票
2 回答
2533 浏览

matlab - Matlab:求ODE系统的系数

我有所有数据和一个由三个方程组成的 ODE 系统,它有 9 个未知系数(a1、a2、...、a9)。

如何使用 Matlab 找到 ODE 的这些系数(a1,...,a9)?

0 投票
2 回答
1834 浏览

matlab - Matlab:可变步长 ODE 求解器中的 if 语句和 abs() 函数

我正在网上阅读这篇文章,其中有人提到使用“if statements”和“abs()”函数可能会对 MATLAB 的可变步长 ODE 求解器(如 ODE45)产生负面影响。根据 OP,它会显着影响时间步长(需要太低的时间步长),并在最终积分微分方程时给出较差的结果。我想知道这是否是真的,如果是,为什么。此外,如何在不求助于固定步骤求解器的情况下缓解这个问题。我在下面给出了一个示例代码来说明我的意思:

其中函数“dragcof”由以下给出:

0 投票
0 回答
662 浏览

matlab - MATLAB 的 ode45 如何处理高度耦合的 ODE(其中 y' 取决于 x' 而 x' 取决于 y' 等)?

如果我有两组高度耦合的 ODE,例如:

或者如果我有这样的系统:

ode45 通常会如何处理这个问题?如果我要执行以下操作:

或类似的第二个问题:

并运行 ode45,MATLAB 会毫无怨言地产生结果,但我有点犹豫,因为我不确定它是如何处理这样一个耦合方程组的。和建议?

0 投票
2 回答
5621 浏览

matlab - MATLAB:使用“assignin”在 ode45 中保存参数

我在 MATLAB 中使用 ode45 运行一组 ODE,我需要保存其中一个变量(这不是导数)以供以后使用。我正在使用函数“assignin”在基础工作区中分配一个临时变量,并在每一步更新它。这似乎可行,但是,数组的大小与从 ode45 获取的解向量的大小不匹配。例如,我有以下嵌套函数:

在上面的代码中,theta(弧度)、K(负值)、P 和 G 是常数,为了这个例子,可以取任何值。Zspan 只是 ODE 求解器的积分时间步长,Y0 是初始条件向量 (4x1)。同样,为了这个例子,这些可以取任何合理的值。现在在主文件中,使用以下内容调用该函数:

这个方法没有被 MATLAB 抱怨,但问题是 Ve_out 的大小与 Z 或 Y 的大小不一样。原因是因为 MATLAB 对其算法多次调用 ODE 函数,所以解决方案是将比 Ve_out 略小。正如 am304 所建议的那样,我可以通过给 ode 函数一个 Z 和 Y 向量(例如 DY = 动量(Z,Y))来简单地计算 DY,但是,我需要使用“assignin”(或类似方法)来解决这个问题,因为另一个这个问题的版本在 DY 和 Ve 之间存在隐式依赖性,并且在每次迭代时计算 DY 的计算成本太高(我将在多次迭代中运行这个问题)。