Você basicamente tem a resposta - não é necessário o fator 0,5.
Essencialmente, você possui um sistema bidimensional de EDOs de primeira ordem:
onde tudo é função do tempo, exceto presumivelmentem, e pontos indicam derivadas do tempo. Se você fizer uma diferenciação simples de primeira ordem no estilo Euler avançado, encontrará
x n + 1 -xn
x˙v˙= v= Fm,
m
ou
xn+1xn + 1- xnΔ tvn + 1- vnΔ t= vn= Fnm,
xn + 1vn + 1= xn+ Δ t ⋅ vn= vn+ Δ t Fnm.
n
tntn + 1 tn + 1 / 2x0 0v1 / 2
xn + 1vn + 1 / 2= xn+ Δ t ⋅ vn + 1 / 2= vn - 1 / 2+ Δ t Fnm
para integrar adiante no tempo. Isso é conhecido como
método saltador . Com isso, seu sistema conserva uma espécie de energia e é menos provável que as órbitas voem para o infinito ou algo parecido devido ao crescimento exponencial do erro de arredondamento.
O único problema é como obter v1 / 2, já que provavelmente você começa com v0 0. Lá, você deve usar um esquema tão preciso quanto você está escrevendo, sendo o Runge-Kutta de quarta ordem uma escolha popular. Pode ser instável a longo prazo, mas há tantos erros que você introduzirá em meio intervalo de tempo, e esse erro será mantido pequeno posteriormente pelo esquema de salto.
Finalmente, essa resposta se aplica a qualquer sim geral de gravidade newtoniana. Se você realmente deseja círculos perfeitos , como mencionado na passagem da pergunta, não os conseguirá, exceto em um sistema idealizado no qual os planetas não interagem entre si e as condições iniciais são escolhidas da maneira certa. Se for esse o caso, você não precisa se integrar, pois a velocidade angular (radianos por unidade de tempo) de um objeto é simplesmente
ω = G Mr3----√,
Onde
M é a massa do objeto central e
ré o raio da órbita. Isso pode ser usado para testar a precisão da sua simulação.