matlab - MATLAB 中的 ode 求解器事件位置索引

标签 matlab indexing solver differential-equations

假设我尝试使用 MATLAB 中的 ode 求解器求解微分方程组。

还假设我定义了一个事件函数来定位三个不同的事件,这些事件都是终端事件。

我注意到,在某些情况下,在事件之一的位置返回的 ie 数量(ie 是停止求解器的事件的索引,在我的例子中,它可能是 1、2 或 3)并不总是单个数字,而是具有两个元素的向量(通常这些元素是相同的)

ie 不是标量的情况下,是 ie(1) 还是 ie(2) 停止了求解器?

最佳答案

实际上,我注意到当模拟因终端事件而停止,然后从停止的同一点(初始时间和条件)再次开始时,就会发生这种情况。

从技术上讲,由于初始条件中的算术不准确,MATLAB 会重新检测导致其先前停止的同一事件。 MATLAB 无法区分这一点,但它被编程为不会在第一个成功步骤之后发生的终端事件中停止(请参阅odezero函数以供引用)。不过,它确实记录了该事件。

因此,下一次颂歌由于终端事件而停止时,ie附加新索引,这就是(以及原因) ie 是一个具有两个元素的向量。

关于matlab - MATLAB 中的 ode 求解器事件位置索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7621664/

相关文章:

java - 帮助使用 Java 解决 D&D 迷宫

java - 巧克力解算器 : define a constraint on a part of an intVar

c++ - 在 matlab 中编写一个非常基本的 mex 函数

matlab - 创建邻接矩阵matlab

r - 如何用值向量填充索引矩阵

mysql - InnoDB 二级索引包括值而不是指向 PK 的指针,这怎么够了?

sql - 了解聚集索引

java - 如何将java输出作为matlab变量传递?

matlab - 如何从 MATLAB 中的符号表达式创建函数?

z3 - 是否可以将 bit-blast 和 soft-assert 与 z3 求解器一起使用?