La luna nel pozzo

matematica
Autore/Autrice

Matteo Pedani

Data di Pubblicazione

23 aprile 2023

È come per il fiore. Se tu ami un fiore che si trova su una stella, è dolce, la notte, guardare il cielo. Tutte le stelle sono fiorite Antoine de Saint-Exupéry

La matematica si insegna male!

(ed io l’ho compresa peggio)

La matematica si insegna nella maggior parte dei casi in maniera meccanica. Alle superiori ho fatto il perito agrario, e la matematica che mi è rimasta, era incentrata sulle applicazioni alla topografia, quindi seni, coseni per permettere di fare triangolazioni per fare divisioni dei terreni e rilevamenti. Altre cose imparate delle formule di matematica finanziaria, per l’interesse, semplice e composto. Ed il numero \(e\) non era altro che un espediente per fare calcoli più velocemente.

Ma alla fine delle superiori data la mia passione per le scienze, mi sono iscritto a fisica. Ma anche all’università, i professori esponevano sempre più velocemente le cose in maniera meccanica. Ed io non avevo una preparazione adeguata e capii che non riuscivo ad andare avanti. Mi dedicai al cinema vista che era la mia altra passione. Una passione che coltivavo da quando avevo 14 anni e stampavo le foto in camera oscura. Ho frequentato e diplomato il “Centro Sperimentale di Cinematografia” nella sezione di cinema documentario.

Tutte queste parole per dire una sola cosa che inizio a comprendere solo adesso, non solo io ero e resto un grande ignorante in matematica. Ma sia il metodo di insegnamento alle superiori, sia all’università, sono aridi. Non fanno percepire la reale potenza della matematica. Ma mirano a creare delle persone che possono essere al più dei meri calcolatori. In un mondo dove le macchine sono più brave a fare i calcoli, non è più ammissibile! Bisogna puntare all’opposto ad un mondo dove la matematica apre gli occhi ad orizzonti più ampi.

La luna nel pozzo.

Siamo in un mondo che percepiamo a 5 dimensioni ma che potrebbe essere monodimensionale anzi a dimensioni infinite?

Una sera dopo una giornata faticosa, sono uscito in giardino, ed ho visto la luna piena, e mi sono detto adesso gli faccio delle foto. Ho preso la macchinetta fotografica il cavalletto ed ho iniziato a scattare le foto. Naturalmente dopo pochi minuti la luna scappava dall’inquadratura per effetto della rotazione terrestre.

Poi dopo un po’ mi sono chiesto: E se io potessi aumentare la risoluzione, interpolando una serie di foto del cielo mentre si muove? Così ho fotografato il cielo, facendo delle foto nel più breve tempo possibile dalla macchinetta fotografica.

Quindi ho preso carta e matita ed ho disegnato uno schema del cielo l’obbiettivo della macchina fotografica ed il sensore, cercando di visualizzare la relazione tra di loro.

Poi ho iniziato a pensare come fare ad aumentare la risoluzione ed allora ho immaginato la luce delle stelle come dei numeri più o meno grandi. E mi sono detto il mio sensore mi da dei numeri interi più o meno grandi per ogni pixel , quindi ho fatto una griglia dove mettevo i valori dei pixel.

34 21 12 10 5 2 0 0 2 5
332 22 12 89 3 1 0 2 1 5
56 34 45 35 0 7 3 2 0 3
12 24 10 3 0 1 2 1 5 3
6 7 3 2 0 0 1 2 3 6
3 5 6 2 3 0 2 3 5 2
1 8 3 8 5 2 1 0 3 1
10 20 10 5 2 1 1 1 0 0
13 13 10 4 2 0 0 0 0 1
5 3 4 2 1 0 0 0 0 0

