Il telecomando e i suoi codici “segreti”

SPOILER: Quest’articolo potrebbe essere utile anche a chi vuole clonare il telecomando a infrarossi di un qualunque elettrodomestico, soprattutto nel caso in cui non funzioni con il classico telecomando universale o non sia presente nella lista dei telecomandi delle classiche applicazioni per smartphone!

I comuni telecomandi che utilizziamo per cambiare i canali della TV, spegnere e accendere l’aria condizionata gestire le lucine LED inviano dei segnali al dispositivo che comandano attraverso i raggi infrarossi, sono cioè dotati di un LED (una specie di lampadina) in grado di emettere una luce non visibile dall’occhio umano ma che può essere percepita da particolari sensori.

I segnali vengono codificati attraverso una sequenza di accensioni e spegnimenti, il modo con cui questi segnali sono inviati dipende dal protocollo scelto dal produttore dell’apparecchio da comandare. Infatti di protocolli ve ne sono diversi, ma sembra che il più comune sia il protocollo denominato NEC, che è quello che è stato usato in questo caso.

Con un semplice sensore IR collegato al nostro Arduino e con poche righe di codice è possibile visualizzare attraverso il monitor seriale dell’IDE di Arduino i dati inviati dal telecomando.

#include <IRremoteInt.h>
#include <IRremote.h>
int receiver = 2;
IRrecv irrecv(receiver);
decode_results results;
void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn();
}
void loop()
{
  if (irrecv.decode(&results))
  {
    Serial.print(results.decode_type);    Serial.print("|");
    Serial.print(results.value, HEX);    Serial.print("|");
    Serial.println(results.value, BIN); 
    irrecv.resume();
  }
}

Una volta puntato il telecomando verso il sensore, premendo un tasto qualunque si visualizzano una serie di numeri, come in quest’esempio:

3|FB009A65|11111011000000001001101001100101

La prima cifra chiarisce il tipo di protocollo usato: il 3 sta per protocollo NEC, il 7 invece vale per i telecomandi Samsung e così via. La decodifica completa la trovate nell’header IRremote.h, ed è definita da quest’enum:

typedef enum {
    UNKNOWN = -1,
    UNUSED = 0,
    RC5,
    RC6,
    NEC,
    SONY,
    PANASONIC,
    JVC,
    SAMSUNG,
    WHYNTER,
    AIWA_RC_T501,
    LG,
    SANYO,
    MITSUBISHI,
    DISH,
    SHARP,
    SHARP_ALT,
    DENON,
    LEGO_PF,
    BOSEWAVE,
    MAGIQUEST,
} decode_type_t;

Questi dati sono da interpretare quindi nella codifica NEC. Il protocollo usa una serie di segnali di acceso e spento per codificare le cifre binarie 0 e 1, in un modo che somiglia al codice morse: viene inviato un segnale seguito da una pausa corta (0) o lunga (1).

Vengono quindi inviati due codici, il primo identifica il dispositivo, quindi permette di non inviare all’apparecchio sbagliato il comando. Corrisponde alla prima parte del messaggio ovvero le prime quattro cifre in formato esadecimale (FB00) o le prime 16 se guardiamo al formato binario (1111101100000000) nell’esempio che è stato riportato sopra. Attenzione però questo codice va letto al contrario, cioè 0000000011011111, che trasformato in esadecimale è 00DF (vedi big endian e little endian). Qualunque tasto premiamo sul telecomando questo primo blocco si ripete e quindi solo il dispositivo che lo riconosce esegue il comando inviato nel seguito del messaggio.

I successivi 16 bit equivalgono in realtà ad un messaggio di 8 bit ripetuto due volte, la prima con la codifica binaria usuale, la seconda con i bit invertiti, ovvero con gli 0 al posto di 1 e viceversa, questo si fa evidentemente per intercettare eventuali errori di trasmissione. Quindi la sequenza 1001101001100101 si deve vedere come la coppia di byte 10011010-01100101, che si ottiene invertendo i bit l’una dell’altra, quindi basta considerare solo il primo byte 10011010. Quest’ultimo va letto al contrario, ovvero 01011001, che corrisponde all’esadecimale 59 (l’uso di numeri esadecimali al posto dei decimali in questo contesto è sicuramente più comodo).

A questo punto tutto è pronto, si schiacciano i tasti del telecomando e si prende nota dei codici che vengono mostrati, e in ordine si mettono in un foglio LibreOffice (se volete usate MS Excel, io uso LibreOffice), dove inserisco le formule per codificare il messaggio grezzo: facciamo la prova con il telecomando del vecchio decoder del digitale terrestre 1byOne, cioè di questo:

Premo i tasti uno alla volta in ordine dall’alto verso il basso e da sinistra verso destra e ottengo sul monitor seriale tutti i dati che mi servono; ci saranno anche dati sporchi che vanno cancellati e si popolano le colonne A, B e C questo sheet: questi sono i dati grezzi; nelle colonne E e F vanno spacchettati applicando delle formule:

Nella colonna E infatti inserisco questo:

=STRINGA.ESTRAI(C1;1;16)

E nella colonna F

=STRINGA.ESTRAI(C1;17;8)

A questo punto la conversione tra big e little endian con le tre formule rispettivamente nelle colonne H, I e J: non fanno altro che invertire l’ordine dei bit

=STRINGA.ESTRAI(E1;16;1)&STRINGA.ESTRAI(E1;15;1)&STRINGA.ESTRAI(E1;14;1)&STRINGA.ESTRAI(E1;13;1)&STRINGA.ESTRAI(E1;12;1)&STRINGA.ESTRAI(E1;11;1)&STRINGA.ESTRAI(E1;10;1)&STRINGA.ESTRAI(E1;9;1)
=STRINGA.ESTRAI(E1;8;1)&STRINGA.ESTRAI(E1;7;1)&STRINGA.ESTRAI(E1;6;1)&STRINGA.ESTRAI(E1;5;1)&STRINGA.ESTRAI(E1;4;1)&STRINGA.ESTRAI(E1;3;1)&STRINGA.ESTRAI(E1;2;1)&STRINGA.ESTRAI(E1;1;1)
=STRINGA.ESTRAI(F1;8;1)&STRINGA.ESTRAI(F1;7;1)&STRINGA.ESTRAI(F1;6;1)&STRINGA.ESTRAI(F1;5;1)&STRINGA.ESTRAI(F1;4;1)&STRINGA.ESTRAI(F1;3;1)&STRINGA.ESTRAI(F1;2;1)&STRINGA.ESTRAI(F1;1;1)

Infine la conversione in esadecimale nelle colonne L e M:

=BINARIO.HEX(H1)&BINARIO.HEX(I1)
=BINARIO.HEX(J1)

Siamo pronti, abbiamo tutto, dobbiamo solo trovare il modo di sparare i codici, e su questo ci viene incontro una semplice applicazione per Android che su dispositivi compatibili, ovvero i dispositivi che sono dotati di trasmettitore IR, permette di creare un telecomando completamente personalizzabile. L’applicazione è IR Remote Creator e della keuwlsoft che permette di disegnare in maniera completamente libera il telecomando; l’app si presenta così:

Si possono aggiungere o togliere pulsanti cambiare forma e colore di tutto, insomma è un programma completo, e in più ad ogni tasto è possibile associare i codici da inviare via infrarossi, quindi basta copiare i valori calcolati dal foglio LibreOffice:

Con un po’ di pazienza avremo un telecomando perfettamente equivalente a quello di partenza, molto utile nel caso in cui si teme possa rompersi/scomparire misteriosamente il telecomando originale; molti apparecchi come appunto questo 1byOne non presentano alcun tasto sul dispositivo che ne possa permettere l’utilizzo in mancanza del telecomando e trovare il modo di far funzionare un telecomando universale equivale a tentare la fortuna. Invece ecco qua il nostro apparecchio funzionante!

