1

我正在使用 ode45,但我不知道在这种情况下该怎么做。我有一个微分方程,其中我的参数随时间变化非常快。理想情况下,我想选择 tspan 为 0:epsilon:10*epsilon ,其中考虑到我的 DE 因素中的任何内容,epsilon 的顺序很小。但是,这不起作用,MATLAB 只是给了我一个情节,其中我的初始条件没有任何变化。

我做了明显的事情来修复它,如下所示。假设我有 xdot(t)=10^9*x(t)。我将其重写为 xdot(t)=x(t) 并将我的时间轴标记为纳秒而不是秒。

只是好奇MATLAB是否可以自己做到这一点。

4

1 回答 1

1

您可以使用 ODE 选项设置最大时间步长。

opt = odeset('MaxStep',epsilon)
[t,y] = ode45(odeFun,tSpan,y0,opt)

要了解自定义 ODE 求解器时可以更改的所有选项,请查看docsearch odeset.

于 2013-01-22T16:12:50.650 回答