La rifrazione è un fenomeno dato dal cambiamento di velocità della luce quando passa da un materiale ad un altro.
La matita in un bicchiere d'acqua che sembra spezzata, il funzionamento delle lenti o anche l'arcobaleno sono tutti fenomeni legati alla rifrazione.
In effetti la propagazione della luce in aria è più veloce della propagazione della luce in acqua per cui il percorso seguito sarà la linea spezzata che permette alla luce di impiegarci il minor tempo possibile (principio di Fermat).
Per fare le cose con un po' di precisione è stato creato un progetto di simulazione realizzato con Scratch nel quale un robot deve raggiungere un obiettivo in mare partendo dalla spiaggia; si tratta di cercare il punto di ingresso in acqua più adatto a rendere minimo il tempo e lo si fa giocando con "Karel-bot".
Si posiziona il punto di ingresso in acqua e si fa muovere il robot prima sulla spiaggia e poi in acqua per raggiungere l'obiettivo in mare e quindi si misura il tempo totale impiegato con diverse posizioni del punto di ingresso in acqua.
Nell'articolo "Karel-bot anfibio" è stato usato i progetto "karel-bot anfibio" per scoprire che la durata del percorso dipende dalla traiettoria scelta.
Su terreni diversi la velocità del robot è diversa dipendendo dalle condizioni della strada.
Il caso esaminato comprende prima un tratto su terra e poi un tratto in acqua da percorrere con minore velocità.
Il progetto "karel-bot anfibio" consente di studiare la situazione provando diversi percorsi per trovare la traiettoria di minimo tempo.
In questo articolo si fanno le misure per scoprire il opunto di accesso che fornisce il minimo tempo.
Un video riproduce alcuni esperimenti.
***
Una volta avviato con la bandierina verde, si imposta il rapporto fra le due velocità e poi con [tasto A] si avvia la marcia del robot.
Si vede che il robot prima marcia sulla terra verso il punto di ingresso nell'acqua prefissato dal giocatore e poi si gira per dirigersi verso l'obiettivo avanzando però più lentamente.
Un conta-tempo misura la durata della traversata misurata in "tic" (il "tic" è un nome di fantasia che adotto come unità di misura del tempo simulato).
Al termine della traversata si rileva una durata di 523 tic.
***
Con [tasto T] si impone al robot di avanzare direttamente sull'obiettivo; si misura una durata di 560 tic.
Tanto per cominciare si vede che il tempo impiegato con la traversata più lunga è minore del tempo impiegato andando in linea retta.
Si pone il problema di cercare il percorso che permette di raggiungere il bersaglio nel minor tempo possibile spostando il punto intermedio utilizzando la tastiera:
con i tasti [freccia Sx] e [freccia Dx] per spostarlo di un passo e
con i tasti [freccia su] e [freccia giù] per spostarlo di 20 passi alla volta.
Si procede con gli esperimenti, modificando quello che si vuole:
con [tasto A] si avvia la marcia del robot;
con [tasto D] il robot si imposta la disposizione di default;
con [tasto N] si imposta una nuova disposizione;
con [tasto R] si riprova l'ultima impostazione;
con [tasto V] si modifica il rapporto fra le velocità.
Gianni Mastropaolo
Esperimento
Con i dati di default si misura quanto segue correlando la posizione del punto di ingresso nell'acqua Xi con la durata t:
Xi = 0 t = 523 tic (base dei confronti)
Xi = 20 t = 532 tic (maggiore)
Xi = -20 t = 518 tic (minore)
Xi = -40 t = 518 tic
Xi = -60 t = 521 tic (cresce)
La posizione di minimo tempo sembra trovarsi tra Xi = -20 e Xi = -40.
Poniamo Xi = -30 e si trova ancora t = 518.
Il progetto calcola il rapporto fra i seni trigonometrici dei due angoli; gli angoli ed il rapporto sono visibili con [tasto S] (per nasconderli premere [tasto H]).
Nel caso con Xi = -30, tale rapporto vale 2,035, molto vicino alla definizione della legge di Snell che in questo esperimento vale 2 pari al rapporto fra le velocità nei due mezzi; questo rapporto viene chiamato "indice di rifrazione relativo".
Se si prova con Xi = -32 il valore è ancora meglio approssimato diventando 1,994.
Provare con altri rapporti di velocità e verificare ancora la legge di Snell.
Si imposta dapprima il rapporto fra le due velocità.
Nota. Sono possibili errori nei risultati a causa del fatto che le posizioni e le durate sono rilevate con numeri interi.
Si può migliorare la precisione dei risultati diminuendo l'intervallo di tempo usato nel ciclo di iterazione per fare avanzare il robot ma bisogna accettare tempi più lunghi o usare la modalità turbo perdendo gli effetti dell'animazione. Per aumentare la precisione dei risultati occorre entrare nello sprite del robot e modificare il valore assegnato alla variabile ∆s inserendo valori più piccoli.
Osservazioni
Il "tic"
Nei progetti realizzati con Scratch il tempo non viene misurato con un cronometro in quanto il tempo da misurare è un tempo simulato.
Il tempo misurato nel progetto e il conteggio del numero delle volte che viene effettuato un ciclo per fare avanzare il robot di un passo.
(Nota. Non c'è niente di strano. La misura del tempo è sempre un conteggio di cicli compiuti da qualche cosa che si ripete periodicamente in continuazione)
L'unità di misura del tempo definito in questo modo non è il "secondo" ma il "ciclo" chiamato da me con il nome di fantasia "tic".
Se impiega 23 cicli allora dico che ha impiegato 23 tic.
In ciascun ciclo viene compiuto un passo in avanti.
La lunghezza del passo compiuto in un ciclo dipende dalla velocità del robot : ∆Ls = passo = v*t.
Se la velocità è ridotta l'avanzamento prodotto dall'esecuzione di un ciclo (quindi nel tempo di un tic) sarà ridotto della stessa proporzione ed infatti si vede il robot rallentare in acqua mentre il conteggio del tempo procede con regolarità.