Выполняю обещание.
По науке пока не получается подобрать параметры уравнения, всё разлетается.
И вот почему. Вклад инерции в скорость частицы, оказывается значительно больше вклада сил поля.
Поэтому, как только частица разгоняется, то её уже не удержишь.
Мне пришлось станцевать с бубном. Программисты нередко так делают.
Конкретно -
Скорость текущего шага вычисляется как сумма скорости предыдущего шага и скорости от действия поля сил.
Естественно, как векторная величина.
Для вычисления смещения, я делю эту скорость пополам.
Получается типа среднее арифметическое от инерции и действия силы.
Выглядит это довольно интересно, однако я пока не могу объяснить смысл сего действа.
Для применения научного подхода, конечно надо вычислять энергию и импульс для каждой частицы.
На каждом шаге известна и кинетическая и потенциальная энергии.
Но чтобы сделать следующий шаг - этого недостаточно,
потому что новая скорость и новое положение частицы - это пара неизвестных.
Надо ещё одно уравнение - типа закона сохранения импульса.
Но его я тоже не могу вычислить, потому что в модели нет понятия соударения.
Смысл ваших действий невозможно понять, потому как нарушают законы механики.
Рассмотрите мою физическую схему.

При импульсе по всем массам к оси, они начнут колебаться с переходом потенциальной энергии в кинетическую относительно радиуса (R+dR)
При этом будет сохранятся момент импульса mR
2W = Const
При изменении радиуса R, меняется угловая скорость W.
Сам процесс без сил инерции невозможен.
Задайте конкретные параметры, например: при g = 10 м/сек
2Масса = 1 кг. Радиус 1 метр, жесткость пружины 10mg/метр = 100 кг/метр. Угловая скорость \(2Pi/сек\)
Силу по радиусу 1кГ*1 сек , упрощенно пружина сожмется на 10 см.