Poi ho detto, facciamo le cose più semplici facciamo una riga per volta. E poi mi sono detto “facciamo finta che” io so quale è il valore del cielo a più alta risoluzione. Il valore del cielo che leggo con il sensore non è altro che lo somma in un dato intorno. Ed ipotizziamo che il cielo non cambi tra uno scatto e l’altro. Ho scritto due sequenze di numeri. La prima lista era la lista del valore di luminosità delle stelle ad alta risoluzione, ipotizzando che tra una foto e l’altra il cielo si sposti di un \(1/k\) di pixel, ne ho fatto la somma ogni \(k\), e visto che la macchina foto grafica non mi avrebbe dato valori infiniti ma numeri interi con un valore massimo finito. Ho limitato i miei numeri da 0 fino a 9. Bene! Ho preso carta e matita e mi sono messo a fare i conti.

Cielo A

\((a_0,a_1,a_2,a_3,...,a_n)\)

Sensore B

\((b_0,b_1,b_2,b_3,...,b_n)\)

In pratica ho due insiemi \(A\) e \(B\) dove ogni termine di \(B\) è dato dalla somma dei \(k\) termini di \(A\) ad esempio con \(K=4\)

\[ b_n = a_{n} + a_{n-1} + a_{n-2} + a_{n-3} \]

Da come abbiamo definito \(A\) e \(B\) possiamo calcolare “quasi” ogni punto di \(B\) è uguale alla sommatoria di \(k\) punti precedenti ad \(A\)

E qui mi sono fermato per parecchio tempo, in pratica non conoscevo neanche il modo per comunicare quello che immaginavo, non avevo parole per comunicarlo.

Mi sono messo a studiare. Ma la vastità degli argomenti é tale che ogni volta ne ero affascinato.

Facendo queste considerazioni abbiamo anche detto che ad ogni passo \(k\) ci spostiamo di \(1\)

E guardando meglio ci accorgiamo che non è tanto importante tutta sommatoria ma il primo e l’ultimo termine della sommatoria. E che la sommatoria potrebbe essere fatta \(k = 1000\) oppure \(k = 50\) oppure \(k =3\) e sarebbero importanti solo i termini \(a_k\) e \(a_0\)

Cioè ogni elemento dell’insieme \(B\) è dato dalla sommatoria in un intorno \(k\) dell insieme \(A\)

Mi sono quindi messo a fare i conti a mano. Usando la formula che empiricamente avevo ipotizzato (nella mia grande ignoranza del fatto che era già stata scoperta centinaia di anni prima)

In pratica ogni punto \(b_n\) di \(B\) è \[ b_n=\sum_{i=0}^{k-1} a_{n-i} \]

\[ B = \int A\] ed anche \[A = f'(B) \]

Per calcolare la derivata numerica di una serie, possiamo utilizzare la formula di differenza finita:

\[f'(x_i) = \frac{f(x_{i+1}) - f(x_i)}{h}\]

dove \(h\) rappresenta l’intervallo tra due punti successivi della serie.

In questo caso, dato che abbiamo a disposizione solo la serie, possiamo approssimare \(h\) con la differenza tra due punti successivi. Quindi, la formula diventa:

\[f'(x_i) = \frac{f(x_{i+1}) - f(x_i)}{x_{i+1} - x_i}\]

Possiamo scrivere il programma in questo modo:

# Definiamo la serie
serie <- c(1,3,4,5,1,0,2,3,6,4,7,5,7,0,0,0,0)

# Inizializziamo il vettore delle derivate
derivate <- numeric(length(serie)-1)

# Calcoliamo le derivate
for (i in 1:(length(serie)-1)) {
  derivate[i] <- (serie[i+1] - serie[i])/(i+1 - i)
}

# Stampiamo le derivate
cat("Derivate calcolate:")
Derivate calcolate:
cat(derivate, "\n")
2 1 1 -4 -1 2 1 3 -2 3 -2 2 -7 0 0 0 
# Creazione del grafico della sequenza generata
plot(derivate, type = "l", xlab = "n", ylab = "z_n", main = "Successione")

In questo esempio, abbiamo definito la serie serie e abbiamo inizializzato il vettore delle derivate derivate con la funzione numeric. Successivamente, abbiamo calcolato le derivate numeriche con un ciclo for che attraversa tutti gli elementi della serie (tranne l’ultimo) e applica la formula di differenza finita. Infine, abbiamo stampato le derivate con la funzione cat.