Performance comparison of Python, MATLAB and R for numerical solutions of SI and SIR epidemiological models

Questo studio confronta l'efficienza computazionale e l'accuratezza di Python, MATLAB e R nella risoluzione numerica dei modelli epidemiologici SI e SIR utilizzando metodi come Euler, RK4 e Predictor-Corrector, fornendo indicazioni pratiche per la selezione degli strumenti più adatti.

Berkay Özışık, Elif Demirci

Pubblicato 2026-03-05
📖 4 min di lettura🧠 Approfondimento

Each language version is independently generated for its own context, not a direct translation.

Immagina di essere un medico o un pianificatore che deve prevedere come si diffonderà un virus in una città. Non puoi aspettare che succeda tutto per vederlo; devi usare la matematica per simulare il futuro. È qui che entrano in gioco i modelli SI e SIR.

  • Il modello SI è come una partita a "palla avvelenata": c'è chi è sano (S) e chi è infetto (I). Una volta infettati, restano tali per sempre.
  • Il modello SIR è più realistico: c'è chi è sano (S), chi è malato (I) e chi si è guarito (R) ed è immune.

Il problema è che calcolare esattamente come si muove questa "palla" nel tempo è matematicamente complicato, come cercare di prevedere esattamente dove cadrà ogni singola goccia di pioggia durante un temporale. Per questo, gli scienziati usano dei "trucchetti" numerici (metodi come Eulero, RK4 e Predittore-Correttore) per fare delle stime passo dopo passo.

Ma c'è un dilemma: con quale "linguaggio" scrivere questi calcoli?
Gli autori di questo studio hanno messo alla prova tre giganti del mondo scientifico: Python, MATLAB e R.

Ecco come hanno fatto la gara, spiegata in modo semplice:

1. La Gara: Chi è il più veloce e il più preciso?

Immagina una corsa di tre atleti:

  • Python: È come un maratoneta moderno, leggero, veloce e gratuito.
  • MATLAB: È come un atleta professionista con un equipaggiamento costoso e di alta qualità, molto preciso ma un po' più pesante.
  • R: È come un vecchio saggio esperto in statistica, molto preciso ma che a volte si muove con più cautela (e quindi più lentamente).

Hanno fatto correre questi tre atleti su due percorsi:

  • Percorso SI: Qui c'era una "mappa del tesoro" perfetta (la soluzione esatta). Potevano vedere subito quanto si allontanavano dalla strada giusta.
  • Percorso SIR: Qui non c'era la mappa. Hanno dovuto usare un "GPS super-preciso" (un altro metodo di MATLAB chiamato ODE45) come riferimento per vedere chi si avvicinava di più alla verità.

2. I Risultati della Gara

Chi ha vinto la precisione?

Tutti e tre sono stati molto bravi, ma RK4 (uno dei metodi di calcolo) è stato il campione indiscusso.

  • RK4 è come un navigatore satellitare di lusso: anche se fai passi un po' grandi, ti dice esattamente dove sei. Ha dato risultati quasi perfetti (un punteggio di "R2" di 1,0, che è il massimo).
  • Predittore-Correttore è stato il secondo, molto vicino al primo.
  • Eulero è stato il "principiante": se fai passi piccoli va bene, ma se fai passi grandi si perde facilmente (meno preciso).

Chi ha vinto la velocità?

Qui la sorpresa è stata Python.

  • Python è stato il fulmine. In quasi tutti i test, ha finito il lavoro molto prima degli altri. È stato particolarmente veloce quando i calcoli dovevano essere fatti con molta precisione (passi piccoli).
  • MATLAB è stato nella media: veloce, ma non quanto Python.
  • R è stato l'atleta che ha corso più piano. Ha impiegato più tempo per fare lo stesso lavoro, specialmente quando i calcoli diventavano complessi.

3. La Metafora Finale: Costruire una casa

Immagina di dover costruire una casa (il modello epidemiologico):

  • Eulero è come usare un martello e un chiodo: funziona, ma se devi costruire un grattacielo, ci metti una vita e la casa potrebbe essere un po' storta.
  • RK4 è come usare un braccio robotico di precisione: ci mette un po' più di energia a ogni singolo movimento, ma il risultato è perfetto e solido.
  • Python è il cantierista che usa i migliori attrezzi moderni: è veloce, efficiente e non ti fa pagare l'abbonamento (è gratuito).
  • MATLAB è il cantierista con gli attrezzi di marca: ottimi, ma costosi e a volte un po' lenti a caricare.
  • R è il maestro murario tradizionale: sa fare tutto benissimo, ma lavora con un ritmo più lento e metodico.

Conclusione: Cosa ci dice questo studio?

Se sei un ricercatore o uno studente che deve simulare la diffusione di un virus:

  1. Se vuoi velocità e precisione senza spendere soldi, Python è la scelta migliore. È il "coltellino svizzero" che vince la gara.
  2. Se hai già MATLAB e ti fidi del suo ecosistema, va bene, ma preparati a spendere un po' più di tempo di calcolo.
  3. R è ottimo per l'analisi statistica finale, ma per i calcoli "pesanti" e ripetitivi di questi modelli, è il più lento.

In sintesi: Python ha dimostrato di essere il miglior equilibrio tra velocità e precisione per prevedere come si diffondono le malattie, rendendolo lo strumento ideale per chi deve prendere decisioni rapide basate sui dati.