Ciò che abbiamo ottenuto è valido per quest’apparecchio ma l’ho sperimentato anche su altri dispositivi, e sembra funzionare, ma ogni caso è a se, potrebbe cambiare il protocollo o la dimensione del messaggio potrebbe essere a 8 bit piuttosto che a 16 come nel caso che è stato mostrato. Da questo punto di vista l’app è molto flessibile e permette solo di usare gli standard più comuni ma consente di creare pacchetti di messaggi in formati completamente custom,e ciò significa che veramente non ci sono limiti purché ci si armi di pazienza e buona volontà.

Il passatempo dell’estate 2021

Come ogni estate il tempo libero abbonda e non si sa bene come arrivare a fine giornata senza annoiarsi. Ognuno ha le sue strategie; chi può va in vacanza, ovviamente non tanto per godere del mare e della spiaggia, certo che no, lo scopo è quello di dare un senso a questo vuoto creando delle routine giornaliere che ci impongono di svolgere delle attività: in qualche modo la vacanza ci permette di rimanere in un binario in modo che seppure è chiaro che si perda tempo, tutto ciò è giustificato ed inoltre abbiamo comunque la parvenza di essere indaffarati in qualche tipo di attività.

Ma l’estate è lunga da passare, tre mesi, alla fine ci si annoierà, a meno di non porsi degli obiettivi, dei compiti da svolgere entro la fine dell’estate; ed allora ecco che c’è chi si lancia nello spazio costruendosi un razzo e sparandosi in prima persona (vedi i ricconi Richard Branson, Jeff Bezos che hanno fatto le cose per bene e sono partiti e tornati sulla Terra senza intoppi, emuli di quel Mike Hughes a cui però andò male…) c’è chi legge libri o addirittura pubblica un libro, completa il giornale dei sudoku o si dedica alla ristrutturazione della casa.

