mercoledì 8 giugno 2011

Voci di corridoio

Avevamo forse bisogno di un piccolo libro di questo tipo: perché c’è molta più scuola reale qui, in queste pagine virtuali, che negli articoli e nelle polemiche che normalmente inondano i nostri quotidiani; perché è un modo possibile, per chi a scuola non ci mette più piede da tanti anni, per capire che nel frattempo le cose sono molto cambiate e che chi parla di scuola oggi sta spesso parlando della scuola di trenta o di quindici anni fa: quella che conobbe lui, appunto, e che ora non è più.

Così recita l'introduzione a Voci di corridoio, un ebook sulla scuola fatto da prof (e da uno studente, diciamo così).

Si trova qua, grazie a Peppe e lo Scorfano (e a tutti quelli che hanno scritto).

martedì 31 maggio 2011

A volte i computer non ce la fanno — 2

Anche se noi pensiamo di utilizzare una calcolatrice con tanta memoria, o un computer che memorizza i numeri reali utilizzando molto spazio, potremmo sempre incappare in qualche problema.

Per esempio, consideriamo l'equazione seguente:

(x-1)(x-2)(x-3)…(x-19)(x-20) = 0.

Non è difficile capire che ha venti soluzioni, i numeri naturali da 1 a 20. Basta sostituirli per vedere che risulta sempre 0.

Se noi svolgiamo quelle 19 moltiplicazioni tra binomi, otteniamo questa espressione:

x20 - 210x19 + 20615x18 - 1256850x17 + 53327946x16 -
1672280820x15 + 40171771630x14 - 756111184500x13 +
11310276995381x12 - 135585182899530x11 + 1307535010540395x10 -
10142299865511450x9 + 63030812099294896x8 -
311333643161390640x7 + 1206647803780373360x6 -
3599979517947607200x5 + 8037811822645051776x4 -
12870931245150988800x3 + 13803759753640704000x2 -
8752948036761600000x + 2432902008176640000.

Un po' meno bella della precedente, ma è sempre lei.

Ora, supponiamo che un errore di approssimazione modifichi leggermente una delle cifre di questo lungo polinomio. Immaginiamo, ad esempio, che il computer che stiamo utilizzando abbia a disposizione 30 bit per memorizzare le cifre significative.

Diamo un'occhiata al coefficiente di x19, cioè -210; servono 8 bit per memorizzarlo, e ci rimangono così 22 bit per la parte decimale, che è tutta a zero.

Modifichiamo quel coefficiente di un'inezia: lo diminuiamo di 2-23, un numero molto piccolo. Ora è diventato uguale a circa -210.0000001192: ci aspettiamo che le soluzioni dell'equazione così perturbata non siano molto diverse da quelle dell'equazione iniziale. Il nostro computer con 30 cifre significative, in effetti, non è in grado di distinguere tra -210 e -210-2-23, perché questi due numeri sono diversi a partire dal trentunesimo bit. Per lui l'equazione perturbata e quella iniziale sono uguali.

Vediamo invece che succede: se nell'equazione perturbata sostituiamo 20 al posto di x, invece di ottenere 0 abbiamo la bellezza di −6.25×1017, un numero grandicello. Le venti soluzioni dell'equazione iniziale sono ora queste (approssimate alla quinta cifra dopo la virgola):

1.00000, 2.00000, 3.00000, 4.00000, 5.00000,
6.00001, 6.99970, 8.00727, 8.91725, 20.84691.

Se le contate, non sono venti, ma solo dieci! Le altre dieci spariscono (o diventano complesse coniugate, se ci mettiamo nei numeri complessi).

Dunque una piccola modifica in un coefficiente produce un errore gigantesco nelle soluzioni. E questo, per uno che si affida ai computer per risolvere le equazioni, è Male.

Si può pensare che sui polinomi non ci sia più nulla da scoprire, ma il comportamento imprevedibile di questo particolare polinomio è stato scoperto solo nel 1984, in un un articolo dal meraviglioso titolo The perfidious polynomial.

In cui Wilkinson, l'autore, scrive:

Speaking for myself I regard it as the most traumatic experience in my career as a numerical analyst.

lunedì 30 maggio 2011

A volte i computer non ce la fanno — 1

Spesso si pensa che i computer abbiano risolto tutti i nostri problemi di calcolo. Se i numeri sono troppo grandi, ci pensa lui (o la calcolatrice). Non è proprio così.

Ogni tanto faccio notare agli studenti che, quando calcolano 1/3 e poi rimoltiplicano il risultato per 3, ottengono come risultato 1 perché la calcolatrice sbaglia due volte.

