www.paololazzarini.it



La matematica è quella parte della fisica
dove gli esperimenti costano poco

                                    Vladimir Arnold




Mathesis Brescia 2021
Calcolo delle probabilità con SNAP!
Seminario online per docenti di matematica
della scuola superiore

Paolo Lazzarini




Prima parte
(utilizzare Chrome a schermo intero)

Presentazione

Come fare per lanciare Snap!

La programmazione a blocchetti

video 1 (15 minuti)

Rappresentazione matematica e rappresentazione informatica di un problema. Con Snap!, un linguaggio di programmazione orientato alla didattica, possiamo concretizzare nozioni astratte della matematica come quelle di variabile aleatoria e distribuzione di probabilità. L'ambiente Snap!. Variabili in Snap!. Liste.


video 2 (11 minuti)

Il nostro esperimento: estrazione, senza reimmissione, di due biglie da un'urna che contiene 3 biglie bianche e 5 biglie nere. La variabile aleatoria X = "numero di biglie bianche estratte" con la sua distribuzione di probabilità, rappresenta il modello matematico dell'esperimento. Calcolo della distribuzione di probabilità di X mediante un diagramma ad albero e la probabilità condizionata. Stesso calcolo mediante formule combinatorie.


video 3 (19 minuti)

Rappresentazione informatica dell'esperimento (per il momento simulazione di un singolo esperimento). La prima versione del programma realizzata con Snap! è una versione ingenua che cerca di copiare fedelmente quello che avviene nella realtà; inoltre si riferisce ad una struttura particolare dell'urna (3 biglie bianche, 5 biglie nere) e anche il numero di estrazioni è fissato (2 estrazioni), esattamente come richiesto dal problema iniziale.

Comandi utilizzati: comando PORTA per assegnare un valore ad una variabile, comando (funzione) ELEMENTO che fornisce in output un elemento di una lista avendo in input la sua posizione nella lista, comando AGGIUNGI per aggiungere un elemento alla fine di una lista, comando CANCELLA per eliminare un elemento di una lista, istruzione di controllo SE ... ALLORA ..., comando CAMBIA per incrementare una variabile numerica, operatore NUMERO A CASO per generare un numero intero casuale (con distribuzione uniforme nell'intervallo dato).


video 4 (19 minuti)

Nel video precedente si è visto come simulare un singolo esperimento consistente nell'estrazione senza reimmissione di due biglie. In questo video viene mostrato come ripetere n volte l'esperimento, tenendo conto ogni volta della realizzazione della variabile aleatoria X che conta il numero di biglie bianche estratte. Vengono inoltre calcolate le frequenze assolute e relative dei valori (0, 1, 2) presenti nella lista delle n realizzazioni di X. Il programma viene organizzato in sottoprogrammi (nuovi blocchetti creati da noi) in modo che sia più leggibile la logica delle varie parti del programma. Si verifica che replicando l'esperimento un gran numero di volte, la distribuzione delle frequenze relative tende alla distribuzione di probabilità che era stata calcolata mediante il diagramma ad albero.

Nuovi comandi utilizzati: comando RIPETI per ripetere ciclicamente un blocco di istruzioni.


video 5 (18 minuti)

Creazione della lista relativa alla distribuzione di probabilità della variabile aleatoria X (sulla base delle probabilità calcolate mediante il diagramma ad albero). Realizzazione di un blocchetto con due parametri in entrata e un valore in uscita (funzione): servirà per arrotondare valori numerici alla cifra decimale desiderata. Inizializzazione delle variabili (blocco di "servizio"). Considerazioni finali di natura didattica.


Seconda parte
(utilizzare Chrome a schermo intero)

video 6 (8 minuti)

Limiti della prima versione del programma, in particolare mancanza di generalità. Nuove variabili per parametrizzare (quindi generalizzare) il nostro esperimento: b = numero di biglie bianche, n = numero di biglie nere, k = numero di estrazioni. L'esperimento, se parametrizzato mediante le variabili b, n e k, è rappresentativo di un'intera classe di esperimenti aleatori (molti dei quali nulla hanno a che vedere con l'estrazione di biglie da un'urna) e che sono caratterizzati da una variabile aleatoria X che ha una distribuzione di probabilità che prende il nome di distribuzione ipergeometrica. Si esamina l'algoritmo per gestire k estrazioni.


video 7 (12 minuti)

Come cambiare le dimensioni del pannello. Implementazione della nuova versione del programma in cui sono presenti i nuovi parametri (numero di biglie bianche, numero di biglie nere, numero di estrazioni). L'algoritmo utilizzato è quello illustrato nel video precedente.

Nuovi comandi utilizzati: comando SE ... ALLORA ... ALTRIMENTI ..., comando SOSTITUISCI ELEMENTO per sostituire un elemento di una lista con un dato valore, comando PER i=... A ... per eseguire ciclicamente un blocco di istruzioni con la variabile i che varia da un dato valore a un altro dato valore.


video 8 (6 minuti)

Formula per la distribuzione ipergeometrica. La distribuzione ipergeometrica non riguarda, come si è detto, solo le estrazioni di biglie da un'urna ma ha una portata molto generale: si esamina ad esempio il caso della variabile aleatoria X="numero di assi in una mano di poker"; qui b rappresenta il numero di assi nel mazzo (anziché il numero di biglie bianche nell'urna), n il numero di carte che non sono assi (anziché il numero di biglie nere), k il numero di carte in una mano (anziché il numero di estrazioni); inoltre nel caso delle carte come nel caso delle biglie non c'è reimmissione. Si osserva infine che se c'è reimmissione delle biglie estratte nell'urna, la distribuzione di probabilità di X="numero di biglie bianche estratte" non è più ipergeometrica e prende il nome di distribuzione binomiale (su cui torneremo).


