Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 如何将常微分方程与脉冲型时变参数积分?_Matlab_Parameters_Ode - Fatal编程技术网

Matlab 如何将常微分方程与脉冲型时变参数积分?

Matlab 如何将常微分方程与脉冲型时变参数积分?,matlab,parameters,ode,Matlab,Parameters,Ode,问题。 我正在模拟一个具有时变参数的常微分方程,如下所示 p = @(t) p0*( (T0 < t) & (t < T1) ) sol = ode15s(@(t,x) myode(t,x,p(t)),[t0 tf],x0) p=@(t)p0*((T0

问题。

我正在模拟一个具有时变参数的常微分方程,如下所示

p   = @(t) p0*( (T0 < t) & (t < T1) )
sol = ode15s(@(t,x) myode(t,x,p(t)),[t0 tf],x0)
p=@(t)p0*((T0
其中p(t)是振幅为p0且持续时间为(T1-T0)的脉冲(如果T0 由于其自适应时间步长,如果时间步长大于脉冲持续时间,积分器将“错过脉冲”

天真的解决方案。

一个简单的解决方案是将MaxStep限制为(T1-T0)/2,以确保积分器检测到脉冲。但是,这会在实际不需要MaxStep时限制它

更高效的解决方案?

我想知道是否有更有效的方法来确保脉冲被检测到