Sbaglia una prima volta perché 1/3 dovrebbe dare, come risultato, 0 seguito da infinite cifre 3, mentre il display ne mostra solo un certo numero. Sbaglia una seconda volta perché se moltiplichiamo quel risultato per 3, il risultato dovrebbe essere uno 0 seguito da un certo numero di 9.

Qualche calcolatrice moderna potrebbe, in effetti, memorizzare le frazioni in modo esatto (almeno frazioni semplici come 1/3), ma lo stesso problema si presenta quando si digita 2, poi si fa la radice quadrata, e successivamente il quadrato. Il risultato non dovrebbe essere 2, a rigore.

Come mai allora otteniamo il risultato giusto? Si tratta di un trucco: la calcolatrice ha una memoria capace di memorizzare n cifre, ma ce ne fa vedere meno, diciamo n-3. Allora quando calcoliamo 1/3 il risultato è 0 seguito da n-1 cifre 3 (diciamo n-1 perché una di queste cifre è occupata dallo 0 iniziale, poi potrebbe non essere così, ma facciamo finta), ma il sistema approssima il risultato facendoci vedere solo n-4 cifre uguali a 3.

Quando rimoltiplichiamo per 3, il risultato sarebbe 0 seguito da n-1 cifre 9, che, approssimato a n-4 cifre, diventa 1. Due approssimazioni producono il risultato giusto.

Non funziona sempre, però.

sabato 28 maggio 2011

Doppio pendolo inverso

Un pendolo inverso l'avevo già visto, ma un doppio pendolo inverso ancora no. Eccolo qua.

(Via smoot)

martedì 24 maggio 2011

Game of Thrones

Se vi siete appassionati di Game of Thrones, non avete letto i libri, e volete ritrovarvi tra i mille personaggi, qua c'è un bel sito con una infografica riassuntiva per ogni episodio. Spoiler free.

Tiffany

A me piacciono i romanzi per ragazzi (almeno quelli intelligenti). Sarà perché ho tre figli, o per via della sindrome di Peter Pan, fatto sta che li leggo volentieri.

Bene, questa volta ho letto qualcosa di Terry Pratchett: si tratta del ciclo di Tiffany, di cui finora sono stati tradotti in italiano soltanto tre volumi.

More about L'intrepida Tiffany e i piccoli uomini liberi