video 9 (13 minuti)

Creazione di due nuovi blocchetti (funzioni): il primo per calcolare coefficienti binomiali, il secondo per calcolare la probabilità che la variabile aleatoria X abbia un certo valore nel caso di una distribuzione ipergeometrica di dati parametri. Uso di variabili locali (visibili e utilizzabili solo all'interno della definizione di un blocchetto) in alternativa alle variabili globali (visibili e utilizzabili in qualsiasi parte di un programma). Possibilità di salvare dei blocchetti da noi creati e che siano di utilità generale: potremo importarli in qualsiasi programma senza doverli ridefinire. Definizione della lista con i valori di probabilità (distribuzione ipergeometrica di dati parametri). Si utilizza il nostro programma per simulare la variabile aleatoria X="numero di assi in una mano di poker" di cui si è parlato nel video precedente.

Nuovi comandi utilizzati: comando VARIABILI DELLO SCRIPT ... (per dichiarare variabili locali all'interno di uno script).


video 10 (18 minuti)

Utilità di un diagramma a barre per visualizzare la forma di una distribuzione. I comandi grafici di Snap! sono di due tipi: comandi cartesiani (assoluti, si riferiscono ad un sistema di coordinate ben definito) e comandi cosiddetti della grafica della tartaruga (comandi relativi, si riferiscono allo stato attuale del cursore grafico cioè alla sua posizione e al suo orientamento). Costruzione dell'elemento base di un diagramma a barre verticali cioè una singola colonna (blocchetto COLONNA, caratterizzato da quattro parametri: altezza, base, fattore di scala applicato all'altezza, etichetta).

Nuovi comandi utilizzati:
Comandi grafici: PULISCI, PENNA GIU', PENNA SU, MOSTRA, NASCONDI
Comandi grafica cartesiana: VAI A x ... y ..., POSIZIONE x, POSIZIONE y
Comandi grafica della tartaruga: RUOTA DI ..., FAI ... PASSI, PUNTA IN DIREZIONE ...


video 11 (11 minuti)

Costruzione di un diagramma a barre utilizzando il blocchetto COLONNA definito nel video precedente. Completamento del diagramma a barre con un asse verticale graduato.

Nuovi comandi utilizzati: comando (funzione) LUNGHEZZA di una lista


video 12 (10 minuti)

Il diagramma a barre con relativo asse graduato verticale realizzato nel video precedente viene utilizzato nel nostro programma. Si introduce inoltre un nuovo blocchetto per un diagramma a barre con due serie di dati. Si visualizzano i diagrammi della distribuzione delle frequenze relative (sulla base delle realizzazioni della variabile aleatoria X) e della distribuzione di probabilità di X (distribuzione ipergeometrica).


video 13 (12 minuti)

Un accenno alla distribuzione binomiale e relativa formula. Si riconsidera l'esperimento consistente nell'estrazione di k biglie da un'urna che contiene b biglie bianche e n biglie nere, questa volta però l'estrazione è con reimmissione: la variabile aleatoria X="numero di biglie bianche estratte" ha in questo caso una distribuzione binomiale (la probabilità di estrarre una biglia bianca è, ad ogni estrazione, sempre uguale a b/(b+n)). Con una piccola modifica del nostro programma (da fare) sarà possibile simulare, oltre alla distribuzione ipergeometrica, anche la distribuzione binomiale. Un esempio per capire quando l'estrazione senza reimmissione equivale (tendenzialmente) a quella con reimmissione e la distribuzione ipergeometrica tende alla binomiale.


video 14 (9 minuti)

Introducendo nel nostro programma una nuova variabile h a cui assegneremo il valore 1 oppure il valore 0 è possibile simulare rispettivamente l'estrazione senza reimmissione e l'estrazione con reimmissione. Si esamina il ruolo della variabile h all'interno del blocchetto ESECUZIONE ESPERIMENTO. Creazione della lista per la distribuzione binomiale. Diagramma per confrontare la distribuzione delle frequenze relative con la distribuzione binomiale e diagramma per confrontare le due distribuzioni di probabilità ipergeometrica e binomiale.


video 15 (19 minuti)

Utilizzando l'ultima versione del programma si esaminano alcune possibili simulazioni su cui riflettere con gli studenti:

a) estrazioni senza reimmissione, basso numero di repliche dell'esperimento, numero di estrazioni confrontabile col numero delle biglie; la distribuzione delle frequenze relative può essere molto diversa dalla distribuzione di probabilità ipergeometrica (e ovviamente anche dalla binomiale);

