@staticmethod
def RK2(x_initial, p_initial, timestep, H_p, H_x):
    """Non-symplectic one-dimensional Runge Kutta 2 O(T^3) Algorithm."""
    x_a = timestep * H_p(p_initial)
    p_a = -timestep * H_x(x_initial)
    x_b = timestep * H_p(p_initial + 0.5 * p_a)
    p_b = -timestep * H_x(x_initial + 0.5 * x_a)
    x_final = x_initial + x_b
    p_final = p_initial + p_b
    return x_final, p_final
