La luna

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!

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 tringolazioni per fare divisoni terreni e rilevamenti. Altre cose imparate delle formule di matematica finaziaria, 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 ero senza una preparazione adeguata 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 ingorante in matematica. Ma sia il metodo di insegnamento alle superiori, sia all’università, sono aridi, cioè 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! Pisogna 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 monodimenzionale anzi a dimenzioni 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

ma 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. Allora 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

\((1,3,4,5,1,0,2,3,6,4,7,5,7,0,,,)\)

Sensore B

\((13,13,10,8,6,11,15,20,22,23,19,12,7,0)\)

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-3} + a_{n-2} + a_{n-1} + a_{n-0} \]

cioè per k generico ogni termine \(b_n\)

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

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 \(t\) 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\)

\[ B = \int A\] \[A = \Delta B \]

Ora


\[z_{m+1} = (\sum_{i=0}^{m} z_i )- z_0 \]

Certamente! In questo caso, possiamo definire la sequenza in modo ricorsivo, dove il valore al tempo \(t_i\) è dato dalla somma degli elementi della sequenza al tempo \(t_{i-1}\) tranne il primo elemento. Possiamo rappresentare questa idea con la seguente equazione:

\[a_{i} = \sum_{j=2}^{n} a_{i-1,j-1}\]

dove \(a_{i,j}\) rappresenta l’\(j\)-esimo elemento della sequenza al tempo \(t_i\).

Iniziamo quindi definendo la sequenza iniziale \(a_1\) come:

# Definizione della sequenza iniziale
z <- c(3,6,7,9,2)

# Numero di elementi nella sequenza iniziale
n <- length(z)

# Numero di elementi da generare
m <- 10

# Creazione di un nuovo vettore che esclude il primo elemento della sequenza originale
z_new <- z[-1]

# Generazione dei m elementi successivi utilizzando l'equazione fornita
for (i in 1:m) {
  z_new[i] <- sum(z_new[(i-1):max(i-n,0)]) + z[n]
}

# Stampa della sequenza generata
cat("Sequenza generata:\n")
Sequenza generata:
cat(z_new, "\n")
2 4 8 16 32 64 126 248 488 960 
# Creazione del grafico della sequenza generata
plot(z_new, type = "l", xlab = "n", ylab = "z_n", main = "Successione")

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(2, 4, 8, 16, 32)

# 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 4 8 16 
# 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.