Retro Programming Nostalgia: quando l’Amiga 500 calcolava le cariche atomiche

Un programma in GFA BASIC, il metodo di Gasteiger–Marsili e un ricordo della mia tesi di laurea in Chimica.

All’epoca della ricerca per il mio progetto di laurea in chimica, ero ancora un entusiasta possessore dell’Amiga 500. Il kernel del Linux OS era stato appena ufficialmente rilasciato nella versione 0.01 da Linus Torvalds, e la distribuzione Slackware sarebbe stata rilasciata nel luglio del 1993. Come descritto nel mio articolo sulla mia tesi di laurea, all’epoca l’Apple Macintosh per scrivere la tesi e il mainframe IBM 3090 per i calcoli. Il mio primo PC lo acquistai durante il mio dottorato di ricerca con l’idea di installarlo con Linux in dual boot con MS Windows. All’epoca conoscevo bene il BASIC disponibile sui vari microcomputer che ho avuto (vedi i miei articoli sul retrocomputing) e l’Amiga Basic del mio Amiga 500 che acquistai durante i miei primi anni universitari. Quando iniziai la mia tesi di laurea, cominciai a imparare a programmare in FORTRAN 77, linguaggio usato per scrivere i codici per le simulazioni di dinamica molecolare. Continui limitatamente ad usare anche il mio Amiga 500 per la grafica e la programmazione.

Continue reading →

The Runge–Kutta Integration Method: Returning to the Moon After 50 Years (Part II)

This is the second article in a series introducing numerical methods for solving differential equations, inspired by one of humanity’s greatest technological achievements: the journey to the Moon.

In July 2019, I wrote the Italian version of this article to celebrate the 50th anniversary of the Apollo 11 mission. On 20 July 1969, Neil Armstrong and Edwin “Buzz” Aldrin became the first humans to walk on the lunar surface, while Michael Collins remained in lunar orbit aboard the Command Module Columbia.

More than half a century later, the Moon continues to inspire scientists, engineers, and explorers. NASA’s Artemis programme, together with initiatives from other space agencies and private companies, represents a renewed effort to explore our nearest celestial neighbour. In 2026, the Artemis II mission marked another milestone with a crewed journey around the Moon, recalling the historic flight of Apollo 8 in 1968. These developments renewed my interest in the mathematical and computational techniques that made the Apollo missions possible. How could the computers of the 1960s, with their extremely limited memory and processing power, calculate the trajectories necessary to navigate between the Earth and the Moon?

To explore this question, I returned to historical NASA documentation and the scientific literature on numerical integration. In this article, I summarise some of these findings and introduce the Runge–Kutta method, one of the most widely used techniques for solving differential equations numerically. As usual, I will also include a simple computer program to illustrate how these mathematical ideas can be put into practice.

Continue reading →