Problema degli N corpi
- Francesco Scolz
- 15 gen
- Tempo di lettura: 2 min

Buongiorno!
Oggi un piccolo pensierino su un problema accennato dal mio professore: il problema degli N corpi
Non sarà nulla di difficile, basta un'infarinatura di fisica generale riguardo alle forze e all'attrazione
Pronti?
- - - - - - - - -
Supponiamo di avere due corpi di massa m1 e m2
Due corpi non privi di massa si attraggono, secondo la formula di Newton:
F = G (m1 • m2)/d²
Entrambi con la stessa forza, chiaramente
E data F = ma (sempre da Newton)
a = F / m
I due corpi avranno stessa forza attrattiva, ma accelerazioni diverse
Con 3 corpi (A, B, C) invece, avremmo 3 coppie di forze (A-B, B-C, C-A) che dovremmo calcolare, tutte con la stessa formula: F = G (m1 • m2)/d²
NB: sono 3 invece che 6 perché le specchiate sono uguali
Con 4 corpi avremmo 6 coppie di forze (A-B, A-C, A-D, B-C, B-D, C-D)
Con 5 corpi ne avremmo 10
Con 6 ne avremmo 15
E, generalmente, con N corpi avremmo N(N-1)/2 forze diverse
Capiamo quindi che l'incremento è direttamente proporzionale a N²
Quindi, ad ogni incremento, la complessità aumenta quadraticamente
Ciò significa che, passando da 100 a 101 corpi, le possibilità crescono di tanto, e dunque anche il costo computazionale (tempo)
Se volessimo quindi creare un sistema di 10.000 corpi, il tempo stimato verrebbe incredibilmente grande
La domanda è: come possiamo velocizzare il processo?
Ho trovato alcune soluzioni, ma per ora solo teoriche:
Usare computer quantistici, più veloci dei tradizionali
Ok, questa è un po' una banalità, tuttavia potrebbe veramente essere una soluzione valida, specialmente quando si tratta di un numero di corpi elevato
Unico svantaggio è chiaramente il costo materiale del computer, che oggi risulta essere incredibilmente alto
Approssimare scegliendo solo alcune coppie di corpi (quelle più significative)
In pratica, al posto di usare tutte le coppie di forze possibili, andiamo ad usare solo quelle più significative
Possiamo scegliere i primi N corpi in ordine di vicinanza
Oppure quelli entro una certa distanza dal corpo interessato
La prima soluzione va bene perché il costo computazionale risulta sempre uguale, indipendentemente dalla formazione dei corpi, tuttavia potrebbe non essere del tutto preciso, specialmente se usato in configurazioni in cui sono tutti molto vicini
La seconda è anche buona, aumentando la precisione a discapito del costo computazionale in casi come il precedente
Usare metodi come Runge-Kutta-Fehlberg (RKF45)
Questo metodo porterebbe la complessità dell'algoritmo da O(N²) ad O(6N) ≈ O(N) (nel caso di RKF45 nello specifico) dove N sono il "numero di passi" che l'algoritmo effettua (fattore proporzionale alla lunghezza dell'esperimento)
Sarebbe utile combinarlo insieme ad altri metodi, come il 2, riducendo ancora di più il costo computazionale
PS. Ho anche creato un programma che simula una parte del sistema solare, lo trovate qua
- - - - - - - - -
Bene...
Lezione introduttiva? Potremmo dire così...
Ma lo ammetto, era solo una scusa per mostrare il mio nuovo programma...
Motivo per cui questo post è tardato
Scherzi a parte, spero vi sia rimasto qualcosa
Se avete in mente altri metodi scrivete pure qua sotto!
Io come sempre vi auguro un buon proseguimento di giornata e...
Al prossimo post
Commenti