Per studiare la fisica è sempre più esteso l’uso dei computer e cresce sempre di più il numero degli studenti che risolvono problemi di fisica creando e codificando programmi personalizzati. Se non si ha abbastanza dimestichezza con questi calcoli numerici, l’idea di base è quella di considerare un problema e suddividerlo in sottoproblemi più semplici, i quali sono sicuramente più facili da risolvere, ma richiedono un così alto numero di calcoli che per completarli sarà necessario scrivere un programma per computer.
Ma, man mano che questi metodi numerici diventano sempre più comuni, si dovrà prendere in considerazione il ruolo di questi metodi in termini di natura della scienza. Spesso si sente dire che i metodi computazionali ampliano l’insieme degli strumenti per lo studio della fisica. Oggi la scienza si può ritenere suddivisa in tre parti: l’esperimento, la teoria e la computazione.
Tuttavia, questo non è proprio vero. Non è possibile suddividere la scienza in tre parti differenti. I metodi di calcolo numerico (o computazionali) e la teoria non sono altro che due versioni diverse di un procedimento di calcolo – e di fatto non sono poi così diversi. Prima di dimostrare la loro omogeneità, è necessario fare chiarezza sulla natura della scienza. La scienza è tutta una questione di costruzione e verifica di modelli. Per esempio, si creano dei modelli sull’universo e, successivamente, si passa a testare questi modelli con le prove sperimentali. Questi modelli potrebbero essere un modello fisico reale (come un globo), un modello concettuale, un’equazione – o persino un programma da computer. In tal senso, sia la teoria che il calcolo sono entrambi dei modelli.
Si consideri una massa connessa a una molla; un sistema molto utilizzato dai fisici. Questo sistema è abbastanza semplice da risolvere, ma nello stesso tempo racchiude delle complessità che lo rendono adattabile ad approssimare diverse altre situazioni. Per esempio, quando un blocco giace su una superficie piana (un tavolo), la forza di contatto tra il blocco e la superficie può essere modellata come una molla. Persino le interazioni tra gli atomi all’interno di un solido possono essere approssimate come delle forze elastiche. Si tratta di una situazione molto comune, che in questo contesto viene trattata nella sua forma più elementare.
Verranno forniti due approcci per la soluzione del problema. Prima, verrà fornita una soluzione di natura numerica, spezzettando il problema in sottoproblemi (utilizzando del codice Pyton). Quindi, verrà proposta una soluzione analitica – una soluzione che prevede una funzione a forma chiusa (per esempio una funzione del coseno), in modo da potervi inserire numeri e parametri per ottenere soluzioni differenti. E alla fine, verrà mostrato che questi due metodi non sono poi così differenti.
Soluzione numerica
Allo scopo di costruire un modello numerico riferito a una massa connessa a una molla, c’è bisogno di una specifica espressione per la forza esercitata dalla molla. Quando una molla viene estesa, essa tenderà a ritornare nella posizione iniziale con una certa forza. Maggiore è l’estensione e maggiore sarà la forza espressa dalla molla. Si supponga che la posizione di una massa sia data dalla variabile x, che corrisponde all’estensione della molla. In questo caso, la forza della molla (in una dimensione), sarà:
In questa espressione, k, detta costante elastica, è una misura della rigidità della molla. Il segno negativo nella formula significa che, allungando la molla nella direzione positiva (scelta arbitrariamente dallo sperimentatore), la molla attuerà una resistenza, espressa dalla forza F, nel verso opposto. Quindi, abbiamo una forza che si esercita su una massa. Una forza applicata a un oggetto va a modificare il suo stato di moto, ovvero la sua velocità; quindi ne determina un’accelerazione. Questa situazione è descritta (sempre in una dimensione) dalla seconda legge di Newton:
Dove l’accelerazione a, è definita come la variazione, nel tempo, della velocità, e la velocità è definita come la variazione, nel tempo, dello spazio.
Adesso è possibile vedere il problema. La forza dovuta alla molla determina una variazione nella velocità della massa, la velocità porta a una variazione della posizione, la quale, a sua volta, va a modificare la forza elastica. Questa situazione sembra generare un problema circolare impossibile da risolvere (anche se non è proprio impossibile). Quindi, la chiave nel calcolo numerico sta nel suddividere questo problema in intervalli di tempo più piccoli. Durante ognuno di questi intervalli di tempo, è possibile:
- Utilizzare la posizione della massa per calcolare la forza;
- Assumere che questa forza sia costante durante questo periodo e trovare la velocità al termine dell’intervallo di tempo;
- Assumere nuovamente che la velocità sia costante per calcolare la nuova posizione della massa;
- Ripetere questi passi per il numero di volte desiderato, ovvero compatibilmente con le potenzialità di calcolo del computer disponibile.
Adesso, dobbiamo convertire queste istruzioni dal linguaggio umano a un linguaggio di programmazione (Pyton in questo caso). Tuttavia, è necessario ricordarsi che per il calcolo numerico abbiamo bisogno di numeri. Quindi, in ogni fase del processo si utilizzano i valori numerici derivanti dall’intervallo di tempo precedente, per trovare nuove configurazioni. Utilizzando valori arbitrari per la massa, la costante elastica, la velocità iniziale e la posizione iniziale, si ottiene un grafico che evidenzia l’andamento oscillante della massa.
Soluzione analitica
Si parte sempre dalla seconda legge di Newton e dalla forza espressa dalla molla:
Invece di definire l’accelerazione come la variazione, nel tempo, della velocità, la consideriamo come la derivata della velocità rispetto al tempo. In questi termini, la velocità diventa la derivata dalla posizione rispetto al tempo. Questo significa che l’accelerazione è la derivata seconda della posizione, rispetto al tempo. In formule:
Tecnicamente, si tratta di un’equazione differenziale del secondo ordine. Questa equazione ci dice che abbiamo a che fare con una funzione dipendente da x. Derivando due volte questa funzione, si ottiene la stessa funzione iniziale con un fattore aggiuntivo -k/m. Esistono delle funzioni che, dopo una doppia derivazione, tornano alla forma iniziale: una di queste è la funzione coseno. Quindi una possibile soluzione dell’equazione differenziale potrebbe essere:
dove A e w sono delle costanti. Prendendo la derivata prima e la derivata seconda si ha:
Affinché questa funzione abbia un significato, la costante w deve essere collegata alla costante elastica (k) e alla massa (m), secondo la relazione:
Il valore della costante A si deduce assegnando un valore specifico alla posizione x al tempo t=0. La costante A rappresenta l’ampiezza della funzione coseno. Abbiamo dunque trovato la soluzione per la posizione della massa oscillante. E inoltre, inserendo i valori numerici si deduce che il metodo numerico e quello analitico producono gli stessi risultati.
Ma, i metodi sono diversi. Ovvero, nel metodo numerico si è ottenuto il grafico della funzione coseno. Mentre nel metodo analitico si è ottenuta una funzione trigonometrica – non è necessario inserire dei valori numerici per capire che la soluzione ha un andamento oscillatorio, dal momento che quello è il comportamento della funzione coseno.
Cosa succede se si vuole sapere dove si trova la massa dopo un determinato intervallo di tempo? Con il metodo numerico, basta posizionarsi sul punto del grafico corrispondente a quel determinato valore del tempo (per esempio t = 1s), e si otterrà un preciso valore di x. Con il metodo analitico, bisognerà prima calcolare il valore delle costanti A e w; quindi moltiplicare il valore di w per il tempo t e dedurne il valore del coseno.
Il calcolo del coseno di un valore numerico (in radianti) può essere eseguito solo in due modi: o consultare una tavola o eseguire un calcolo numerico.
E quindi rieccoci con la natura della scienza, che tende a modellare i problemi. Non ha importanza se si usa il linguaggio Pyton o un’equazione differenziale per determinare il moto di una massa collegata a una molla: si tratta sempre di un modello e i due metodi non si differenziano tanto. Che piaccia o no, si tratta sempre di numeri.