def step(Y_k, Y_kk, f, x_k, step_width):
  """Advance Numerov integration by one step

  @param Y_k        float    (value at k)
  @param Y_kk       float    (value at k-1)
  @param f          callable (function of form Y'' = f(x)*Y)
  @param x_k        float    (x value at k)
  @param step_width float

  @return float (value at k+1)
  """
  pre = 1 - step_width**2 * f(x_k+step_width) / 12
  res = Y_k * (step_width**2 * f(x_k) * 5 / 6 + 2)
  res += Y_kk * (step_width**2 * f(x_k-step_width) / 12 - 1)
  return res / pre