Вы должны учитывать, что ваше состояние содержит два основных компонента, положение x и скорость v. Метод должен быть сформулирован равномерно для полного состояния,
dx1 = v*dt, dv1 = acc(t,x,v)*dt
dx2 = (v+0.5*dv1)*dt, dv2 = acc(t+0.5*dt, x+0.5*dx1, v+0.5*dv1)*dt
x = x + dx2, v = v+dv2.
Записав формулы из первых принципов Теперь вы можете видеть, что удалить векторы dx
относительно легко. Таким образом, осталось вычислить
dv1 = acc(t,x,v)*dt,
dv2 = acc(t+0.5*dt, x+0.5*v*dt, v+0.5*dv1)*dt,
x = x + (v+0.5*dv1)*dt,
v = v + dv2