我已经给出了一个步骤h,用于实现更高阶ODE的Runge-Kutta方法。将时间间隔从开始时间t_0分割到最终时间t_f时出现问题。我想过使用N = ceil((t_f-t_i)/h)
,然后使用
t = linspace(t_0, t_f, N)
但是我希望将Runge-Kutta算法使用的点在大多数过程中保持间隔h,是否有一种方法可以包含端点t_f,同时保持第一个n-的h
的步长1个步骤?我尝试使用
t = t_0:h:t_f
但这并不总是包括端点t_f。
答案 0 :(得分:1)
假设你想要使用最大的N,你的范围是t_0,t_0 + h,t_0 + 2 * h,...,t_0 + h *(N-2),t_f,你会使用{{1其中eps
是一个MATLAB函数,它给出两个浮点数之间的最小距离。
请注意,这意味着您的最后两点可以非常接近。一般情况下,如果您使用< t = [t_0 : h : t_f-a t_f]
编写h,那么最后两点之间的距离将在[a,h + a]区间内。