Matlab 如何使用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_跨度,即x的初始值和最终值。请引导我 请注意,将x设置为一个较大的值(比如1000)将不会有帮助,因为我不知道y1=1的位置。使用您提供给ODE解算器的事件函数(通常等于y1-1):Matlab 如何使用ODE45求解具有困难终端条件的微分方程组?,matlab,solver,ode45,Matlab,Solver,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_跨度,即x的初始值和最终值。请引导我 请注意,将x设置为一个较大的值(比如10
一旦解算器检测到事件函数的符号变化,它就会停止。这个问题似乎有点奇怪,因为方程组尚未确定。你有两个微分方程,但有三个变量。或者,y1和y2是x的函数,而您提供的方程组是由于变量的变化而导致微分方程的阶数降低?对不起,忘了提到y1和y2确实是x和y1'=dy1_dx和y2'=dy2_dx的函数。我正在更新这个问题。你能提供你想要解的微分方程吗?这可能有助于为问题找到答案。@Thales函数F1和F2表示函数。我不能写这些方程,因为它们几乎每行有35行,但是你可以把它们放在函数F1和F2后面。