3

假设我正在尝试使用odeMATLAB 中的求解器求解微分方程组。

假设我已经定义了一个事件函数来定位三个不同的事件,它们都是终端。

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

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

4

1 回答 1

3

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

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

因此,下次 ode 由于终止事件而停止时,ie附加新索引,这就是何时(以及为什么)ie是具有两个元素的向量。

于 2011-10-02T07:38:20.770 回答