Danguard wrote:
[cut]
> Vorrei simulare il moto di pianeti (in 2D, quindi ogni posizione e'
> individuata da due numeri reali (x,y)).
Perche' limitarsi a sole due dimensioni?
Aggiungere la terza dimensione rende la simulazione piu' realistica,
senza aumentare di molto la difficolta' nello scrivere il programma.
> Uso la legge di Newton della
> gravita'. Quando pero' i pianti [assunti puntiformi] diventano molto
> vicini, la forza diverge, per la presenza del termine 1/r^2.
> In realta', pero', quando i punti si avvicinano (fino a toccarsi)
> dovrebbe entrare in gioco un meccanismo di collisione...
> Ora mi sono bloccato qui: cioe', come gestisco il caso in cui la
> distanza tra due punti materiali sia zero (o diciamo sia minore di
> epsilon) ??
In generale e' poco probabile che nel corso della simulazione si
verifichi una "collisione" se i pianeti sono assunti puntiformi e se le
loro coordinate sono rappresentate con un numero di cifre
significative sufficiente, diciamo ad es. con variabili a 64 bit;
una collisione potrebbe essere invece provocata con una scelta
ad hoc delle condizioni iniziali, come nel caso di due pianeti isolati
e inizialmente a riposo, che vengono inesorabilmente attratti l'uno
verso l'altro fino a collidere.
Un problema sostanziale nasce invece quando la distanza tra
due pianeti e' sufficientemente piccola perche' la forza di
attrazione gravitazionale diventi tanto grande da causare un
errore inaccettabile nel procedimento di calcolo numerico iterativo,
un modo per ovviare a cio' consiste ad es. nel ridurre la durata
dell'intervallo di tempo tra due iterazioni successive quando i
pianeti subiscono passaggi ravvicinati.
Ciao
--
Giorgio Bibbiani
Received on Tue Dec 28 2004 - 16:20:53 CET