尽管我知道我无法在一个时间步内推进使用 TR-BDF2 本身的求解器 ode23tb,但我想设置积分周期的上限,之后我会做一些事情来输出并将修改后的输出馈送到 ode 求解器再次。上限用于将积分区间tspan = [t_prev ti[j]]
(见下文)中的时间步长限制为尽可能低,希望只有一个。为了实现它,我尝试这样做:
y_prev = rho0;
t_prev = 0
ti = [list of timestep in TR-BDF2]
j = 1;
while t_prev < tf
#do something to the output
...
# integrate up to adaptive ti in TR-BDF2 even though inside the interval ode45 has its own timestep
tspan = [t_prev ti[j]]
j = j + 1;
[T, Y] = ode23tb(dydt, tspan, y_prev);
t_prev = T(end,:)
y_prev = Y(end,:)
....
end
ti
但是,我怎么能事先知道是什么?我查看https://math.la.asu.edu/~gardner/TRBDF.pdf
,但不知道如何执行此操作。