In una classe di scuola secondaria superiore si sta studiando la convergenza delle lenti. Utilizzando dell'opportuno software si vuole individuare la relazione tra posizione di un oggetto luminoso e posizione della sua immagine (nitida) proiettata da una lente convergente su uno schermo. Qui è illustrato il funzionamento del software. Qui trovi i dati raccolti: la ascissa (rispetto alla lente) dell'oggetto e quella della sua immagine. Usa R (vedi) per rappresentare la relazione tra le due ascisse e, quindi, per mettere in luce, graficamente e numericamente, qual è la relazione algebrica tra le due grandezze.  

Leggo i dati. Essendo pochi i dati un modo è copiare il file sul proprio computer; poi lo posso leggere indicando il percorso o "cambiare la cartella". Oppure posso leggere direttamente i dati da rete (vedi). Procediamo in questo secondo modo.

   Un fascio di raggi di luce paralleli produce attraverso la lente un fascio di luce che converge nel fuoco, e una sorgente luminosa posta nel fuoco produce attraverso la lente un fascio di raggi paralleli. Se un oggetto P è posto ad una distanza x dalla lente maggiore della distanza focale f esso emette raggi in tutte le direzioni; quello parallelo all'asse della lente viene da questa deviato e passa per il fuoco; quello che passa per il centro della lente procede non deviato; essi si intersecano nel punto dove è localizzata l'immagine P' di P.

readLines("http://macosa.dima.unige.it/om/esr/fis/lente.txt",n=4)
# "# ascissa oggetto (x) e ascissa immagine (y) mediante una lente convergente"
# "2.2,-22"
# "2.4,-12"
# "2.6,-8.666666667"
## Capisco che i dati sono in forma di tabella, con i dati separati da ","
T = read.table("http://macosa.dima.unige.it/om/esr/fis/lente.txt",skip=1,sep=",")
data.entry(T)   # osservo i dati in formato foglio di calcolo
str(T)
## Quanti sono i dati?
str(dati)
# 'data.frame':   40 obs. of  2 variables:
#  $ V1: num  2.2 2.4 2.6 2.8 3 3.2 3.4 3.6 3.8 4 ...
#  $ V2: num  -22 -12 -8.67 -7 -6 ...
c(min(X),max(X),min(Y),max(Y))
BF=5; HF=4
Plane(-7,7, -25,25); Point(X,Y, "brown")
## Per tentativi o esaminando il file, battendo: dati
## posso individuare i punti che vanno collegati:
polyl(X[1:20],Y[1:20], "blue")
polyl(X[21:40],Y[21:40], "red")
## Capisco che x = -2 e x = 2 sono asintoti verticali. Ovviamente il comportamento ## è simmetrico rispetto alla posizione della lente. Capisco cha anche y=2 ## e y = 2 sono asintoti, questa volta orizzontali. ## 2 è la distanza del FUOCO dalla lente: raggi di luce che arrivano paralleli (e ## quindi convergenti all'infinito) vengono trasformati in raggi convergenti nel fuoco. l2p(-2,-1, -2, 1, "red"); l2p( 2,-1, 2, 1, "red") l2p(-1, 2, 1, 2, "red"); l2p(-1,-2, 1,-2, "red") ## Per individuare la relazione tra i dati provo a trasformarli e a rappresentare i ## dati trasformati (conviene la rappresentazione grafica rispetto alla numerica). ## Potremmo fare varie prove. Vediamo direttamente come trovare la relazione ## supponendo di sapere che vengono messi in relazione i reciproci dei dati. X1=1/X; Y1=1/Y c(min(X1),max(X1),min(Y1),max(Y1)) # -0.4545455 0.4545455 -0.3333333 0.3333333 Plane(-0.5,0.5, -0.4,0.4); Point(X1,Y1, "brown")
## Capisco che c'è una relazione lineare tra i reciproci delle due distanze. ## Se ho una relazione R2 = a R1 + b. Trovo "a" analizzando (variazione R2)/(variazione R1) i = 1:39; (Y1[i+1]-Y1[i])/(X1[i+1]-X1[i]) # 1 1 1 ... # Vedo che il rapporto è 1. Allora la relazione è R2 = R1 + b. Trovo b facendo R2-R1: X1-Y1 # 0.5 0.5 ... -0.5 -0.5 ... ## Concludendo ho che 1/x + 1/y = ± 1/F con F = 2 = distanza focale. ## Posso controllare la cosa sovrapponendomi al grafico di inziali Plane(-7,7, -25,25); Point(X,Y, "brown") f = function(x) 1/(1/x-1/2); g = function(x) 1/(1/x+1/2) graph1(g,-7,-2, "red"); graph1(f,7,2, "blue")
Vedi, anche, WolframAlpha.