使用linspace但在Runge-Kutta方法中包含端点

时间:2015-08-07 00:16:11

标签: matlab

我已经给出了一个步骤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。

1 个答案:

答案 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]区间内。