Sempre meglio di quelli che si dedicano alle cosiddette “palline clac-clac” che per fortuna non vedo più da qualche estate (ma sono sicuro che torneranno… si ritorneranno… AH-AH-AH! E tu non ci potrai fare nulla! NULLA! AH-AH-AH!

Stiamo parlando quindi di hobby (o per chi conosce meglio la lingua di Shakespeare hobbys), ovvero attività ricreative diverse da quella lavorativa, fatte a volta anche con un reale impegno, come può essere ad esempio scrivere delle amenità su un blog, in generale senza alcun fine di lucro (e in questo caso ci mancherebbe altro).

Un bel passatempo rilassante e alla portata di tutti per esempio è la realizzazione di circuiti guidati da un microcontrollori come Arduino, che possono essere facilmente programmati in linguaggio C: uno spasso insomma. Di progettini da realizzare copiando schemi e codici su blog e pagine web dedicate ce ne sono parecchi, ma è bello dare sfogo alla propria fantasia e immaginazione creando tutto da zero.

L’idea è quella di clonare il gioco del Simon: sono presenti quattro lucette di diversi colori e quattro tasti in corrispondenza. Viene eseguita una sequenza casuale di accensioni e il giocatore deve replicarla. Se ci riesce alla sequenza precedente si aggiunge un nuovo elemento casuale e così via.

Si tratta di un vecchio gioco della Hasbro, in produzione dalla fine degli anni ’70 (del XX secolo) cioè da quando l’elettronica conquistava i primi spazi nell’universo ludico. La realizzazione è semplice perché basta gestire dei diodi led, un cicalino e dei pulsanti. Il microcontrollore usato è l’Arduino nano, molto più piccolo di altri modelli di Arduino e quindi più adatto ad essere usato in dispositivi che hanno anche lo scopo di essere maneggevoli.

Per il diodo led è sufficiente collegare in serie una resistenza adeguatamente dimensionata. Per il led blu è stata usata una resistenza da 140 ohm, mentre per verde, rossa e gialla una da 220 ohm. La resistenza è dimensionata in base alla tensione che assorbe il diodo e tenendo conto che l’intensità di corrente deve rimanere entro determinati limiti, altrimenti si rischia dover buttare il led. La classica formula da applicare è la seguente:

I=\frac{V-V_{led}}{R}

La tensione V è quella in uscita dai pin digitali dell’arduino ed è +5 V, la V_f dipende dal colore, è 3 volt per il blu mentre per rosso, giallo e verde si intorno ai 2 volt; per la precisione rosso 1,8 V, giallo 1,9 V e verde 2,0 V ma poco importa perché le resistenze vanno scelte in modo da avere una corrente al di sotto dei 20 mA.

I pulsanti invece collegano direttamente la tensione con i pin corrispondenti, ma in più in serie aggiungiamo una resistenza da 10 k\Omega verso il GRD. Infine il cicalino (un buzzer passivo) viene aggiunto direttamente tra pin e GRD. Lo schema è essenzialmente questo:

I vari componenti sono abbastanza semplici da inserire nel momento che si comprende lo schema con cui le connessioni si ripetono: l’importante è non fare confusione. Il risultato finale è questo qua:

Quindi abbiamo quattro led di vari colori a cui corrispondono altri quattro pulsanti più un pulsante bianco; il buzzer è il cilindretto nero all’estrema destra. Si tratta in questo momento solo di un hardware spoglio, ovvero senza alcun software che lo gestisca. Il programma di prova che carichiamo funziona perfettamente, quindi andiamo avanti scrivendo un po’ di codice per implementare il gioco: ci serve un generatore di valori casuali che aggiunge ad ogni passo un elemento in una sequenza, visualizzi questa sequenza attraverso l’accensione dei led e controlli che la sequenza replicata dal giocatore corrisponda a quella prevista, insomma un po’ un casino, ma niente di particolare. Il file sorgente è disponibile qui: miniSimon.ino.

Il risultato è illustrato in questo video; ma con lo stesso hardware si potrebbe fare anche di più, si potrebbe immaginare un altro tipo di gioco o altre funzioni; senza cambiare nulla nei collegamenti e modificando solo il codice si può fare tutto quello che la fantasia ci suggerisce; quindi non finisce qui, l’estate è ancora lunga.

[Update]
Infatti non ho impiegato molto tempo per trasformare quest’oggetto in uno strumento musicale: ogni combinazione di tasti produce un tono (nella scala temperata a temperamento equabile, che per chi segue questo blog dovrebbe risultare familiare, altrimenti cliccate qua).

L’associazione tra tasti e note musicali è data dal seguente schema; inoltre premendo il tasto bianco si ottengono le stesse note un’ottava più in alto:

BluVerdeRossoGiallo
Do   
Do#/Reb  
Re   
Re#/Mib  
Mi   
Fa  
Fa#/Solb   
Sol  
Sol#/Lab 
La  
La#/Sib 
Si  
Do 

Il codice si può trovare su questo Pastebin; la cosa interessante di questo codice consiste nel modo con cui definisce le frequenze delle note: definito 523 MHz la frequenza del Do, frequenze delle note successive si calcolano moltiplicando più volte per 1,0594…. ovvero per la radice dodicesima di 2, mentre in molti esempi che ho visto in giro le note erano definite da una serie di direttive #define. Il motivo lo trovate nell’articolo già citato.

   frequency[0]=523;
   f=523;
   for(int i=1;i<25;i++){
      f=f*1.0594630943592952646;
      frequency[i]=(int)(f+.5);
   }

Il risultato non è eccezionale, qui un esempio:

Ma adesso spegniamo le luci e…. magia!

Gesù e la pesca miracolosa del numero 153

Questo articolo tratta nientepopodimeno che di un brano del Vangelo, uno dei libri considerato sacro per un una buona frazione della popolazione umana. Tempo fa, non potendo evitarlo in nessun modo, sono stato ad una funzione religiosa che in alcuni casi è detta anche Messa che, a quanto ho capito è un termine che ha la stessa origine del termine “mensa”: insomma alla fine mangia (infatti dopo abbiamo mangiato). Ogni occasione però può essere buona per imparare qualcosa, e umilmente mi sono messo in ascolto della parola di Giovanni (21: 1-14), che racconta che Simone (alias Petro) e alcuni suoi amici andarono a pescare nel lago di Tiberiade, ma dopo un’estenuante nottata non avevano pescato ancora nulla.

Il vero volto di Gesù: le ricostruzioni moderne basate su metodi scientifici e statistici ci propongono un volto molto diverso dai canoni con cui Gesù è stato rappresentato finora.

Verso l’alba arriva Gesù sulla riva del lago e chiede ai pescatori che si trovavano ad un centinaio di metri dalla riva, se avessero pescato qualcosa, e loro senza riconoscerlo, risposero che non avevano preso proprio nulla! Così Gesù si avvicino alla barca camminando sulle acque pensò di fare qualcosa di utile e fece apparire dei pani e dei pesci affinché tutti potessero sfamarsi disse ai pescatori di buttare le reti sulla destra della barca. Questi ultimi si fidarono e furono subito ricompensati perché a fatica riuscirono a sollevare la rete dall’acqua talmente essa era piena!

Mentre trascinavano la rete a riva Gesù aveva già preparato la brace: disse loro Gesù: «Portate un po’ del pesce che avete preso or ora». Insomma fecero una bella grigliata per colazione! Probabilmente all’epoca era normale, dal momento che non era ancora stato inventato il cappuccino con il cornetto. Prima di cucinarli contarono i pesci (perché mai li hanno contati non si sa) e nel passo è sottolineato che i pesci fossero centocinquantatré. Se finora la storia sembra strana possiamo aggiungere che tutto questo avveniva quando ormai Gesù era morto!

Ebbene a parte tutta la simbologia legata al lago, alla pesca, la rete, il lato destro della barca ecc. quello che mi ha colpito il i numero di pesci: 153. Perché proprio questo numero; sarebbe bastato dire che c’erano più di cento pesci per far capire che ne avevano preso una quantità abbondantissima, invece si è puntualizzato, e questo è strano.

Gli ebrei non erano un popolo di grandi matematici, come potevano essere i babilonesi o i greci, non erano particolarmente interessati alla geometria, non avevano grosse basi di aritmetica ma a loro i numeri interessavano molto! Per loro la parola era importante, anche la parola scritta, e i numeri erano in stretta relazione con la parola perché il sistema di numerazione ebraico prevedeva l’uso dei simboli del loro alfabeto per rappresentare anche i numeri oltre che le parole.

1אaleph10יyud100קquf
2בbeit20כkhaf200רresh
3גghimel30לlamed300שshin
4דdalet40םmem400תtav
5הhey50נnun500ךkhaf sofit
6וvav60סsamekh600םmem sofit
7זzain70ע‘ain700ןnun sofit
8חcheit80פpeh800ףpeh sofit
9טtet90צtzadde900ץtzadde sofit
Sistema di numerazione ebraico

Basta quindi giustapporre questi caratteri per ottenere qualcosa che si può interpretare come parola o come numero (ovviamente si legge nell’ordine opposto a quello che usiamo noi). I numeri seguono una logica additiva, così כלב che in ebraico significa cane è anche il numero 2+30+20=52, e al contrario un numero poteva rappresentare o addirittura evocare qualcosa: stiamo parlando della Cabala Ebraica, argomento di cui non conosco assolutamente nulla per cui evito di dire sciocchezze chiudendo qui il discorso, ma ricordando che è un argomento studiato da millenni e che la Bibbia è piena di riferimenti cabalistici.

Il nostro 153 contiene probabilmente riferimenti cabalistici che chiariscono il significato metaforico della pesca abbondante (su questo non mi dilungo), ma è interessante anche motivi prettamente numerici, e ciò fa pensare che il 153 non è un numero scelto a caso.

Di Albrecht Dürer – Sconosciuta, Pubblico dominio, Collegamento

Il numero 153 non è un numero primo (questo lo avrebbe dato una connotazione matematicamente interessante), è quindi un numero composto: 153=32 x 17. Sembrerebbe una cosa abbastanza banale, ma a ben guardare 32 = 3 x 3 ovvero una griglia di 3 quadrati per ogni lato che ricorda un quadrato magico o se vogliamo anche il gioco del sudoku. In questa griglia (una rete come quella per prendere i pesci o come la graticola usata per cucinarli) inseriamo il numero 17 in ogni riquadro libero, la somma è 153 (ovviamente): quadrati magici, magia, cabala, esoterismo, la situazione si fa interessante…

Osserviamo che il numero 153 ha interessanti proprietà: ad esempio è un numero triangolare! Spieghiamo cosa significa: è un numero dato dalla somma di un certo numero di interi consecutivi: 6=1+2+3 quindi 6 è un numero triangolare.

I numeri triangolari sono 1, 3, 6, 10, 15, 21, 28, ecc… e sono tutti quelli che si possono scrivere nella forma (n+1)n/2 e hanno questo nome perché… basta vedere il disegno. Anche 153 è quindi triangolare, infatti:

1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 = 153

Ed è spuntato (per caso?… non credo) ancora una volta il numero 17! Ed ora: Abracadabra!

Il 153 è anche un numero esagonale, un numero del tipo (2n2 – n): fanno parte della sequenza 1, 6, 15, 28, 45, 66, 91, 120, il nostro 153, 190 e tanti altri… e si chiamano esagonali perché…

Ma possiamo tranquillamente continuare: probabilmente non tutti sanno che il punto esclamativo è usato anche per indicare un’operazione matematica: il fattoriale. Ad esempio con 5! si rappresenta il prodotto 1 x 2 x 3 x 4 x 5, per cui 5! = 120 ovvero è il prodotto di tutti gli interi fino al numero stesso. Facendo un po’ di conti è facile scoprire che 1! + 2! + 3! + 4! + 5! =153.

Cosa si può dire riguardo le cifre di 153? Se di considerano i cubi delle cifre e le si sommano 13+53+33=… lo devo pure dire? Non lo indovinate? È proprio 153 e ciò fa di lui un numero narcisista (non è un appellativo messo a caso, è il termine matematico con cui si definisce questa classe di numeri).

Lasciando da parte le relazioni aritmetiche illustrate (senza contare quelle non illustrate) passiamo alla valenza geometrica del 153. Consideriamo due circonferenze dello stesso raggio fatte in modo che il centro dell’una passi per la circonferenza dell’altra. I punti A e B sono i centri, C ed D sono le intersezioni tra le due circonferenze ed il segmento AB interseca CD nel punto E. È facile notare che ABC è un triangolo equilatero e pertanto è si ricava che EC=√3/2 AB.

In sostanza il rapporto CD/AB è √3 (o se vogliamo, fatto 1 il raggio AB, il segmento DC è √3). Ma fin dall’antichità √3 è stato approssimato dal rapporto 265/153 (con la calcolatrice potete facilmente trovare che (265/153)2=2.9999… praticamente 3). Questa certo è un’ulteriore strana coincidenza, ma…

Questo simbolo (in rosso) rappresenta un pesce (in fondo siamo partiti dai pesci) ed è il più antico simbolo della cristianità e al suo interno c’è il 153!

Tutto molto bello, intanto la messa è finita, ho imparato qualcosa e me ne posso andare in pace contento perché almeno non ho perso il mio tempo.

È il modello SIR bellezza!

Il modello SIR permette di descrivere il diffondersi di un’epidemia in una popolazione e si applica in quei casi in cui nella popolazione \mathbb{N} si possono distinguere 3 sottoinsiemi a due a due disgiunti, composti da individui “suscettibili” \;\mathbb{S} (cioè sani e suscettibili di contagio), gli “infetti” \;\mathbb{I} (cioè in grado di trasmettere l’infezione anche se non manifestano sintomi) ed infine i “rimossi” \;\mathbb{R}, cioè tutti quelli che precedentemente erano infetti (non importa se adesso guariti o morti).
Questo modello èstato ideato da Kermack e McKendrick negli anni 20 del 20° secolo.

Si basa su queste relazioni insiemistiche ed alcune ipotesi semplificative:

  • \mathbb{N}=\mathbb{S} \cup \mathbb{I} \cup \mathbb{R}
  • \mathbb{S} \cap \mathbb{I} = \mathbb{S} \cap \mathbb{R} = \mathbb{I} \cap \mathbb{R} = \emptyset

Ipotesi 1
L’insieme \mathbb{N} si suppone statico (in questo modello la popolazione totale non aumenta né diminuisce, come succede in modelli più complessi per via di migrazioni e nuove nascite), ma gli insiemi \;\mathbb{S}, \;\mathbb{I} e \;\mathbb{R} variano nel tempo: avremo cioè una successione di insiemi distinti da indici crescenti. L’indice 0 corrisponde alle condizioni iniziali e i seguenti si presentano dopo un periodo fisso di tempo.

  • \mathbb{S}_0, \; \mathbb{S}_1,\; \mathbb{S}_2,\; \mathbb{S}_3,\; \dots
  • \mathbb{I}_0, \; \mathbb{I}_1,\; \mathbb{I}_2,\; \mathbb{I}_3,\; \dots
  • \mathbb{R}_0, \; \mathbb{R}_1,\; \mathbb{R}_2,\; \mathbb{R}_3,\; \dots

Indichiamo rispettivamente con \mathcal{N} la numerosità dell’insieme \mathbb{N}, \mathcal{S}_n quella di \;\mathbb{S}_n, \mathcal{I}_n quella di \;\mathbb{I}_n e \mathcal{R}_n quella di \;\mathbb{R}_n.

Ipotesi 2
Inizialmente (quasi) tutta la popolazione è sana; gli infetti e i rimossi sono pochissimi.
\mathcal{S}_0 \approx \mathcal{N}
\mathcal{I}_0 \approx 0
\mathcal{R}_0 \approx 0

Conseguenza 1
Successivamente questi insiemi variano ma per l’ipotesi 1, per ogni n: \mathcal{N} = \mathcal{S}_n + \mathcal{I}_n + \mathcal{R}_n.

Ipotesi 3
Tra i tre insiemi avviene un continuo scambio, i suscettibili possono diventare infetti, gli infetti possono possono a loro volta passare tra i rimossi. I rimossi infine (nella nostra versione semplificata del modello) restano nel loro stato in maniera definitiva: non è possibile per loro tornare nello stato di suscettibilità ed eventualmente infettarsi nuovamente (in altri modelli i rimossi possono tornare ad essere suscettibili).

Ipotesi 4
L’infezione ha una certa probabilità di avvenire quando un suscettibile incontra un infetto. Ancora semplificando, un individuo suscettibile si incontra con qualcuno, e questi sarà infetto con probabilità \frac{\mathcal{I}}{\mathcal{N}}. Se ogni individuo suscettibile incontra k altri individui, tra di essi ci saranno quindi k \; \frac{\mathcal{I}}{\mathcal{N}} infetti.

Ogni incontro con un infetto comporta la trasmissione dell’infezione con probabilità p; molto all’ingrosso (p \; k \; \frac{\mathcal{I}}{\mathcal{N}}) rappresenta la probabilità che un individuo sano diventi infetto. Moltiplicando quest’espressione per \mathcal{S} si ottiene il totale delle persone sane che si infettano.
Sia \beta = p\;k, in un generico intervallo di tempo possiamo descrivere in questo modo la variazione dei suscettibili:

\displaystyle \Delta \mathcal{S} = - \frac{\beta}{\mathcal{N}} \; \mathcal{S} \; \mathcal{I}.

Il segno meno rende conto del fatto che il flusso di individui è in uscita da \;\mathbb{S}.
Gli infetti aumentano della stessa quantità, in quanto lo stesso flusso per loro è in ingresso, mentre diminuiscono del numero di individui che passano a rimossi.

Ipotesi 5
La variazione dei rimossi è proporzionale al numero di infetti; nell’intervallo di tempo stabilito una percentuale \gamma fissa di infetti è rimossa: \Delta \mathcal{R} = \gamma \; \mathcal{I}.

Ipotesi 6
L’insieme degli infetti ha quindi il flusso \Delta \mathcal{S} in ingresso ed il flusso \Delta \mathcal{R} in uscita, quindi la variazione degli infetti è:

\displaystyle \Delta \mathcal{I}= \frac{\beta}{\mathcal{N}} \; \mathcal{S} \; \mathcal{I} - \gamma \; \mathcal{I}

Conseguenza 2
Le stesse relazioni in sintesi, che rappresentano le variazioni tra elementi consecutivi di \mathcal{S}, \mathcal{I} e \mathcal{R}:
\displaystyle \begin{cases} \Delta \mathcal{S} = - \frac{\beta}{\mathcal{N}} \; \mathcal{S} \; \mathcal{I}\\ \Delta \mathcal{I}= \frac{\beta}{\mathcal{N}} \; \mathcal{S} \; \mathcal{I} - \gamma \; \mathcal{I}\\ \Delta \mathcal{R} = \gamma \; \mathcal{I} \end{cases}

Per intervalli di tempo infinitesimi arriviamo quindi alle relazioni
\displaystyle \begin{cases} \frac{d \mathcal{S}}{dt} = - \frac{\beta}{\mathcal{N}} \; \mathcal{S} \; \mathcal{I}\\ \frac{d \mathcal{I}}{dt}= \frac{\beta}{\mathcal{N}} \; \mathcal{S} \; \mathcal{I} - \gamma \; \mathcal{I}\\ \frac{d \mathcal{R} }{dt}= \gamma \; \mathcal{I} \end{cases}

Queste ultime consistono in un sistema di equazioni differenziali, per la quale la ricerca di una soluzione analitica risulta alquanto complessa. Dal film del 2016, Il diritto di contare (Hidden figures), ci arriva questo suggerimento:


Hidden figures, 2016 – Il metodo di Eluero

Quindi risolviamo le equazioni numericamente con il metodo di Eulero. Per \mathcal{N}=3000, assegnando le condizioni iniziali coerenti con l’Ipotesi 2:
\begin{cases} \mathcal{S}(0) = 2998 \\ \mathcal{I}(0) = 1 \\ \mathcal{R}(0) = 1 \end{cases}
e assegnando un valore parametri \beta=1,3 e \gamma=1,1 basta un foglio di LibreOffice Calc per ottenere

\mathcal{n} \mathcal{S} \mathcal{I} \mathcal{R}
0 2998 1 1
1 2996,70086666667 1,29913333333333 2
2 2995,0138506061 1,68701606056341 3,29913333333333
3 2992,82437480348 2,18947580261902 4,98614939389674
4 2989,98486429843 2,83951050505227 7,17562519651576
5 2986,30582381118 3,67904048725316 10,015135701568
6 2981,54490313016 4,7609206810192 13,6941761888212
7 2975,39378032086 6,15112280930323 18,4550968698404
8 2967,46290821638 7,93087210447592 24,6062196791436
9 2957,26459506978 10,1983131465975 32,5370917836195
10 2944,19564723071 13,0689478390759 42,735404930217
11 2927,52204684931 16,6736003814 55,8043527692928
12 2906,37003600532 21,1520108439915 72,4779531506928
13 2879,73062211408 26,6394138912358 93,6299639946843
14 2846,48774320772 33,2428789063639 120,26937788592
15 2805,48338268682 41,0043605208914 153,512256792284
16 2755,63399346123 49,8493892255929 194,516617313175
17 2696,10843580979 59,5255576514403 244,366006538768
18

Considerazione
Dal passo 1 in avanti otteniamo dei valori decimali per le numerosità, anche se gli insiemi sono discreti, pertanto ci aspettiamo solo valori interi: non ci possono essere 1,3 infetti in una popolazione. Come si interpretano questi dati? Ebbene dobbiamo tenere conto che quello che stiamo calcolando ha un valore probabilistico. Immaginiamo di avere decine o centinaia di insiemi di popolazioni tutte di dimensione \mathcal{N}=3000. In ognuna di esse, a ciascun passo, si conteranno un numero intero di sani, infetti e rimossi. Ad esempio in alcune popolazioni potrebbero esserci 1 infetto, in altre 2, in altre anche 3 o più. La media degli infetti tra tutte le popolazioni sarà decimale.

Produciamo anche un grafico di tali sequenze numeriche:

Si tratta di un andamento verosimile: all’inizio tutta la popolazione è sana (in blu), ma i sani diminuiscono rapidamente; gli infetti (in rosso) crescono ma numericamente sono sempre in quantità contenuta, dal momento che si spostano rapidamente tra i rimossi (guariscono o muoiono), mentre i rimossi (in giallo) aumentano.
La diminuzione dei sani però inizia a rallentare fino a fermarsi: il numero di sani e dei rimossi si stabilizzano intorno ad alcuni valori: si verifica ciò che in matematica si definisce asintoto. Il numero di sani infatti non scende oltre le 1676 unità, si annulla il numero di infetti, mentre i rimossi si attestano definitivamente intorno ai 1324.

Tale fenomeno si interpreta immaginando che raggiunto una certa soglia di rimossi l’infezione non può diffondersi, dal momento che nella relazione \frac{d \mathcal{I}}{dt}= \frac{\beta}{\mathcal{N}} \; \mathcal{S} \; \mathcal{I} - \gamma \; \mathcal{I} il numero di sani è inferiore rispetto all’inizio e fornisce sempre meno contributo all’incremento di \mathcal{I}. Il punto critico è rappresentato dal momento in cui \frac{\beta}{\mathcal{N}} \; \mathcal{S} \; \mathcal{I} = \gamma \; \mathcal{I}; da quel momento il numero di infetti inizia a diminuire fino ad annullarsi.

Da questo grafico si comprende l’andamento del numero di infetti; nel caso in esame il picco è intorno ai 90 infetti. Volendo approfondire l’analisi, consideriamo il rapporto \frac{d\mathcal{I}}{d\mathcal{S}} che risulta in maniera immediata corrispondere a:

\displaystyle \frac{d\mathcal{I}}{d\mathcal{S}}=\frac{\gamma}{\beta} \frac{N}{S}-1

Definendo R_0 = \frac{\beta}{\gamma}, otteniamo

\displaystyle \frac{d\mathcal{I}}{d\mathcal{S}}=\frac{\mathcal{N}}{R_0} \frac{1}{\mathcal{S}}-1

Ciò significa che il numero di infetti avrà un massimo e smetterà di crescere per \frac{\mathcal{N}}{R_0} \frac{1}{\mathcal{S}}-1 = 0 ovvero per \mathcal{S} =\frac{\mathcal{N}}{R_0}, e quindi nel nostro esempio \mathcal{S} =\frac{3000}{1,3} \approx 2308.

La relazione analitica che lega \mathcal{I} e \mathcal{S} si determina risolvendo l’integrale:

\displaystyle \mathcal{I}=\int{(\frac{\mathcal{N}}{R_0} \frac{1}{\mathcal{S}}-1 )} d\mathcal{S} = \frac{\mathcal{N}}{R_0} \ln{\mathcal{S}}-\mathcal{S} + c.

dove la costante di integrazione c si determina dalle condizioni di contorno: \mathcal{I}(\mathcal{N})=0, ovvero \frac{\mathcal{N}}{R_0} \ln{\mathcal{N}}-\mathcal{N} + c = 0, quindi c = \mathcal{N} - \frac{\mathcal{N}}{R_0} \ln{\mathcal{N}}. In definitiva la relazione analitica che lega il numero di sani e il numero di infetti è

\displaystyle \mathcal{I}(\mathcal{S})= \frac{\mathcal{N}}{R_0} \ln{\mathcal{S}}-\mathcal{S} + \mathcal{N} - \frac{\mathcal{N}}{R_0} \ln{\mathcal{N}}.

Il cui grafico, per i valori in esame, disegnato in GeoGebra è il seguente:

dove solo i valori positivi di \mathcal{I} hanno significato.
Interpretiamo questo grafico: ad un estremo il suo valore è \mathcal{S}=3000, ovvero la condizione iniziale. La curva tocca l’asse delle ascisse anche in un altro punto, che si può determinare numericamente. Si possono applicare diversi metodi numerici o trovare la soluzione tramite GeoGebra; questa volta però andiamo su Wolfram Alpha, ottenendo:

Il numero di infetti sarà quindi in totale 1731 (una stima in linea con il metodo di Eulero applicato sopra, ma certamente più precisa, dal momento che il metodo comporta delle approssimazioni). L’insieme degli infetti si svuota e alla fine questi 1731 saranno tutti rimossi. Di conseguenza alla fine i sani saranno \mathcal{S}=3000 - 1731=1269. Quando il numero di sani raggiunge questa quota l’infezione si spegne da sola perché non trova spazio per diffondersi; si parla in questo caso di “immunità di gregge“.

Poiché il massimo degli infetti si avrà per \mathcal{S} =\frac{\mathcal{N}}{R_0}, calcoliamo \mathcal{I}(\frac{\mathcal{N}}{R_0})= \mathcal{N} - \frac{\mathcal{N}}{R_0} - \mathcal{N} \ln(R_0), che nel caso del nostro esempio corrisponde a \mathcal{I} \approx 87. Infatti buttando la nostra formula in pasto a Wolfram otteniamo:

Da tutto questo preambolo matematico possiamo dedurre che:
Date le condizioni di contorno \mathcal{N} e R_0, l’andamento dell’infezione è, per grandi numeri, deterministica, così come in cinematica lo è il moto di un proiettile. A partire da questi due valori è possibile determinare

  • il numero totale di persone che si infetteranno, e in base alla mortalità dell’infezione anche il numero totale di morti
  • il massimo numero di infetti, e quando si verifica
  • stabilire quando l’infezione comincia a calare
  • il momento in cui si raggiunge l’immunità di gregge e l’infezione scompare autonomamente

Esempio del covid-19 in Lombardia, 10 milioni di persone e in un fase (fonte ministero della salute)R_0 \approx 3, applicando lo stesso modello in totale il numero di infetti sarebbe stato intorno ai 9.400.000, con una punta di 3.000.000 di infetti contemporaneamente.

L’unica e reale soluzione per fermare qualunque infezione è raggiungere l’immunità di gregge, e ciò si può fare in due modi:

  • trovare il modo di far transitare artificialmente il maggior numero di individui della popolazione sana tra i rimossi con la vaccinazione
  • lasciare che l’infezione faccia il suo corso diffondendosi tra la popolazione fino a fermarsi da sola

 

Nel caso del covid-19, dal momento che la prima opzione non era disponibile, c’è stato chi si è orientato sulla seconda opzione, si tratta dell’asse Trump-Bolsonaro-Putin-Johnson. Come è andata? Bene direi…

Alternative? Anche se si può definire solo un metodo per “tamponare”, ha il vantaggio di funzionare: diminuire il più possibile il fattore R_0.
Ricordando la definizione R_0 = \frac{\beta}{\gamma}, possiamo aumentare \gamma, ovvero il fattore di guarigione degli infetti, ottenendo come effetto secondario una riduzione di R_0 e quindi della diffusione dell’epidemia. Ma l’aumento di \gamma ha dei limiti, ci si può impegnare a guarire più persone e più velocemente ma non sarà possibile migliorare moltissimo questo parametro. Meglio quindi provare ad aumentare \beta.
Il parametro \beta, per l’ipotesi 4 è dato da due fattori: \beta = p \;k. la probabilità che nell’incontro con un infetto ci si possa contagiare rappresentato da p e k il numero di incontri che compie mediamente una persona: come ridurre questi due fattori?
È a questo punto che entra in gioco l’eroe di questa storia, l’unico che è in grado di capire tutto quello che è scritto sopra ed altro ancora e che ha risolto in maniera brillante la situazione: il sindaco, presidente, commendatore, ministro, eccellenza, onorevole, bersagliere Vincenzo De Luca.

Una figura che rispetto ai vari Trump, Bolsonaro, Putin e Johnson spicca per ardire, acume politico professionalità, determinazione.
Nessuno saprà mai com’è andata ma si può immaginare che la scena non sia stata molto diversa da questa:

A Beautiful Mind (film biografico ispirato alla vita del matematico John Nash), film del 2001, la scena del Pentagono

  • riduzione di k: isolamento
  • riduzione di p: mascherine
  • A questo punto l’Eroico Presidente interviene con una serie di ordinanze a partire dal 26 febbraio e nei giorni successivi, che decretano il fermo totale di tutta la Campania: nessuno entra o esce più di casa, niente bar, niente barbiere, neppure una passeggiata, al limite se hai il cane lo puoi portare fuori, ma solo appena fuori casa tua.
    E per chi sgarra? La risposta a tutto è: il lanciafiamme! Il parametro k passa immediatamente a zero!

    20 marzo 2020 – De Luca che minaccia l’intervento dei Carabinieri con il lanciafiamme

    Ma non basta, ci vogliono le mascherine quando si va a fare la spesa; ed ecco l’altra idea geniale: le mascherine obbligatorie, sempre, ovunque. Premesso che non si esce di casa, se dopo tre giorni che hai finito il cibo hai fame puoi andare a comprarlo, ma devi avere la mascherina e anche p scende a picco.


    27 marzo 2020 – De Luca mostra le speciali mascherine da Bugs Bunny

    Ed è un successo: la Campania è salva, grazie a De Luca, che adesso giunge al massimo dei consensi, e a settembre andrà all’incasso. Sì, perché a settembre ci saranno le elezioni regionali e si prevede che De Luca debba raccogliere voti a mani basse. Ben per lui!

    Ma si affaccia all’orizzonte un cupo e inquietante fenomeno. Le liste elettorali che appoggiano il Presidente si stanno gonfiando in maniera smisurata, si è verificata una convergenza inaspettata verso le liste che appoggiano De Luca. Analogamente a quanto avviene alla popolazione degli infetti nel modello SIR, anche in questo caso la crescita dei transfughi è esponenziale: sono tutti passati dall’altra parte!

    I male informati stanno diffondendo la voce che, fatti i conti sul numero di voti che andranno a De Luca, molti candidati si sono orientati verso la lista vincente e ciò a prescindere dal loro passato, buttandosi alle spalle militanze decennali, orientamenti consolidati e questo solo per una poltrona: basse insinuazioni.

    Le convergenze, o per meglio dire le conversioni sono molte e di alto rango e De Luca di certo non disprezza il peso elettorale dei nuovi arrivati, conosciamo la sua magnanimità e il suo spirito di accoglienza. Ed allora vediamo salire sul carro ben note personalità, che oltre a portare la loro presenza si accodano con tutto il loro carrozzone. Qualcun altro si sentirebbe “imbarazzato” da tanto inaspettato affetto che lo circonda, da tutte le persone che ti appoggiano, dal tipo di persone che ti appoggiano, ma lui no, raccoglie da qualunque parte: è il modello SIR bellezza! E tu non puoi farci niente! Niente!

    Costruzione matematica della scala pitagorica

    I moderni strumenti musicali producono una serie di note codificate in base a criteri che hanno avuto una interessante evoluzione nel corso dei secoli.

    Oggi sappiamo il suono è un’onda trasmessa in un mezzo, caratterizzata quindi da intensità, lunghezza d’onda e frequenza nonché dalla propria forma d’onda. L’immagine che segue rappresenta un’onda sinusoidale, che si può descrivere cioè tramite la funzione trigonometrica seno. Ma la forma dell’onda può anche essere diversa, ad esempio quadra o triangolare. Il suono prodotto avrà una differente connotazione.

    La caratteristica dell’onda che ci interessa in questo caso è la frequenza, ovvero il numero di oscillazioni che l’onda effettua in un secondo (1 Hz =1 ciclo/s). Ad onde con differente frequenza corrispondono differenti percezioni uditive. Le note più gravi hanno una frequenza bassa, quanto tanto più sono acute tanto più la frequenza sarà alta. La corrispondenza tra nota e frequenza è stata codificata per la prima volta da Pitagora nel VI secolo a.C. in maniera analoga a quanto esposto di seguito.

    Una corda posta in tensione e fatta vibrare produce un suono. Egli studiò il modo con cui i suoni variano a mano a mano che si riduce la lunghezza della corda: la frequenza con cui la corda vibra aumenta quando la corda viene accorciata e i suoni ottenuti risultano più acuti. Si può notare che il suono prodotto da una corda completamente estesa confrontato con il suono dalla stessa corda ridotta alla metà risulta sovrapponibile benché diverso. Ciò è dovuto al fatto che dimezzando la lunghezza della corda la sua frequenza si raddoppia: le due onde sonore hanno forme strettamente correlate.

    In questo caso si dice che i suoni prodotti dalle due corde hanno la distanza di una ottava. Nella notazione moderna le note che distano un’ottava hanno lo stesso nome, infatti entrambe le note di seguito rappresentate sono chiamate Do.

    Ottava

    Raddoppiando o dimezzando la frequenza di una nota si produce la stessa nota trasposta di un’ottava.

    Due suoni prodotti in sequenza possono dare un effetto “gradevole” o “sgradevole” all’orecchio umano.
    Tra i vari abbinamenti possibili Pitagora notò che riducendo la corda ad \frac{1}{3} o, il che è lo stesso, ai \frac{2}{3} (suonando cioè la nota un ottavo superiore), la nota prodotta risulta “gradevolmente abbinata” alla prima nota.

    Il rapporto tra le frequenze di queste due note è 3:2, l’inverso del rapporto tra le lunghezze delle corde.
    Ciò rende ragione della sensazione di “giusto abbinamento”: ogni due oscillazioni della prima corda la seconda oscilla 3 volte.

    La nota separata dalla prima da un rapporto tra le frequenze di \frac{3}{2} viene detta quinta giusta.

    Quinta

    Moltiplicando per \frac{3}{2} (o per \frac{2}{3}) la frequenza di una nota si produce una nota che “si abbina bene” con la prima.

    Mediante un procedimento matematico si individuano i rapporti che corrispondono a nuove frequenze. Proseguendo di quinta in quinta si ottiene una sequenza di note che “suonano bene insieme”. La prima nota è in rapporto 1:1 con se stessa, la seconda è 3:2 della prima. Individuiamo una nuova nota in modo che abbia un rapporto 3:2 con quest’ultima; poiché \frac{3}{2} × \frac{3}{2} = \frac{9}{4}, essa è in rapporto 9:4 con la prima.
    Poiché \frac{9}{4} > 2 questa nota ha superato l’ottava della nota base; riportiamola quindi nell’ambito della prima ottava dividendo la frazione per 2:

    \frac{9}{4} × \frac{1}{2} = \frac{9}{8}.

    Otteniamo quindi un suono con un rapporto di frequenza 9:8 rispetto alla nota di riferimento.

    Cerchiamo adesso la quinta del suono 9:8 moltiplicando questo rapporto per \frac{3}{2} e otteniamo 27:16.
    La successiva è \frac{27}{16} × \frac{3}{2} =81:32. Anche quest’ultima frazione rappresenta una nota esterna all’ottava, per cui va divisa per 2, ottenendo 81:64. L’ultimo rapporto sarà \frac{81}{64} × \frac{3}{2} = 243:128.
    Aggiungiamo infine il suono la cui quinta è 1:1, invertiamo cioè il calcolo ottenendo la nota 2:3, infatti la quinta di 2:3 è \frac{2}{3} × \frac{3}{2} = 1.
    Questa nota va riportata anch’essa nella giusta ottava moltiplicandola 2 e ottenendo infine 4:3.
    Questo procedimento ha generato la sequenza di rapporti:

    1:1, 3:2, 9:8, 27:16, 81:64, 243:128, 4:3

    che ordinanti in senso crescente diventano

    1:1, 9:8, 81:64, 4:3, 3:2, 27:16, 243:128

    A queste note associamo convenzionalmente dei nomi, che per tradizione sono nell’ordine Do, Re, Mi, Fa, Sol, La, Si.

    Il rapporto tra due note successive è \frac{9}{8} tranne che tra Fa e Mi e tra Si e Do per i quali è \frac{256}{243}. Il primo intervallo è detto tono, mentre il secondo è il semitono.

    La scala musicale così ottenuta può essere ampliata aggiungendo un suono tra le note separate da un tono.
    Ad esempio dal Do si può passare al Do♯ aggiungendo un semitono ovvero \frac{256}{243}. Il Do♯ sarà rappresentato quindi dalla frazione 1 × \frac{256}{243} = \frac{256}{243}.
    A sua volta il Re♯ si otterrà da \frac{9}{8} × \frac{256}{243} = \frac{2304}{1944} = \frac{32}{27}. In conclusione:
    Do♯ = 1 × \frac{256}{243} = \frac{256}{243}
    Re♯ = \frac{9}{8} × \frac{256}{243} = \frac{32}{27}
    Fa♯ = \frac{4}{3} × \frac{256}{243} = \frac{1024}{729}
    Sol♯ = \frac{3}{2} × \frac{256}{243} = \frac{128}{81}
    La♯ = \frac{27}{16} × \frac{256}{243} = \frac{16}{9}.


    Si può notare che spostarsi di due semitoni non equivale a spostarsi di un tono, infatti se dal Re ci si sposta di un semitono all’indietro si ottiene (\frac{9}{8})/(\frac{256}{243})=\frac{2187}{2048}.
    Questa nota, diversa dal Do♯, è detta Re♭.

    Tra il Do♯ e il Re♭ vi è una distanza di (\frac{2187}{2048})/(\frac{256}{243})= \frac{531441}{524288} ≅ 1,0136.
    Tale intervallo è il cosiddetto comma pitagorico, che seppure sia piccolo è apprezzabile dall’orecchio umano.

    Le seguenti note completano la scala cromatica:
    Re♭ = (\frac{9}{8})/(\frac{256}{243}) = \frac{2187}{2048}
    Mi♭ = (\frac{81}{64})/(\frac{256}{243}) = \frac{19683}{16384}
    Sol♭ = (\frac{3}{2})/(\frac{256}{243}) = \frac{729}{512}
    La♭ = (\frac{27}{16})/(\frac{256}{243}) = \frac{6561}{4096}
    Si♭ = (\frac{243}{128})/(\frac{256}{243}) = \frac{59049}{32768}


    Questa è la rappresentazione delle note sul pentagramma: il numero di note della scala pitagorica cromatica è 17.
    In passato sono stati costruiti strumenti che rispettano la scala pitagorica. Per noi hanno un aspetto poco usuale.

    Ricostruzione del clavicembalo cromatico di Carlo Gesualdo da Venosa
    esposto al Museo del Castello di Gesualdo

    In questo ipotetico manico di chitarra sono rappresentate le posizioni corrispondenti alla scala cromatica pitagorica

    Per evitare questi e altri inconvenienti nei secoli si sono ideate altre scale, fino ad arrivare al temperamento equabile:

    • è stato annullato il comma pitagorico: Do♯ e il Re♭ coincidono
    • tra due semitoni vi è un rapporto costante, i suoni ottenuti sono prossimi ai suoni della scala pitagorica
    • le note della scala cromatica sono ridotte a 12

    Poiché si richiede che tra due semitoni il rapporto sia costante e che le note distanti un’ottava abbiano un rapporto pari a 2, il rapporto costante tra i semitoni deve essere un numero k tale che
    k12 = 2 cioè k=12√2 ≈ 1,05946.

    Posto k=12√2 ≈ 1,05946, si può notare che questa quantità è molto prossima al rapporto \frac{256}{243} ≈ 1,0535 che contraddistingue la distanza tra Si e Do e tra Mi e Fa nella scala pitagorica.
    Inoltre k2 ≈ 1,12246 risulta una buona approssimazione del rapporto \frac{9}{8} = 1,125 cioè l’ampiezza di un tono.

    Noto già nell’antichità (Aristosseno di Taranto intorno al 320 a.C.), questo tipo di temperamento ha impiegato secoli prima di essere accettato, anche per la presenza del fattore irrazionale 12√2.
    L’aspetto della tradizionale tastiera del pianoforte è data dalla scala così costruita

    Do   Re   Mi Fa   Sol   La   Si Do1
    1 12√2 (12√2)2 (12√2)3 (12√2)4 (12√2)5 (12√2)6 (12√2)7 (12√2)8 (12√2)9 (12√2)10 (12√2)11 (12√2)12

    La tastiera della chitarra tradizionale confrontata con un’ipotetica chitarra in scala pitagorica rende maggiormente l’idea di cosa si intenda per temperamento equabile. Le posizioni sulla prima sono una buona approssimazione dei corrispondenti sulla seconda, e così anche i suoni che si ottengono.

    Le consultazioni e l’indice di Banzhaf

    Consultazioni al Quirinale: chi l’avrà vinta? Proviamo ad analizzare gli scenari con qualche strumento matematico.
    Un parametro che ci può in interessare è l’indice di Banzhaf: come si calcola?
    Consideriamo i partiti politici che hanno ottenuto più voti, i rimanenti sono abbastanza ininfluenti nel calcolo di questo parametro e per semplicità analizziamo solo la composizione della Camera dei Deputati:
    M5s 222 seggi
    Lega 125 seggi
    PD 111 seggi
    FI 104 seggi
    FdI 32 seggi
    La maggioranza assoluta è della metà più uno dei seggi cioè 316 e nessuno dei partiti la raggiunge.

    Ok, va bene, ma sto cercando di illustrare solo uno strumento della teoria dei giochi che si applica in ogni caso.
    Le coalizioni possibili, cioè quelle che superano la soglia di maggioranza (fate un po’ il conto oppure fidatevi) sono:
    M5s+Lega
    M5s+PD
    M5s+FI
    M5s+Lega+PD
    M5s+Lega+FI
    M5s+Lega+FdI
    M5s+PD+FI
    M5s+PD+FdI
    M5s+FI+FdI
    Lega+PD+FI
    M5s+Lega+PD+FI
    M5s+Lega+PD+FdI
    M5s+PD+FI+FdI
    Lega+PD+FI+FdI
    M5s+Lega+PD+FI+FdI
    Qualcuna di queste coalizioni potrebbe sembrare assurda o impossibile, infatti si dovrebbero eliminare da quest’elenco le coalizioni composte da partiti incompatibili, ma tutto sommato va bene anche così dal momento che è un ragionamento teorico (?).

    Sarà così, anzi sicuramente è così, non voglio urtare la sensibilità di nessuno però non è un argomento che mi preme affrontare in questo momento. Volevo solo mettere in evidenza che in coalizione la semplice percentuale di seggi non è un buon indicatore del potere reale di un partito. Il peso di un partito è dato da quanto è importante per una coalizione, cioè se la coalizione regge o meno nel caso il partito la abbandoni.

    Ok, piano, gli elettori hanno votato ma chi governa lo decide Mattarella… ok, non lasciamoci prendere da queste cose, io stavo cercando di fare un altro discorso che non ha niente a che vedere con questa storia. L’indice di Banzhaf. Come si calcola? Si conta il numero di volte in cui le coalizioni (in questo caso 15 coalizioni) rischiano di cadere se un partito l’abbandona (in totale il governo di queste 15 coalizioni può cadere in 24 modi).

    Va bene, però fatemi finire. sto illustrando un concetto teorico mica… basta dai…
    Ripartiamo: l’indice di Banzhaf, ho calcolato un primo fattore. Poi di ogni partito conto quante volte è decisivo per la coalizione, per esempio su 24 coalizioni possibili M5s è decisivo per 12 di queste, mentre il PD è decisivo sono il 4.

    Non dico il contrario, ma i calcoli non danno questa certezza. Però questa cosa non ha nulla a che vedere con quello che sto dicendo io! Aspettate un attimo finisco questa cosa: devo fare solo una divisione e poi discutete dei fatti vostri.
    Calma: abbiamo 24 modi con cui le 15 coalizioni possono cadere. Il M5s è fondamentale il 12 di queste, per cui il suo indice di Banzhaf è 0,5. Lega, FI, PD fondamentali in 4 coalizioni, e FdI non è fondamentale in nessuna coalizione.

    Ma io non ho capito ancora se questi so’ sciem o so’ sciem verament. La volete finire! Questo forse non è nemmeno un discorso adatto a voi, andate da un’altra parte. Concludo, se nessuno mi interrompe ancora: Lega, FI, PD hanno un indice di Banzhaf pari a 0,17 mentre FdI ha un indice pari a zero. Basta!

    Il Forerunner 110 e il suo cinturino

    Era all’incirca il luglio del 2011 quando ho deciso di comprarlo. Ho preso questo modello perché tutti gli altri modelli in circolazione erano ingombranti patacconi. Il Forerunner 110 della Garmin superava di poco le dimensioni di un normale orologio. Risultava pertanto comodo da portare durante la corsa o anche durante la giornata.
    Il difetto era evidente, ma l’ho trascurato. Sicuramente non mi pento di aver comprato questo modello, ma dopo qualche anno ho dovuto trovare il modo di utilizzare un orologio con il cinturino rotto.
    Il difetto consiste appunto nel fatto che il cinturino fa corpo unico con l’orologio e non è possibile sostituirlo con un cinturino standard o adattarne uno.
    All’inizio quindi con della colla, poi dello spago e dello scotch. Alla fine non c’è stato nulla da fare il cinturino è andato in mille pezzi.

     

     

     

     

     

     

     

     

    Si potrebbe pensare ad un caso di obsolescenza programmata: il cinturino di qualunque orologio, soprattutto se di plastica, ha una vita limitata mentre comprare un cinturino della Garmin… ne vogliamo parlare? No non ne parliamo.
    Potremmo invece comprare un nuovo orologio con GPS? Forse questa sarebbe una buona idea, ma finché è possibile fare a meno di un upgrade tecnologico, a mio parere, si può aspettare almeno fino a quando non vengono messi sul mercato prodotti di tecnologicamente più maturi. C’è invece chi rincorre continuamente la tecnologia: ognuno faccia come crede.
    E quindi dopo aver cercato e confrontato le soluzioni di altri sventurati, e riflettendo su come risolvere la situazione ho trovato una strada tutta mia.
    Materiali occorrenti

    • Cinturino in tessuto da pochi euro
    • bustina porta CD (ne ho una collezione)
    • stringhe chiudisacchetti

    La bustina del CD va ragliata in modo che non risulti troppo grande, la si può tagliare anche alla fine dopo aver regolato la dimensione.

    Si inserisce l’orologio nella bustina

    La si appoggia sul cinturino

    Si chiude il tutto con le stringhe

    Ed ecco un antiestetico-ma-di-nuovo-funzionante Garmin Forerunner 110

    Antiestetico: sicuramente; si potrebbero usare delle stringhe di colore nero, l’effetto migliorerebbe.
    Di nuovo funzionante: sicuramente, la plastica non dà alcun problema, magari sono io ad essere poco sensibile, ma almeno per il momento non mi irritato il polso né posso dire di avere avuto problemi nella traspirazione (del polso).
    Leggibile: un po’ di meno dell’originale, a volte riscontro qualche riflesso.
    Usabile: i tasti rimangono comunque accessibili, basta fare un minimo di attenzione riguardo a come si posizione la bustina.

    Chi bussa a questa porta? E a quest’ora!?

    Non ti aspetteresti mai sentire bussare al citofono intorno alle 15.30, soprattutto il 7 di agosto. Eppure questo 7 agosto, alle ore 15.30 circa ecco che suona il citofono.
    Di pomeriggio in genere sono comunque attivo, ho solo un breve momento di mancamento dovuto al sangue che accorre allo stomaco per la digestione e di conseguenza il cervello ne rimane privo.
    In tutte le culture questo momento è noto e definito da termini precisi: da noi è detto “controra”, ma potrebbe anche essere indicato con termini più tecnici come “coma digestivo” oppure “nummrumpitocazz”.
    Cercando di riprendermi dal brusco risveglio e rispondo al citofono: comunicazioni dell’ENEL. Ho capito già tutto, ma sono una persona curiosa e mi interessa capire quale faccia da disperato può avere uno che alle 15.30 del 7 agosto, temperatura misurata 38° C, temperatura percepita 45° C, gira per le strade di un infimo paesino di provincia a procacciare clienti.
    Esco in cortile, e mi rendo conto che sono abbigliato in maniera perfetta per una pennichella sul divano di casa propria, ma non per presentarsi ad un estraneo, ma penso “masticazzichisenefrega”: lo voglio vedere, voglio guardarlo in faccia a tutti i costi.
    Finalmente eccolo, giovane, avrà avuto appena 18 anni, perfetto nel suo completo giacca e cravatta, l’unico che ha, comprata apposta per festeggiare il suo recente 18° compleanno: auguri!
    Si proteggeva dal sole cercando riparo dal muretto, rosso in faccia, giacca e cravatta, il 7 agosto alle ore 15.30, con una temperatura misurata 38° C all’ombra, al sole saranno stati almeno 50. Con lui un ragazzina che stava patendo allo stesso modo: che bello essere giovani, nessuno ti ferma, può piovere o fare caldo, resisti a qualunque cosa. Beata gioventù!
    Mi istruisce sul fatto che è necessario passare al mercato libero, e chiede di vedere la mia ultima fattura dell’enel per controllare un codice. Se corrisponde posso avere uno sconto del 30%.
    Non ho voluto infierire, sono stato gentile quando l’ho scacciato.
    Per i giovani venditori porta a porta dell’enel (enel energia o quello che è) una prece.

    Koch Snowflake

    Divertiamoci un po’

    Koch Snowflake
    Koch Snowflake

    Ogni tanto vale la pena rilassarsi un po’ con questo bell’ambiente di sviluppo che si chiama Scratch e disegniamo un bel frattale, uno semplice: il fiocco di neve di Koch. Si disegna un triangolo equilatero; ogni suo lato viene trasformato in 4 segmenti in modo da formare tanti triangolini, e poi da essi ancora tanti triangolini senza mai smettere e si ottiene un disegno del genere.

    Bello vero?

     

     

     

     

     

    Codice sorgente

    Il codice per realizzare questo disegno non è molto complicato, si tratta di ripetere iterativamente queste istruzioni (per i curiosi il codice completo si può vedere qui).

     

     

     

     

     

     

     

     

     

     
    Mentre per vedere in azione il risultato della codifica premere sulla bandierina: