Newsgroup: it.scienza.astronomia
Titolo: simulatore di orbita

ciao,
sto realizzando un programma che simula l'orbita di un pianeta attorno ad un
centro di gravità. Sto cercando di farlo in modo che data la conoscenza
della propria velocità, massa, distanza dal centro e massa di questo, il
pianeta calcoli per sè una traiettoria compatibile con le leggi di Keplero.
Ora, per il calcolo delle traiettorie che si fonda sul metodo analitico, è
necessario risolvere un'equazione differenziale del secondo ordine a partire
da considerazioni sull'energia del sistema pianeta-centro di massa. Io,
invece,  sto tentando un approccio "ricorsivo", in cui la posizione al passo
successivo viene stabilita a partire dai parametri degli N passi precedenti.
In breve, vorrei sapere se nessuno di voi ha già avuto a che fare con
problemi del genere, o se in letteratura esistono algoritmi per questo
problema.
Grazie
--
Claves do Amaral
claves.d...@netbusiness.it

Allora, facendo uno sforzo di memoria immane e sparando probabilmente anche
alcune cagate provo a dare il mio contributo al NG:
Quello che tu stai tentando di fare è risolvere l'equazione in forma
numerica, e i metodi possibili sono molteplici; runge-kutta e eulero solo
per citarne alcuni (quelli che mi ricordo) di quelli one-step.
nel caso di runge-kutta operativamente si tratta di scrivere la tua eq diff
(o il sistema di eq diff, ricordati che un equazione differenziale di ordine
n può essere trasformata in un sistema di n eq diff del 1 ordine)  nella
forma:
Y(t)'=f(t,Y)
Y(to)=Yo
dove Y potrebbe essere il vettore posizione e t il tempo, e Yo vettore
posizione all'istante iniziale
non puoi stabilire indipendentemente i valori delle due masse, velocità e
"distanza" (anche se l'orbita sarà una conica e non un cerchio) perchè sono
parametri dipendenti tra loro
Quindi fissa il centro di gravità come sistema di riferimento e potrai
descrivere la posizione dell'altro come un vettore in funzione delle massa
(tradotte in forze), ed impostare una condizone iniziale di posizione e
velocità
allora noto Y all istante n avresti
Y(n+1)=Y(n)+h/6*(K1+2K2+2K3+K4)
 t(n+1)=T(n)+h
dove
K1= f(tn,Yn)
K2=f(tn+h/2, Yn+h/2+h2)+k1)
K3=f(tn+h/2,Yn+h/2+k2)
K4=f(tn+h,Yn+h+K3)
poni h grande a piacere (1 secondo, 1 anno) e poi note le posizioni
all'istante n puoi calcolare quelle all'istante n+1
Comunque L'equazione che descrive il moto di un pianeta intorno ad un altro
è disponibile in bibliografia (ma non me la ricordo, mannaggia al mio vizio
di vendere i libri di ingegneria dopo aver passato gli esami) ed è risolta
analiticamente, quindi non vedo la necessità di risolverla "ricorsivamente"
come tu dici o per meglio dire numericamente.
Diverso sarebbe il caso nel quale ci fossero altre forze in gioco, come la
presenza di altri pianeti, nel quale dovresti per forza usare un metodo
numerico, in quanto risulterebbe un sistema complicatissimo già nel caso di
tre corpi, ma mi sembra di ricordare che è stata trovata la soluzione
analitica nel caso di n pianeti su un piano.
Sperando di esserti stato utile, porgo i miei saluti


 Sperando di esserti stato utile, porgo i miei saluti
sě, utilissimo.
grazie


 
claves.d...@netbusiness.it
Ciao, Klein