如何使用 ODE45 求解具有困难终止条件的微分方程组?

How to use ODE45 to solve for a system of differential equations with a difficult end condition?

我的方程组可以写成-

y1' = F_1(x,y1,y2)

y2' = F_2(x,y1,y2)

其中F1和F2是x,y1,y2的一些函数。 y1 和 y2 是 x 和 y1'=dy1_dx 和 y2'=dy2_dx.

的函数

初始条件为x=0,y1=y2=0。但是我需要 y1=1 的解决方案,即一旦达到 y1=1,迭代就需要停止。我想在 MATLAB 中使用适当的求解器(如 ODE45 或 ODE15s)来求解它。但是我不确定如何设置 x_span 即 x 的初始值和最终值。请指导我。

请注意,将 x 设置为较大的值(例如 1000)将无济于事,因为我不知道 y1=1 的位置。

使用您提供给 ODE 求解器的事件函数(通常等于 y1-1): https://fr.mathworks.com/help/matlab/math/ode-event-location.html

一旦求解器检测到事件函数的符号发生变化,它就会停止。