b) estrazioni senza reimmissione, alto numero di repliche dell'esperimento, numero di estrazioni confrontabile col numero delle biglie; la distribuzione delle frequenze relative tende dalla distribuzione di probabilità ipergeometrica (ma è ben diversa dalla binomiale);

c) estrazioni con reimmissione, alto numero di repliche dell'esperimento, numero di estrazioni confrontabile col numero delle biglie; la distribuzione delle frequenze relative tende dalla distribuzione di probabilità binomiale (ma è ben diversa dalla ipergeometrica);

d) estrazioni senza reimmissione, alto numero di repliche dell'esperimento, numero di estrazioni molto più piccolo sia del numero delle biglie bianche sia del numero delle nere; la distribuzione delle frequenze relative tende alla distribuzione di probabilità ipergeometrica (come ci aspettiamo visto che non c'è reimmissione), ma stavolta la distribuzione delle frequenze relative approssima molto bene anche la distribuzione binomiale.

Si esamina un ultimo semplice problema e si utilizzano alcuni strumenti creati nel corso dello sviluppo del programma e che ora ci fanno comodo per evitare calcoli noiosi. Ancora una volta si mette in luce l'importanza di riconoscere lo stesso modello probabilistico in situazioni aleatorie molto diverse.


Materiali

Prima versione del programma (download)

Prima versione del programma (vista codice)

Seconda versione del programma (download)

Seconda versione del programma (vista codice)

Blocchi importabili (distribuzione ipergeo, arrotonda, distribuzione binomiale,
binom, colonna, diagramma a barre, asse verticale, scrivi numero)



Bibliografia

Snap! reference manual

Uno dei migliori testi di riferimento con video ed esercizi con soluzione: H. Pishro-Nik, "Introduction to probability, statistics and random processes" liberamente disponibile all'indirizzo https://www.probabilitycourse.com, Kappa Research LLC, 2014.