Matlab 时间间隔和时间间隔

Matlab 时间间隔和时间间隔,matlab,Matlab,ODE45函数在matlab中取参数: (function,[tinitial tfinal],yinitial) 但在这里,我认为,时间跨度是预先确定的。如何为其指定向量?我的意思是如何解决域1:0.1:5的ODE 谢谢。您可以为时间跨度分配以下向量,这样,您就可以对ode45说您希望在特定时间点(这里,每0.001)获得解决方案 输出向量(T,X)的步长与tspan向量的步长相同 (但如果您的意思是希望解算器采取预定且恒定的步骤来解算方程,则不能这样做。)如果您需要指定时间点的值,只需执行

ODE45
函数在matlab中取参数:

(function,[tinitial tfinal],yinitial)
但在这里,我认为,时间跨度是预先确定的。如何为其指定向量?我的意思是如何解决域
1:0.1:5
的ODE


谢谢。

您可以为时间跨度分配以下向量,这样,您就可以对ode45说您希望在特定时间点(这里,每0.001)获得解决方案

输出向量(T,X)的步长与tspan向量的步长相同


(但如果您的意思是希望解算器采取预定且恒定的步骤来解算方程,则不能这样做。)

如果您需要指定时间点的值,只需执行以下操作:

tspan = 1:0.1:5
[T Y] = ode45(odefun, tspan, y0)

T
应与
tspan
相同,
Y
将是每个时间点的对应值。

跨度确实是自适应的,取决于解决方案所需的相对误差。通过调用ode45,可以得到时间网格作为返回向量。无论如何,你都可以传递一个时间向量,使解在同一个向量中。@Acorbe你能详细解释一下“确实是自适应的,取决于相对误差”是什么意思吗?你的意思是我不可能使用ODE45来计算时间向量1:0.1:5?
tspan = 1:0.1:5
[T Y] = ode45(odefun, tspan, y0)