Nel primo (L'intrepida Tiffany e i Piccoli Uomini Liberi, Oscar bestsellers, 9€) Tiffany è una bambina di nove anni che scopre pian piano di essere una strega, come sua nonna. Nel mondo di Terry Pratchett le streghe non sono proprio come noi ce le immaginiamo: non è detto che abbiano verruche sulla faccia, bitorzoli sul naso, rughe (anche se questo, a volte, aiuta). Non devono obbligatoriamente essere vecchie e brutte. Non sono cattive, ma sono lì per aiutare, o per lo meno per fare andare le cose come dovrebbero andare. E, soprattutto, non sanno assolutamente nulla della faccenda di ballare senza mutande nelle notti d'estate.

Le streghe vivono sulle montagne, e dalla solida roccia traggono il loro potere. Tiffany è un po' anomala, perché vive su colline di gesso, e il gesso non è una roccia molto stabile e solida. Eppure…

Fanno compagnia a Tiffany i piccoli ometti blu detti Nac Mac Feegle, fatine-maschio (ma ci sono anche le femmine) puzzolenti, sbevazzoni, dediti a risse, furti, schiamazzi. L'antitesi dei Puffi, in sostanza. Meravigliosi.

More about Un cappello pieno di stelle

Nel secondo (Un cappello pieno di stelle) Tiffany ha undici anni, e sta cominciando a prendere coscienza delle sue capacità. E il vero potere di una strega è capire gli altri, sapere quello che gli altri non sanno, e non usare la magia.

Nel descrivere le colline di Tiffany, chiamate Il Gesso, Terry Pratchett ha in mente una particolare zona dell'Inghilterra, i dintorni di Uffington. Leggete il libro per scoprire il perché.

More about La corona di ghiaccio


Nel terzo (La corona di ghiaccio, Mondadori, 17€) Tiffany ha tredici anni, è più consapevole dei suoi poteri, e comincia a rendersi conto dell'esistenza dell'altra metà del mondo. Ha bisogno di una guida e, perciò, frequenta altre streghe più anziane e, quindi, più esperte. E come non citare Nonnina Wheatherwax e Nonna Ogg, quando si parla di streghe anziane ed esperte?

Le storie sono un po' più lineari e con qualche livello di lettura in meno, rispetto a quelle per adulti di Pratchett, ma sono comunque gradevoli e per niente noiose. Anche per un adulto.

mercoledì 11 maggio 2011

Snumeratezza



Beata gioventù che non paga la benzina. Ben tre virgola tre chilometri.

venerdì 6 maggio 2011

Ormai sono passati 17 anni…

…e posso anche raccontarlo.

Ero un giovane e ingenuo insegnante alle prime armi, in una scuola che non specificherò. E incontro uno studente di quinta.

«Oh, prof, sa cos'è successo ieri?».

«No, cosa hai combinato?».

«Ma no, niente, ho salvato la scuola».

«Eh, sì, certo».

«Sì, eh. Ieri pomeriggio avevo lasciato qua il motorino, nel cortile. Allora ieri sera sono passato a riprenderlo, e ho visto che c'erano le porte aperte».

«Che porte?».

«Le porte della scuola! Non le avevano chiuse bene, si poteva entrare».

«E allora?».

«Eh, allora ho dato un'occhiata, era tutto buio, però non mi sembrava il caso di andare via così».

«E quindi?».

«E quindi ho telefonato al numero della sorveglianza. Sa che c'è un adesivo della sorveglianza sulla porta?».

«Sì».

«Ecco, li ho chiamati dicendo che ero davanti a scuola e qualcuno ha lasciato le porte aperte».

«E loro cos'hanno detto?».

«Mi hanno ringraziato, mi hanno chiesto se potevo aspettare un momento che sarebbero arrivati subito».

«Tu hai aspettato?».

«Eh, sì».

«Bé, bene, bravo».

«…».

«Cosa c'è?».

«Oh, prof, glielo devo dire».

«Ma cosa?».

«Senta, io ero lì, non c'era nessuno, tutto vuoto, tutto buio».

«E allora?».

«Oh, prof, io ho preso il motorino, l'ho acceso, e ho fatto qualche sgommata lungo tutto il corridoio. E quando mi ricapitava un'occasione così? Era bellissimo, ero sempre di traverso».

giovedì 5 maggio 2011

«è composta da cinque parole» è composta da cinque parole


def quina(s):
  quote='"'*3
  print s + '(' + quote + s + quote + ')'

quina("""def quina(s):
  quote='"'*3
  print s + '(' + quote + s + quote + ')'

quina""")


Questo programma (in python) definisce una funzione quina(s) tale che, se invocata, produce una stampa di s("""s"""). Poi chiama la funzione quina passandole il codice scritto fino a quel momento, cioè chiama quina("""codice scritto fino a quel momento""") che produce una stampa di codice scritto fino a quel momento quina("""codice scritto fino a quel momento"""). Che è il programma stesso…

(Ho trovato un nuovo blog da seguire)

mercoledì 27 aprile 2011

Sulla duplicazione del cubo


AD = 2AB,
AC= 2AB3.

Matematica in Relax

More about Matematica in relax

.mau. è uno cresciuto a pane e Martin Gardner, ed è uno a cui piace la matematica.

La risoluzione dei problemi è una delle attività tipiche del matematico, e spesso è faticosa, piena di strade che non portano da nessuna parte. A volte si arriva alla soluzione con tanti calcoli, e con la sensazione che quella non sia la strada migliore. Si pensa che la dimostrazione vera debba essere diversa, ma non si riesce a vederla.

Altre volte, invece, arriva l'illuminazione. Martin Gardner la chiamava esperienza a-ha, e consiste in quella bellissima sensazione che si ha quando si capisce di aver trovato la soluzione giusta. Come diceva Erdős, in alcuni casi ci viene regalata la possibilità di dare un'occhiata al libro delle dimostrazioni di Dio.

Bene, e come si fa a risolvere problemi in modo giusto? Bé, la risposta più semplice è: risolvendo problemi. Poi, se vogliamo, possono esserci anche risposte un pochino più articolate, come quella di Pòlya, che propone un metodo molto dettagliato, ma alla fine bisogna comunque provare, ragionare, prendere strade sbagliate, riprovare, e così via.

Bene, .mau. ha scritto un libro, intitolato Matematica in Relax, in cui raccoglie 99 problemi matematici. Sono tutti problemi che, se si trova la strada giusta, si risolvono in poche righe e con pochi calcoli (spesso, senza calcoli).

E se uno non trova la strada giusta, può andare a leggersi prima di tutto un aiutino che lo indirizza un po', e poi la soluzione completa, corredata anche da un commento didattico, che spiega le tecniche matematiche usate. Questo è il punto forte del libro: la spiegazione di come si fa. Martin Gardner avrebbe approvato.

venerdì 22 aprile 2011

Trisettore


Cliccate qui se volete giocarci un po', io non riesco a inserire direttamente in questa pagina un'animazione funzionante, non so perché.

lunedì 11 aprile 2011

Dracula, Platone e Darwin

More about Dracula, Platone e Darwin

Appartengo a quella fortunata categoria di persone che hanno iniziato ad apprezzare davvero la matematica grazie anche ai libri di Martin Gardner.

Mi sono procurato, nel tempo, tanti suoi libri, ma ce ne sono altrettanti che non ho ancora letto: sono fortunato.

L'ultimo che ho letto si intitola Dracula, Platone e Darwin, e ha come sottotitolo Giochi matematici e riflessioni sul mondo (Zanichelli, 2010, 10.20€).

La prima parte contiene una serie di capitoli riguardanti giochi, enigmi e paradossi — come al solito, si potrebbe dire.

La seconda parte, invece, è stata per me inaspettata: non avevo mai letto prima quelle che potremmo definire riflessioni di Gardner sulla vita, l'universo e tutto quanto. In quei capitoli il buon Martin si sbottona e parla di sé, della sua visione del mondo, del suo essere scettico, della sua incredulità nei confronti del paranormale e, allo stesso tempo, della sua fede religiosa.

Ed è soprattutto per questa seconda parte che io giudico il libro molto bello. Perché mi piace leggere quello che pensa la gente che usa il cervello, mi piace confrontarmi, mi piace ascoltare, mi piace cercare delle risposte.

A maggior ragione in questo periodo,  in cui qualche fedele dice cose che non stanno né in terra né, ahimè, in cielo.

venerdì 8 aprile 2011

Cominciano ad arrivare i bug-report

.mau. mi segnala un errore in Verso l'infinito ma con calma: a pagina 40 l'albergatore fa spostare tutti gli inquilini nelle stanze pari, e fa posto agli abitanti delle varie infinite corriere nelle stanze multiple di numeri primi. Così non va bene: stanze come, per esempio, la numero 15 verrebbero occupate due volte. Nel post originale si parlava di potenze di numeri primi, poi un copia-incolla ha trasformato la potenza in un prodotto, e in seguito alla formula è stata sostituita la parola sbagliata.

Quindi il finale di pagina 40 diventa:

Ecco a lei, tenga. Questo è un generatore di numeri primi. Gli occupanti della prima corriera andranno alle stanze che sono potenze di 3, quelli della seconda corriera alle stanze potenze di 5, poi di 7, e così via. Mi raccomando non si sbagli, controlli sempre sul generatore. Una volta è venuta una gita sociale della facoltà di ingegneria e mi hanno occupato tutte le potenze di 9, non le dico le discussioni che ci sono state dopo.

lunedì 4 aprile 2011

Caos

«E dopo succede che non ci si capisce più niente. Guarda cosa succede per = 3.7».



«Uh, è vero, non si capisce cosa succede. Sembra che ci sia una certa regolarità, però».

«Sì, è vero. Possiamo parlare solo di probabilità di cadere all'interno di un determinato intervallo, ma non ci sono orbite regolari stabili».

«Stabili?».

«Sì. Provo a spiegarmi: se ci pensi un attimo, il punto di intersezione tra la retta e la parabola è un punto fisso. Se prendi il valore iniziale giusto, cadi proprio sopra a quel punto e da lì non ti muovi più».

«Ah, già. Se il primo segmento verticale arriva proprio sopra a quel punto, quando mi muovo in orizzontale non mi sposto, rimango sempre lì».

«Esatto. In effetti di punti di intersezione tra la retta e la parabola ce ne sono due. Anche il valore 0 è stabile».

«Giusto. Se non c'è popolazione, nessuno si riproduce e nessuno muore».

«Proprio così. Ma se ti sposti anche di pochissimo da quei due punti di equilibrio, può succedere di tutto. E man mano che r aumenta, si nota sempre meno regolarità. Eccoti il grafico per il valore massimo di r, cioè 4».



«Eh, mamma mia. Qui sembra proprio che non ci sia regolarità».

«Già. Questo è quello che si chiama caos deterministico».

«Cosa significa?».

«Deterministico significa che il sistema è governato da una equazione esatta, non da probabilità. Sappiamo fare i calcoli, conosciamo le formule (che, fra l'altro, sono anche molto semplici), sappiamo esattamente cosa succederà alla generazione n+1, una volta che conosciamo lo stato della generazione n».

«Però c'è caos».

«Esatto. Una caratteristica del caos è questa: l'evoluzione del sistema dipende in maniera molto sensibile dalle condizioni iniziali».

«Cioè da come si parte?».

«Sì. Ricordi quando non c'era caos? Potevi partire da qualsiasi condizione iniziale, e prima o poi saresti arrivato all'equilibrio, che poteva essere un punto solo, oppure quella che abbiamo chiamato orbita. Anche se il sistema oscilla tra più punti, l'insieme di quei punti si chiama stabile perché il sistema tende ad assumere quella configurazione».

«Mi ricordo. Adesso invece non è più così, vero?».

«No. Due condizioni iniziali anche molto vicine prima o poi se ne vanno per strade molto diverse. Ti faccio un esempio, nella figura qua sotto, in cui la parabola ha = 4, ho assegnato ad un punto il valore di = 0.2, a un secondo punto ho assegnato invece = 0.201. Ecco la prima generazione:».



«Praticamente non si nota la differenza».

«No, infatti, non abbiamo abbastanza pixel per notarla. Ecco cosa succede dopo tre generazioni:».



«Forse si comincia a vedere qualcosa».

«Sì, se ingrandisci la figura vedi due colori diversi. Ma ti basta aspettare un altro paio di generazioni per distinguere bene le due traiettorie:».



«Sono ancora abbastanza vicine, però».

«Sì, ma non lo rimarranno per molto. Dopo 9 iterazioni sono già molto staccate:».



«Sì, ormai non hanno più molto in comune».

«E andando avanti è sempre peggio. Ti faccio vedere un'ultima immagine, con 50 generazioni:».



«Sì, è davvero un caos».

«E questa è stata una grossissima delusione per Laplace».

«Perché?».

«Perché lui pensava che le leggi fisiche della meccanica, leggi semplici che descrivono il moto dei corpi, una volta note le condizioni iniziali, potessero essere usate per prevedere tutto».

«Tutto?».

«Sì, lui diceva datemi le condizioni iniziali, e vi saprò prevedere l'evoluzione dell'intero universo».

«E gli è andata male».

«Già. Una semplice legge come questa, con una facile curva di secondo grado, è imprevedibile. Mi basta sbagliare di pochissimo una condizione iniziale, e non riesco più a sapere quello che succederà dopo molte iterazioni. E, dato che le misure fisiche hanno sempre un margine di errore, tanti saluti al determinismo».

«E alle previsioni del tempo».

«Anche».

«Mi piacerebbe fare qualche prova con il sistema della crescita con risorse limitate: come hai fatto a fare i grafici?».

«Ho usato GeoGebra e seguito queste istruzioni, per non dover fare tutto a mano. Se vuoi, qui c'è un'applet java già pronta per giocarci».

«Ottimo».

«Concludo con un'ultima immagine, fatta da un utente di wikipedia. Immagina di voler creare un grafico che riassuma il comportamento del nostro sistema, per ogni valore di r fino a 4. Questa volta non vuoi vedere tutte le iterazioni, ma solo gli attrattori, cioè solo quello che succede quando la situazione è stabile».

«Ma non è sempre stabile».

«Vero. Immagina di partire da un punto a caso, poi di fare molte iterazioni (nell'immagine ne sono state fatte 1000) a vuoto. Poi cominci a raccogliere i dati: per ogni valore di r ne raccogli 100000».

«Sono tanti, cosa me ne faccio?».

«Quando r è piccolo otterrai 100000 valori tutti uguali, perché avrai un solo punto fisso».

«Infatti».

«Bene, allora cominci a creare un grafico. Sull'asse delle ascisse metti il valore di r che stai usando, sull'asse delle ordinate metti i valori di quei 100000 punti».

«Per r piccolo però metto un punto solo, no?».

«Certo, all'inizio disegnerai una curva: man mano che r cresce vedrai il punto fisso che cambia un po' posizione».

«Poi però c'è il raddoppio del periodo».

«Sì, a un certo punto vedrai la curva che si biforca. E dopo un po' vedrai le due biforcazioni dividersi ancora…».

«Perché siamo arrivati al periodo 4, giusto?».

«Esatto. Poi le biforcazioni si fanno sempre più frequenti, e a un certo punto diventano infinite».

«E dopo comincia il caos».

«Sì, siamo intorno a = 3.569945672».

«Dopo si anneriranno tutti i punti, no?».

«Sì, dopo avremmo un grafico tutto pieno, e allora cambiamo la modalità di rappresentazione. Per ogni punto sull'asse verticale, da 0 a 1, teniamo conto di quante volte esso viene toccato: infatti i 100000 punti che hai calcolato non si distribuiscono uniformemente su quell'intervallo. Ad ogni punto associamo allora un livello di grigio proporzionale a quante volte esso è stato toccato. Ed ecco quello che salta fuori:».

Grazie a wikipedia per questa immagine.