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

问题描述

我的方程组可以记为-

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): cyclomatic complexity

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