Делаю симуляторную прогу. Гравитация + ускорение/торможение ==> движение.
В основном для орбиты, чтоб узнать, как далеко спутник пролетит мимо других спутников.
Во избежание ДТП!
Но и для полёта через атмосферу пойдёт.
Хочется, конечно, квант времени брать побольше, чтоб счётное время было маленьким.
Чтоб узнать, на сколько симуляция врёт, запускаю несколько спутников, на две недели.
Для каждого симулирую с разным временным квантом.
"Эталонный" с квантом, например, 1/4096 секунды, а другие с разными другими долями секунды.
И смотрю, на какое расстояние они от эталонного разлетятся.
Считаю расстояние чисто по теореме Пифагора, не различая, в направлении полёта или перпендикулярно.
Вот картинка, первые 4 графика — 4, 2, 1, 1/2 секунды,
вторые — 1/4, 1/8, 1/16, 1/32 секунды,
третьи — 1/64, 1/128, 1/256 и 1/512.
(
https://www.dropbox.com/s/azkqjvgripsp2ml/Errors.png?dl=0)
(Картинка не прилепляется!)
Видно, что при больших квантах ошибка растёт линейно со временем и квадратично от размера кванта.
Как и должно быть.
А на маленьких лезет какая-то кривизна.
"В школе проходили", что даже если симуляторная прога при уменьшении кванта показывает сходимость,
это ещё не значит, что решение будет правильным.
А тут вообще лезет фиг знает что.
Волнуюсь!
Сейчас запустил с эталонным квантом = 1/2
20 = 1/1048576.
Считает очень долго.
За двое симулированных суток с квантом 1/16 ошибка получилась пара метров.
Похоже, что для счёта с точностью сотня метров за две недели можно применять квант 1/16.
Скорость счёта получилась такая: две недели за 10 секунд при 1 ГГц процессора.
Проверил прецессию плоскости орбиты, получился период 75 дней. Очень похоже на правду.
Это для эллиптической Земли.
Для окончательной проверки надо будет взять данные нескольких сотен реальных спутников,
(
Space-Track.Org)
просимулировать, подождать недельку-другую, взять новые данные и сравнить симуляцию с ними.