Dopo aver colto il concetto essenziale del
calcolo ricorrente, è facile
scrivere una simulazione per le oscillazioni di un pesetto, attaccato ad
una molla, soggetto alla forza peso ed alla forza elastica di richiamo
della molla.
Questa semplice simulazione ha il pregio fra l'altro di riconnettersi facilmente alle esperienze di fisica in laboratorio che sono una premessa importante del lavoro con l'elaboratore.
Indichiamo con le variabili k, la costante elastica,
con yi, la "quota" della molla senza pesetto attaccato, con y, la quota
corrente della molla.
Ecco il cuore della simulazione:
y:=0.65; {
posiz. iniziale }
vy:=0;
{ vel. " }
t:=0;
pennasu;
mostraTarta(12);
asPos(0,y*100);
{assegna la posizione iniziale alla tartaruga }
repeat
ay:=(k*(yi-y))/m-9.81; { (F_elast+F_peso)/m }
vy:=vy+ay*dt;
{ definizione di acceleraz. media }
y:=y+vy*dt;
{ " "
velocità " }
AsPos(0,y*100); {
porta la tarta nella nuova posiz.}
t:=t+dt; { incrementa il tempo}
until (t>=15);
In sostanza l'automa tartaruga oscillerà
come se fosse un pesetto attaccato ad una molla.
Prendendo l'asse y verticale e diretto verso
l'alto, la forza elastica sarà poitiva mentre la forza peso sarà
negativa (diretta verso il basso)
Si può aprire una ulteriore finestra in un altro "form2" del Delphi per visualizzare il grafico della quota al variare del tempo. Per i particolari relativi all'inserimento di un altro "form" vedi: più finestre
Dopo aver impostato form2.finestra(...) con gli stessi valori del form1.finestra, ed eventualmente form2.assi, si può inserire nel ciclo repeat ... until precedente una riga di questo tipo:
form2.disegnaPunto(t,y*100, clred);
La moltiplicazione per 100 si interpreta dicendo che il grafico è in centimetri.
E' utile a questo punto arricchire la simulazione inserendo un ulteriore grafico delle quattro forme di energia che intervengono: energia potenziale gravitazionale, cinetica, elastica e totale.
Per ciascuna di esse deve essere dichiarata una variabile e le relative formule saranno inserite dentro il ciclo repeat ... until. Per il calcolo della energia potenziale gravitazionale basta moltiplicare m*g*y dato che y è la quota; per l'energia elastica basta considerare (yi-y) l'allungamento e in fine per l'energia cinetica vy è la velocità.
Il grafico delle energie conviene eseguirlo in una ulteriore form3 da tenere visibile nello schermo mentre la tartaruga oscilla. Ciascuna energia avrà un colore diverso. Dovendo utilizzare gli stessi valori dentro la procedura finestra in ciascuno dei tre forms, il valore delle varie energie andrà moltiplicato per 100 cioè l'unità di misura sarà il centesimo di Joule.
Nella nuova versione di grafica di nome grafica2,
è data la possibilità di richiamare una procedura finestra2
cui si possono assegnare nuovi parametri eventualmente diversi da quelli
di finestra. In questo modo adattando i valori assegnati a finestra2 nel
form3 non sarà necessario utilizare i centesimi di Joule.
periodo:=2*Pi*sqrt(m/k);
disegnando una linea che corrisponda a questo
valore.
E' possibile in fine aggiungere lo smorzamento dato dall'attrito che si oppone alla velocità. Per tener conto dell'attrito nella formula dell'accelerazione:
ay:=(k*(yi-y))/m-9.81-ca*vy/m;
dove ca è un coefficiente di attrito.
In questo modo le oscillazioni appariranno di ampiezza sempre più smorzata all'aumentare di ca.
Non varia invece il periodo delle prime oscillazioni.