27 ottobre 2013

Ghost e i post in inglese

Poco tempo fa ho contribuito ad una campagna su kickstarter che ritengo molto interessante: Ghost.
Si tratta di un sistema di blogging estremamente semplice da usare (ancora non così semplice da installare se non sapete dove mettere le mani).

L'interfaccia di amministrazione è essenziale e a prova di bambino. Creare nuovi post, aggiornarli o cancellarli è velocissimo e scrivere nuovi post è estremamente veloce e piacevole!

Spinto dall'entusiasmo mi sono aperto un mio ghost blog: Tales of a Fractal Spectrum. Il sito è in inglese, il tema è disponibile gratuitamente sulla mia pagina github e da oggi mi concentrerò principalmente sull'aggiornamento di quel blog.

Potete anche provare voi. Per farlo partire sul vostro computer vi rimando alla documentazione ufficiale, se invece volete renderlo disponibile su internet usando un servizio gratuito, potete leggere qui e seguire le istruzioni: https://github.com/Laures/ghost-openshift-quickstart

Ieri e oggi ho passato un po' di tempo ad Angel Hack London, ci siamo divertiti a creare un semplice videogioco per il browser (funziona anche su smartphones e tablets) chiamato KLONE. Per giocare basta cliccare qui.

Grazie e a presto,
Marcello

03 maggio 2013

People of the Soil

Ho partecipato all'ultima NASA Space App Challenge poche settimane fa a Londra. Strano ma vero, il nostro progetto è stato selezionato per partecipare alla selezione finale.

Abbiamo realizzato un sistema economico per analizzare il terreno e salvare lo storico dei dati, condividerlo in un mega database internazionale (usando internet o sms) e rendere i dati fruibili attraverso una applicazione web molto leggera.

Il progetto con tanto di foto, descrizioni, codici, schemi e video di presentazione si trova qui: http://spaceappschallenge.org/project/people-of-the-soil/

Parte dei voti è popolare, per cui vi chiedo di andare alla pagina e votare per noi! (Serve twitter)

17 febbraio 2013

FORBIDDEN! Sondaggi elettorali fai da te :)

Strano ma vero... dopo tutto questo tempo eccomi qui di nuovo a scrivere qualcosa sul blog. E per scadere nel banale, voglio parlare di una moda del momento! Anzi due.

Innanzitutto questo post, come dice anche il titolo, parla di sondaggi elettorali. Visto che l'arretrata macchina dell'AgCom (e le improponibili leggi italiane - il silenzio elettorale in genere riguarda il giorno delle elezioni o quello precedente) hanno bloccato anche l'ultima idea carina per monitorare il panorama elettorale (vedi per il nostro bene - Manteblog) eccomi qua a spiegarvi come replicare il Sentimenter in piccolo, ovvero come farvi in casa i sondaggi elettorali grazie a twitter! La cosiddetta sentiment analysis dei social network sta riscuotendo molto successo ultimamente. Soprattutto quando è fatta a modo, sembra poter dare molte informazioni sugli andamenti degli indici di borsa, sulle previsioni elettorali... addirittura sui risultati di San Remo - Wired.

Qualche giorno fa un post di Riccardo, anzi due (andateli a leggere e date un'occhiata anche ai suoi post precedenti), mi ha fatto venire voglia di mettermi a trafficare con la sentiment analysis su twitter.

Ma di cosa sto parlando? In parole povere è possibile ottenere in maniera sistematica tutti i tweet fatti in un determinato periodo su un determinato argomento, estrapolarne il testo, stabilire in vari modi il grado di "apprezzamento" relativo ad ogni tweet, e creare una statistica di apprezzamento a partire da questi dati. Poi ognuno può usare questa statistica come vuole...

Nel nostro caso, dopo aver estratto il testo dai tweets, lo confronteremo con due vocabolari (la traduzione automatica dei vocabolari distribuiti dai Professori Hu e Liu) che potete scaricare da qui: Lexicon Italian e creeremo un plot a partire dai risultati.

Premetto che l'analisi che sto per presentare è incredibilmente meno precisa di quella fatta da Voices from the Blogs per Wired, in cui gruppi di persone lavorano direttamente ad un raffinamento dei risultati, e molto meno precisa di quella fatta da Riccardo, l'algoritmo che usa tiene conto anche dei rafforzativi (molto, tanto, incredibilmente, pochissimo, minimamente, ...) e delle negazioni (nel senso di parole che invertono il significato del testo che le segue).

Per ozio ho implementato l'analisi usando un linguaggio per analisi statistiche chiamato R, per comodità vi consiglio di usare Rstudio come interfaccia di lavoro. Infatti per R la funzione di analisi è già implementata e sono disponibili gratuitamente online i vocabolari che ho passato al traduttore automatico ed ho usato per le analisi.

Innanzitutto installate R ed R Studio. A questo punto aprite R Studio e verificate che le librerie che andremo ad usare siano installate. Farlo è semplicissimo, nella finestra con su scritto "Console" scrivete (premete Invio per gli accapo!)

library(RJSONIO)
library(plyr)
library(stringr)
library(twitteR)


Se uno di questi comandi dovesse dare errore, è sufficiente usare il comando install.package per installare la libreria mancante (assicuratevi di essere connessi ad internet). Se ad esempio non fosse disponibile la libreria plyr, nella stessa finestra "Console" eseguite il comando

install.packages('plyr', dependencies=T)

ed aspettate che abbia terminato il suo lavoro... Dopo aver installato tutte le librerie riprovate a dare i comandi "library" e stavolta dovrebbe funzionare tutto.

A questo punto la funzione per la sentiment analysis è stata gentilmente scritta da Jeffrey Breen ed è disponibile per il download dal suo spazio su gitHub.

La cosa migliore sarebbe scaricare il file sentiment.R in qualche cartella, usare il pannello in basso a destra in R per impostare la cartella in cui è salvato il file come "Working directory"(nel mio caso il comando che viene generato da Rstudio è setwd("Documents/twitter_sentiment")) e poi caricare la funzione sentiment facendo

source("sentiment.R") 

A questo punto posizionate i file positive_words_ita.txt e negative_words_ita.txt (che avete scaricato prima cliccando su Lexicon Italian) nella stessa cartella e iniziamo a divertirci.

I comandi che seguono servono per caricare i vocabolari

pos = scan("positive_words_ita.txt", what='character', comment.char=';')
neg = scan("negative_words_ita.txt", what='character', comment.char=';')


A questo punto possiamo scaricare i tweet relativi ad un argomento, come esempio userò San Remo (tramite il tag "#sanremo2013"), ovviamente sostituendo i nomi dei capi di partito o dei partiti a quel tag è possibile ottenere le informazioni per i sondaggi elettorali. Con il comando

SRtwitter = searchTwitter("#sanremo2013", n=500)
SRtwitter.text = laply(SRtwitter, function(t) t$getText())

stiamo scaricando (al massimo) 500 tweet contententi il tag #sanremo2013 e li stiamo salvando nella variabile SRtwitter e con la seconda funzione stiamo salvando nella variabile SRtwitter.text il testo dei tweets. Notate che aggiungendo le variabili opzionali  since="2013-2-15" e until="2013-2-17" possiamo chiedere ad R di scaricare solo i tweet scritti tra il 15 e il 17 febbraio... Notate anche che le API gratuite di twitter non permettono di scaricare più di 1500 tweet, quindi non usate n più grande di quel valore.

Siccome siamo italiani e usiamo un sacco di caratteri strani dobbiamo usare una procedura brutta da leggere e da scrivere per fare in modo che R rimuova dai tweet tutti i caratteri non leggibili o che li converta in un formato comprensibile. Per farlo basta scrivere

SRtwitter.text = enc2utf8(SRtwitter.text)
SRtwitter.text = iconv(SRtwitter.text, 'utf8', 'latin1', sub = "byte")
SRtwitter.text = iconv(SRtwitter.text, 'latin1', 'utf8', sub = "byte")


ed ecco che finalmente procediamo alla sentiment analysis! E la magia è che basta scrivere

scores = score.sentiment(SRtwitter.text, pos, neg)

ed aspettare che il computer faccia i suoi calcoli. Ora la "variabile" scores$score contiene per ogni tweet un punteggio che indica la positività, neutralità o negatività del tweet. Una analisi molto bruta dei dati può essere fatta con i seguenti comandi:

sprintf(fmt="Numero di tweet molto positivi: %d", sum(as.numeric(scores$score >= 2)))
sprintf(fmt="Numero di tweet molto negativi: %d", sum(as.numeric(scores$score <= -2)))
sprintf(fmt="Sentimento medio: %9.2f", mean(scores$score))
sprintf(fmt="Mediana: %9.2f", median(scores$score))
sprintf(fmt="Percentuale di voti molto positivi: %9.2f", sum(as.numeric(scores$score >= 2))*100/(sum(as.numeric(scores$score >= 2))+sum(as.numeric(scores$score <= -2))))


in questo caso sum(as.numeric(scores$score >= 2)) è il numero di commenti molto positivi (positività >= 2), mentre sum(as.numeric(scores$score <= -2)) conta quelli molto negativi, mean(scores$score) calcola il valore medio, median(scores$score) la mediana e l'ultima strana funzione è semplicemente la percentuale di tweet positivi sul totale dato dai tweet positivi più quelli negativi.

Un'altra cosa interessante è plottare l'istogramma dei sentimenti usando il comando hist(scores$score), magari confrontando come l'istogramma cambia nel tempo ripetendo l'analisi scaricando solo i tweet di un determinato giorno... o scaricando solo 100 tweet ogni mezz'ora... o ogni pochi secondi come ha fatto Riccardo.

Oppure potete scaricare politici.R, metterlo nella stessa cartella con gli altri files e caricarlo con il comando source("politici.R") per avere un bel grafico dell'andamento dei tweet riguardo i maggiori politici candidati alle elezioni negli ultimi 7 giorni :) ma mi raccomando, non pubblicate i risultati onilne, è vietato ;)

Questo ultimo file richiede le librerie ggplot2 e reshape2 quindi assicuratevi di averle installate. Se guadate il codice uso una funzione chiamata multiplot, l'ho presa dal Cookbook for R.

Ora avete il codice sorgente, dovete solo sbizzarrirvi! E se sistemate il vocabolario o fate sondaggi più precisi condividete il codice anche voi e fatemi sapere!!!


Non sono sondaggi affidabili o statistiche elettorali vere e proprie, ma i risultati possono essere interessanti.

Buon divertimento,
Marcello

21 dicembre 2012

Esperimento di Ipnosi - Video 1: Attaccato alla Sedia!

Provate e fatemi sapere come è andata!!!!!


Il video e il modo migliore di usarlo sono spiegati su Illusioni Mentali. Mi raccomando andate a leggere, provate il video e condividetelo!!!

14 marzo 2012

Per il $\pi$ day

$$
0 < \int_0^1 \frac{ x^4 (1-x)^4 }{1+x^2} dx = \frac{22}7 - \pi
$$
E quindi $\pi < \frac{22}7$


Siccome sono ozioso la dimostrazione non ve la scrivo. Se vi va provate a fare il conto a mano, se invece proprio non ne avete voglia e preferite passare il tempo al computer a consumare preziosa corrente elettrica, vi rimando a wikipedia: Proof that 22/7 exceeds $\pi$

23 febbraio 2012

Quanto è bello il nuovo font di Ubuntu

Stamattina ho trovato la ubuntu in ufficio aggiornata... appena effettuato il login ho avuto una sorpresa a dir poco strabiliante, il classico noioso font di sistema era sparito ed al suo posto c'era un chiaro esempio di stile!

Sono senza parole, adoro i nuovi font di Ubuntu.

La versione light è molto sottile ed elegante, la sostituirò in tutti i modelli di lavoro al più presto! Per chi volesse scaricarlo o dargli un'occhiata: font.ubuntu.com.

 Sappiate che probabilmente lo state già vedendo... ho modificato lo stile del sito per usare questo font piuttosto che il classico Trebuchet o l'Helvetica.

04 gennaio 2012

Weihnachtsübungen parte terza

E così, ad un anno di distanza dall'ultimo post sui Weinachtsübungen, eccomi a chiudere il cerchio. Parto con il buon proposito di inizio d'anno di cercare di scrivere sul blog un po' più spesso che so' già di non poter rispettare, ma meglio di niente...

Per chi non li conosce e per chi vuole rinfrescarsi la memoria, si tratta dell'ultima parte di questa serie di post:


Abbiamo visto in quei post che ci sono curve di lunghezza infinita e di area finita, e con semplici strumenti di analisi (conosciuti in genere anche in un quinto superiore) siamo anche stati precisi nelle stime.

Il secondo punto dell'esercizio a cui facevo riferimento nei precedenti post riguarda la seguente costruzione. Costruiamo una figura nel piano come segue:
  1. Iniziamo con un triangolo equilatero pieno con i lati di lunghezza \( 1 \).
  2. Rimuoviamo dal triangolo un triangolo equilatero con vertici nel punto medio del triangolo di partenza come nella figura che segue e poi proseguiamo col prossimo punto.
  3. Su ognuno dei piccoli triangoli equilateri pieni ottenuti ripetiamo il passaggio precedente.
Il triangolo passo dopo passo durante la prima esecuzione della costruzione

Quello che otteniamo dopo aver eseguito per la prima volta il punto 3. lo possiamo vedere nella figura sovrastante. Andando avanti all'infinito è chiaro che la struttura diventa sempre più piena di buchi. Il frattale che si ottiene reiterando il procedimento all'infinito si chiama Triangolo di Sierpinski.

In modo simile a quanto fatto nella prima parte di questa serie di post, possiamo cercare di capire quale è il perimetro di questa specie di triangolo. Non è difficile rendersi conto che ad ogni iterazione dei punti 2. e 3. abbiamo ogni volta il triplo dei triangoli ma con i lati lunghi la metà:

  • Triangolo di partenza \( P_0 = 1 + 1 + 1 = 3 \)
  • Dopo il punto 2. abbiamo \( P_1 = \frac{3}{2} + \frac{3}{2} + \frac{3}{2} = 3 \frac{3}{2} \)
  • Dopo il punto 3. abbiamo \( P_2 = \frac{3}{4} + \frac{3}{4} + \frac{3}{4} + \frac{3}{4} + \frac{3}{4} + \frac{3}{4} + \frac{3}{4} + \frac{3}{4} + \frac{3}{4} = 3 (\frac{9}{4}) \).
In realtà si può dimostrare per induzione che \( P_n = 3 \frac{3^k}{2^k} \) e dunque, come già per la curva di Koch il perimetro diverge al crescere di \( n \): \( \lim_{n\rightarrow\infty} P_n = +\infty \).

Insomma fino a questo punto non c'è nulla di inaspettato... ma ancora non vi ho detto cosa chiedeva il problema!

Consideriamo l'area del triangolo colorata in blu nella figura. Il problema chiede di trovare una formula per l'area \( A_n \) della figura al passo $n$-esimo e di calcolare \( \lim_{n\rightarrow\infty} A_n \).

Andiamo per gradi. L'area di un triangolo è data da base per altezza diviso due e l'altezza di un triangolo equilatero di lato $l$ è notoriamente $\frac{\sqrt{3} l}{2}$ (si calcola facilmente col Teorema di Pitagora). Dunque l'area di un triangolo equilatero di lato $l$ è $ \frac{\sqrt{3} l^2}{4}$.

  • Iniziamo con un triangolo di area $A_0 = \frac{\sqrt{3}}{4}$.
  • Al primo passo togliamo un triangolo col lato dimezzato, dunque avremo $A_1 = A_0 - \frac{\sqrt{3} (1/2)^2}{4} = \frac{\sqrt{3}}{4} (1 - 1/4)$.
  • Al passo successivo togliamo $3$ triangoli di lato ulteriormente dimezzato, dunque $A_2 = A_1 - \frac{\sqrt{3} (1/4)^2}{4} = \frac{\sqrt{3}}{4}(1 - 1/4 - 3/16)$
  • Dopodiché dovremo togliere $9$ triangolino di lato ulteriormente dimezzato... ed ad ogni passo saranno sempre tre volte tanti triangolini ma di lato ulteriormente dimezzato. In altre parole abbiamo: $$ A_{n+1} = \frac{\sqrt{3}}{4} (1 - \sum_{k=0}^n \frac{3^k}{4^{k+1}}) = \frac{\sqrt{3}}{4} (1 - \frac{1}{4} \sum_{k=0}^n \frac{3^k}{4^{k}}) $$
Ma a cosa tende $\lim_{n\rightarrow\infty} A_n$? La chiave di questa risposta è nell'ultima serie della formula precedente. Fortunatamente $3/4 < 1$ e dunque si può dimostrare che $$ \sum_{k=0}^\infty \frac{3^k}{4^{k}} $$ è ben definita e converge ad un valore facilmente calcolabile. In effetti si tratta di una Serie Geometrica e non è difficile dimostrare che $$ \sum_{k=0}^n x^k = \frac{1 - x^{n+1}}{1 - x} $$ da cui, nel caso $|x| < 1$, si ottiene $$ \lim_{n\rightarrow\infty} \sum_{k=0}^n x^k = \lim_{n\rightarrow\infty} \frac{1 - x^{n+1}}{1 - x} = \frac{1}{1-x} $$

Nel nostro caso dunque avremo $$ \sum_{k=0}^\infty \frac{3^k}{4^{k}} = \frac{1}{ 1 - 4/3 } = \frac{4}{4-3} = 4 $$ e dunque $$ \lim_{n\rightarrow\infty} A_{n} = \frac{\sqrt{3}}{4} (1 - \frac{1}{4} 4 ) = 0 $$

Proprio così! Al limite otteniamo una figura che ha perimetro infinito e area $0$!!!!

Da notare che con quanto detto possiamo calcolare precisamente anche i vari valori $$ A_{n+1} = \frac{\sqrt{3}}{4} (1 - \frac{1}{4} \frac{1 - (3/4)^{n+1}}{1 - 3/4}) = \frac{3^{n+1} \sqrt{3}}{4^{n+2}} $$

E per oggi è tutto... buona serata a tutti e buon 2012!

Spettri dal passato

«Nessuna impresa che dipenda, per il suo successo, dal pagare i suoi lavoratori meno di quanto serva loro per vivere ha diritto di sopravvivere in questo Paese»
(Franklin Delano Roosevelt, dal discorso sul National Industrial Recovery Act, 16 giugno 1933)


Un discorso simile andrebbe fatto anche per lo stato...


fonte della citazione: il Post

31 dicembre 2011

Esiste davvero Babbo Natale?

Nessuna specie conosciuta di renna puo' volare. Ci sono pero' 300.000 specie di organismi viventi ancora da classificare e, mentre la maggioranza di questi organismi e' rappresentata da insetti e germi, questo non esclude completamente l'esistenza di renne volanti, che solo Babbo Natale ha visto.

Ci sono 2 miliardi di bambini (Sotto I 18 anni) al mondo. Dato, pero', che Babbo Natale non tratta con bambini Musulmani, Hindu, Buddisti e Giudei, questo riduce il carico di lavoro al 15% del totale, cioe' circa 378 milioni.

Con una media di 3.5 bambini per famiglia, si ha un totale di 91.8 milioni di locazioni. Si puo' presumere che ci sia almeno UN bambino buono per famiglia.

Babbo Natale ha 31 ore lavorative, grazie ai fusi orari e alla rotazione della Terra, assumendo che viaggi da Est verso Ovest.

Questo porta ad un calcolo di 822.6 visite per secondo.

Questo significa che, per ogni famiglia Cristiana con almeno un bambino buono, Babbo Natale ha circa 1/1000 di secondo per trovare parcheggio (Cosa, questa semplice, dato che Lui parcheggia sul tetto e non ha problemi di divieti di sosta), saltare giu' dalla slitta, scendere dal camino, riempire le calze, distribuire il resto dei doni sotto l'Albero di Natale, mangiare cio' che I bambini mettono a sua disposizione, risalire dal camino, saltare sulla slitta e decollare per la prossima destinazione.

Assumendo che le abitazioni siano distribuite uniformemente (Che sappiamo essere falso, ma accettiamo per semplicita' di calcolo), stiamo parlando di 1,248 Km per ogni fermata, un viaggio totale di 120.000.000 di Km.

Questo implica che la slita di Babbo Natale viaggia a circa 1040 Km/sec, 3000 volte la velocita' del suono. Per comparazione, la sonda spaziale Ulisse (La cosa piu' veloce creata dall'uomo) viaggia appena a 43,84 Km/sec, e una renna media a circa 30 Km/h.

Il carico della slitta aggiunge un altro interessante elemento. Assumendo che ogni bambino riceva una scatola media di Lego (1 kg), la slitta porta 378.000 tonnellate, escludendo Babbo Natale (Notoriamente sovrappeso). Sulla terra, una renna puo' esercitare una forza di trazione di circa 150 Kg. Anche assumendo che una "Renna Volante" possa trainare 10 volte tanto, non e' possibile muovere quella slitta con 8 o 9 renne, ne serviranno circa 214.000. Questo porta il peso, senza contare la slitta, a 575.620 Tonnellate. Per comparazione, questo e' circa 4 volte il peso della nave Queen Elizabeth II.

Sicuramente, 575.620 Tonnellate che viaggiano alla velocita' di 1040 km/sec generano un'enorme resistenza. Questa resistenza riscaldera' le renne allo stesso modo di un'astronave che rientra nell'atmosfera. Il paio di renne di testa assorbira' 14.3 QUINTILIONI di joules per secondo. In breve si vaporizzera' quasi istantaneamente, esponendo il secondo paio di renne e creando assordanti onde d'urto (Bang) soniche.

L'intero team verra' vaporizzato entro 4.26 millesimi di secondo.


Conclusione: Babbo Natale esisteva, ... ma ora e' morto.


[NB: non conosco la fonte, se qualcuno di voi ne è al corrente vi prego di segnalarnela]

28 dicembre 2011

La Statistica (Trilussa)

Sai ched'è la statistica? È na' cosa
che serve pe fà un conto in generale
de la gente che nasce, che sta male,
che more, che va in carcere e che spósa.
Ma pè me la statistica curiosa
è dove c'entra la percentuale,
pè via che, lì, la media è sempre eguale
puro co' la persona bisognosa.
Me spiego: da li conti che se fanno
seconno le statistiche d'adesso
risurta che te tocca un pollo all'anno:
e, se nun entra nelle spese tue,
t'entra ne la statistica lo stesso
perch'è c'è un antro che ne magna due.

(Trilussa, La Statistica)

15 febbraio 2011

Carnevale della Matematica #34

Ebbene si, anche questo mese è arrivato il nuovo Carnevale della Matematica. Su Rangle troverete una quantità incredibile di post matematicosi catalogti e descritti con maestria! Che aspettate? Correte!

31 gennaio 2011

Weihnachtsübungen parte seconda

E va bene... abbiamo visto nella scorsa puntata una curva di lunghezza infinita che si può facilmente racchiudere in un rettangolo... Se avete dato un'occhiata alla pagina di Wikipedia relativa alla Curva di Koch, avrete quasi certamente letto che Mandelbrot l'aveva proposta come modello semplificato di una costa. Se, ora, pensate ad una costa e ve la immaginate da molto lontano, vi rendete conto che un buon modello per una costa è dato, almeno se guardato da lontano, da una curva chiusa. Cerchiamo di usare la curva di Koch per creare un isola... Consideriamo un triangolo equilatero di lato $ 1 $ e applichiamo la procedura per costruire la curva di Koch ai suoi tre lati, quello che otteniamo è il fiocco di neve di Koch, una una figura come quella qui sotto:

Il terzo punto dell'esercizio chiedeva: quale è l'area del fiocco di neve $ A_n $ ad ogni passo $ n $ -esimo della costruzione? E quale è il limite per $ n $ che tende all' $ \infty $ ? Sappiamo che il perimetro è infinito: abbiamo calcolato l'altro giorno che la curva di Koch ha lunghezza infinita, per costruire il fiocco di neve ne usiamo addirittura $ 3 $ :)

L'area può essere calcolata in 3 passaggi:
  • l'area del triangolo equilatero di lato $ 1 $ è $ 1/2 \cdot \sqrt{3}/2 \cdot 1 $ ( lato per radice di 3 diviso 2 per il lato per un mezzo ) quindi $ A_0 = \sqrt{3}/4 $ e possiamo aggiungerla al totale direttamente in un secondo momento;
  • l'area che resta da calcolare è $ 3 $ volte quella racchiusa sotto una curva di Koch;
  • l'area sotto una curva di Koch è calcolabile sommando l'area dei triangolini che di volta in volta si vengono a costruire (e che sono si volta in volta equivalenti)

Quindi $ A_n = \sqrt{3}/4 + 3\cdot 'somma.aree.aggiunte.ad.ogni.passaggio' $ .

Quindi cerchiamo di capire quale è l'area che si aggiunge ad ogni passaggio:
  1. abbiamo solo un nuovo triangolino equilatero di lato $ 1/3 $ di quello iniziale, quindi la sua area $ \sqrt{3}/4 \cdot 1/9 $ e di conseguenza $ A_1 = \sqrt{3}/4 ( 1 + 3\cdot 1/9) = \sqrt{3}/4 ( 1 + 1/3 ) $ ;
  2. rispetto al passaggio precedente abbiamo $ 4 $ nuovi triangolini di lato $ 1/9 $ e quindi $ 3 $ triangolini di area $ \sqrt{3}/4 \cdot 1/9^2 $ . Questo vuol dire che $ A_2 = \sqrt{3}/4 (1+ 3\cdot(1/9 + 4\cdot 1/9^2)) = \sqrt{3}/4 ( 1 + 1/3^1 + 4^1/3^3) $ .
  3. Procedendo in questo modo, si scopre presto che al passo $ n $ -esimo si hanno oltre ai triangoli del passo $ n-1 $-esimo, $ 4^{n-1} $ nuovi triangolini di lato $ 1/9^n $ , e dunque di area $ \sqrt{3}/4 \cdot 1/9^{2n} $ . Pertanto $$ A_n = \frac{\sqrt{3}}{4} \left( 1 + \sum_{i=1}^n \frac{4^{i-1}}{3^{2i-1}}\right). $$


A questo punto per calcolare $ \lim_{n\rightarrow\infty} A_n $ basterà saper calcolare il limite di una serie geometrica. Cerchiamo di fare qualche passaggio in più del necessario...

Si può dimostrare che $ \sum_{k=0}^{n} x^k = \frac{1-x^{n+1}}{1-x} $ , nel nostro caso quindi $$ \sum_{i=1}^n \frac{4^{i-1}}{3^{2i-1}} = \frac{3}{4} \sum_{i=1}^n \frac{4^{i}}{3^{2i}} = \frac{3}{4}\; \frac{1-(4/9)^n}{1-4/9} .$$

Siccome $ 4/9<1 $, la funzione $(4/9)^x$ tende a schiacciarsi molto in fretta verso lo $ 0 $ al crescere della $ x $:
\begin{graph} width=400; height=300; xmin=0; xmax=5; ymin=0; plot((4/9)^x);\end{graph}
In particolare $ \lim_{n\rightarrow\infty} (4/9)^n = 0 $. Quindi $ \lim_{n\rightarrow\infty} A_n = \lim_{n\rightarrow\infty} \frac{3}{4}\; \frac{1-(4/9)^n}{1-4/9} = 27/20 $.

A questo punto dovrebbe essere chiaro che $ \lim_{n\rightarrow\infty} A_n = \frac{\sqrt{3}}{4} \left( 1 + \frac{27}{20}\right) = \frac{2\sqrt{3}}{5} $! Cioè questo fiocco di neve (o anche questa piccola isola) ha un perimetro infinito ma, nonostante questo, la sua area resta finita!!

Se ci pensate bene questa è una cosa davvero strana: pensate ad un rettangolo o un pentagono, l'unico modo che hanno per avere perimetro infinito sarebbe avere uno o più lati infiniti e quindi non sarebbe possibile disegnarli. E non si tratta soltanto di un problema de processi infiniti: pensate di continuare ad aggiungere lati sempre più piccoli ottenendo ad ogni passo una figura regolare... probabilmente otterrete una circonferenza, eppure anche quella ha una lunghezza finita e ben definita.



La prossima volta cercheremo di trovare qualche altra stranezza...

30 gennaio 2011

Farfalle Matematiche

Alcuni di voi conosceranno Tom Beddard, di subblue, per il magnifico video "Surface Detail" in cui si può ammirare la magnifica evoluzione di una superficie frattale: se avete visto il video e guardate l'immagine che ho postato qui sotto capirete subito di chi si tratta...


Questa mattina, su Neatorama, era segnalato un suo vecchio progetto: "Butterfly Curves" del 2008. Riprendendo una formula pubblicata da Clifford Pickover in Computers and the Imagination, Beddard ha creato un bel programmino in flash che vi permette di disegnare le vostre farfalle matematiche personalizzate.


La formula utilizzata, in coordinate polari, è

Cambiandone i parametri potete vedere la magia della matematica: la vostra curva evolve e si trasforma in tempo reale, per distruggersi in una massa caotica e riapparire misteriosamente in una nuova inaspettata forma ordinata e regolare!

Potete divertirvi a creare le vostre farfalle cliccando qui: Butterfly Curves


Con questo posto vi segnalo anche gli ultimi carnevali della fisica e della matematica:

28 gennaio 2011

Weihnachtsübungen parte prima

È giunta l'ora di scrivere qualcosa su quello che si fa qui in Germania... e anche di ricominciare a partecipare ai Carnevali della Matematica visto che ormai sono latitante da tantissimo! Per questo motivo ho deciso di recuperare uno degli esercizi che abbiamo dato agli studenti di Analisi I per le vacanze di Natale, spezzarlo in tre parti e risolverlo brevemente.

Mi è sembrato carino e interessante perché si tratta di esercizi fattibili tranquillamente anche da ragazzi di quinto superiore (i concetti più esoterici sono quelli di limite e successione, ci torneremo sopra tra poco) e che aprono le porte alle tante stranezze che si trovano nella matematica...

Parleremo di frattali, figure definite da alcuni patologie e da altri arte sublime, limiti di processi analitici e algebrici, misteriose figure dalle infinite regolarità irregolari. Ma prima... chidiamo aiuto a Wikipedia e facciamo un breve ripasso (molto a grandi linee) dei concetti di cui avremo bisogno:
  • In matematica, una successione di numeri razionali può essere definita intuitivamente come un elenco ordinato costituito da una infinità numerabile di frazioni, dette termini della successione, tra le quali sia possibile distinguere una prima (che indicheremo $ a_0 $ ), una seconda ( $ a_1 $ ), una terza ( $ a_2 $ ) e in generale una $ n $ -esima ( $ a_n $ ) per ogni intero $ n $ . Gli elementi della serie sono dunque ordinati e possono essere indicati come $ (a_n)_{n\in\mathbb{N}} $ o più semplicemente $ a_0, a_1, \dots, a_n, \dots $ .
  • Nell'analisi matematica il meccanismo delle serie è stato introdotto per generalizzare l'operazione di somma al caso in cui si vogliano sommare infiniti termini. In altre parole si tratta di un modo compatto per scrivere la somma di tanti termini. Se volessimo sommare i primi $ n $ elementi della successione scriveremo $ \sum_{i=0}^n a_i $ che sta appunto per $ a_0+a_1+a_2+\cdots+a_{n-1}+a_n $ . [Nota: questo ci servirà nel prossimo post]
  • Il limite di una successione $ (a_n) $ di numeri reali è un numero a a cui la successione "si avvicina sempre di più". Formalmente, questa nozione è resa chiedendo che:
    Per ogni $ \epsilon > 0 $ esista un numero naturale $ N $ tale che $ | a_n - a | < \epsilon $ per ogni $ n > N $ . In tal caso si dice che $ \lim_{n\rightarrow+\infty} a_n = a $ . Se tale $ N $ non esiste la successione si dice divergente (o in un certo senso tendente all' $ \infty $ ).
Per esempi pratici e più semplici vi rimando direttamente alle pagine di Wikipedia linkate qui sopra. Detto questo andiamo a vedere quale è il testo del primo problema...

Si proceda con la seguente costruzione
  1. Si consideri il segmento identificato con l'intervallo $ l_0=[0,1]\subset\mathbb{R} $ .
  2. Si divida l'intervallo in tre parti uguali, si tolga il segmento centrale e si sostituisca con due segmenti della stessa lunghezza di quello rimosso, posizionati come se fossero i lati di un triangolo equilatero al quale si è tolta la base.
  3. Si ripeta la procedura a partire dal punto 1. per ogni segmento ottenuto
Partendo dal segmento unitario e ripetendo 4 volte la costruzione si ottiene la seguente figura


La curva ottenuta si chiama curva di Koch ed è nota per essere un esempio di curva continua e non differenziabile in ogni punto (ok ok, non dirò più certe parolacce). Si tratta di una curva che ha diviso i matematici sin dall'inizio... Cesàro ne ha parlato così: "È questa similitudine tra il tutto e le sue parti, perfino quelle infinitesimali, che ci porta a considerare la curva di Koch alla stregua di una linea veramente meravigliosa tra tutte. Se fosse dotata di vita, non sarebbe possibile annientarla senza sopprimerla al primo colpo, poiché in caso contrario rinascerebbe incessantemente dalle profondità dei suoi triangoli, come la vita nell'universo". Mentre Hermite dichiarava di "ritrarsi con spavento e orrore da questa piaga lamentevole delle funzioni che non hanno derivata".

Per quanto riguarda il nostro problema, ci chiede: quanto è lunga? Si può trovare una formula per descrivere la lunghezza della curva ad ogni passo $ l_n $ della costruzione e calcolare $ \lim_{n\rightarrow+\infty} l_n $ .

Facciamo un po' di euristica... al primo passo $ l_0 $ abbiamo solo un segmento ( $ 1 = 4^0 $ ) di lunghezza $ 1 $ ( $ 1=1/3^0 $ ) pertanto $ l_0 = 1\cdot 1 = 1 $ .

Al passo successivo i segmenti sono diventati $ 4 $ ed hanno tutti lunghezza $ 1/3 $ , per cui $ l_1 = 4 \cdot 1/3 = 4/3 = 1,3333333 $ .

Ripetendo di nuovo il procedimento avremo che per ognuno dei 4 segmenti precedenti ci sono $ 4 $ nuovi segmenti di lunghezza $ 1/3 $ dei precedenti, per cui i segmenti sono diventati $ 4\cdot 4 = 4^2 = 16 $ e hanno lunghezza $ 1/3 \cdot 1/3 = 1/3^2 = 1/9 $ . Pertanto $ l_2 = 4^2 \cdot 1/3^2 = (4/3)^2 = 16/9 = 1,7777777 $ .

Dovrebbe essere ormai abbastanza chiaro quello che succede portando avanti il procedimento. Infatti già dai primi passaggi si può intuire che i segmenti quadruplicano di volta in volta e la loro lunghezza si riduce ad un terzo di quella precedente. Questo vuol dire che all' $ n $ -esimo passaggio i segmenti saranno $ 4^n $ e la lunghezza di ognuno di loro sarà $ 1/3^n $ . Perciò $ l_n = 4^n/3^n = (4/3)^n $ .

A questo punto molti di voi sapranno già quale è il limite che otterremo, ma facciamo un passo indietro e cerchiamo di capire quale è l'andamento di $ (4/3)^x $ per farci un'idea di cosa aspettarci:

\begin{graph} width=400; height=300; xmin=0; xmax=10; ymin=1; plot((4/3)^x);\end{graph}

Siccome $ 4/3 > 1 $ la funzione $ (4/3)^x $ è crescente, cioè più la $ x $ è grande e più la funzione è grande, e questo riportato al discorso del limite fa in modo che $ \lim_{n\rightarrow+\infty}(4/3)^n = +\infty $ cioè il limite diverge. Tirando le somme, quella simpatica figura che avete visto sopra (contenuta in qualche manciata di pixel) ha una lunghezza infinita.

Non vi stupisce minimamente? Capisco che si tratta di un processo infinito e difficile da vedere, ma anche al limite la curva non cresce (in maniera visibile) rispetto a quella che vedete in figura eppure la sua lunghezza è infinita. Inoltre si tratta di una curva cosiddetta auto-simile, cioè se zoomate su un suo qualsiasi segmento vi ritroverete un pezzo di curva dal perimetro infinito praticamente identico alla curva iniziale (e quasi sicuramente un po' ruotato).

Ma questa è solo la prima delle sorprese... molte altre devono ancora arrivare con il prossimo post.


P.S. Tutto questo si può provare in modo rigoroso, in particolare sono stato molto superficiale nel descrivere la parte relativa alla divergenza del limite di $ a^n $ quando $ a>1 $ , nel caso a qualche lettore interessi posso tornare sul discorso e fare una dimostrazione rigorosa di questo fatto.



Per ulteriori informazioni:
Curva di Koch (Wikipedia)

Per il pdf originale con gli esercizi (attenti, è in Tedesco):

25 gennaio 2011

Consapevolezze vaganti

Prima di entrare nel dettaglio di questo post, vi chiedo soltanto di guardare il video: fissate il puntino al centro e concentratevi. Notate quello che accade poi proseguite con la lettura...



Se avete seguito le istruzioni probabilmente avete visto che l'anello di pois all'inizio è fermo e i pois stanno cambiando colore, dopo un po' l'anello si muove e i pois smettono di cambiare colore...

Ora provate a riguardare il video, questa volta fissate uno dei pallini e continuate a seguirlo con lo sguardo per tutto il corso del video. Scoprirete che i pallini hanno continuato a cambiare colore anche mentre l'anello si stava muovendo, semplicemente non ci si fa caso! Il fenomeno per cui non si nota il cambio di colore degli oggetti in movimento è chiamato silencing (silenziamento).

La dimostrazione di silenziamento a cui avete appena partecipato è stata descritta in uno studio scientifico, più precisamente: Suchow, J.W., & Alvarez, G.A. (2011). Motion silences awareness of visual change. Current Biology. doi:10.1016/j.cub.2010.12.019

Tutta una serie di dimostrazioni e una copia dell'articolo si possono trovare nella pagina relativa al silenziamento di Harvard: http://visionlab.harvard.edu/​silencing/​.


Fonte: Neatorama

24 gennaio 2011

A proposito dei proflli psicologici...

Era l'anno scorso, quando scrivevo di un javascript capace di scrivere profili psicologici personalizzati sulla base del traffico web: Traffico Web e Profili Psicologici. Come vi avevo promesso e considerrato che il numero di votanti non crescerà più di tanto, vi spiegherò come funziona.

Come qualcuno aveva già capito il codice javascript non esiste, si trattava di un profilo psicologico preconfezionato e messo lì uguale per tutti per poter fare il mio test in piccolo dell'effetto Barnum (o effetto Forer). In effetti, il profilo psicologico che ho messo sul blog è proprio la traduzione del profilo psicologico usato da Bertram Forer, uno psicologo, per un famoso test effettuato nel 1948 (e ritestato innumerevoli volte ovunque in giro per il mondo). Citando Wikipedia (vedi Effetto Forer):

Nel 1948, lo psicologo Bertram R. Forer consegnò un test di personalità ai suoi allievi. Al termine fornì a ciascuno di loro un'analisi della personalità quale risultato del test effettuato.
In seguito egli invitò ognuno degli studenti a dare un giudizio, su una scala da 0 (molto scarso) a 5 (eccellente), al profilo fornito sulla base di quanto questo risultato si adattasse a loro stessi. La media fu di 4,26. Solo al termine Forer rivelò agli studenti che era stato consegnato a tutti lo stesso profilo psicologico

Nel nostro caso la media è stata di 4,06 su un punteggio variabile da 1 a 5. La cosa sorprendente è che il 75% dei votanti ha considerato più che accurato il profilo (v. figura sottostante). Provate a leggerlo, ad una prima lettura sembra perfetto, infatti il vostro cervello in qualche modo sta filtrando il testo ricordando soltanto le parti che vi si addicono. Se però lo rileggete attentamente, ad ogni rilettura scoprirete nuovi dettagli che vi erano sfuggiti e che rendono il testo sempre meno preciso.



In effetti l'effetto Forer, o effetto Barnum, "è l'osservazione secondo cui ogni individuo, posto di fronte a un profilo psicologico che crede a lui riferito, tende a immedesimarsi in esso ritenendolo preciso e accurato, senza accorgersi che quel profilo è abbastanza vago e generico da adattarsi ad un numero molto ampio di persone." (cfr. Effetto Forer - Wikipedia)

Ed è proprio questo effetto il motivo dell'abbondanza di previsioni astrologiche, oroscopi e simili. Per quante obiezioni gli scettici possano portare avanti, lo scontro con le esperienze personali dei lettori quotidiani di astrologia (e anche di quelli saltuari) non può reggere il confronto. Quante volte vediamo gente affannarsi per dimostrare la bontà e la verità delle predizioni di un oroscopo o del profilo psicologico del proprio segno Zodiacale o dell'Oroscopo Cinese? E non possiamo obiettare, è vero, c'erano un sacco di dettagli azzeccati... Non a caso, le frasi utilizzate da Forer nella compilazione del profilo "universale" furono estratte qua e la da una rivista di astrologia.

Il fatto è che il nostro cervello vede solo quello che vuole vedere e un giudizio obiettivo e distaccato è praticamente impossibile. Potrei citare decine di studi e di ricerche verificati e ritestati decine e decine di volte a riguardo. In particolare è noto da più di vent'anni che il risultato è tanto più accettato quanto più il soggetto
  • è convinto che l'analisi sia personalizzata (sul segno zodiacale, il nome, la data di nascita, il risultato di un test di Donna Moderna, ...)
  • è soggetto all'autorità di chi scrive il pezzo (devoti lettori di Paolo Fox vs fedeli del Mago Otelma...)
e quanti più tratti positivi vengono delineati.
(vedi a riguardo: Dickson, D. H., Kelly, I. W., The Barnum effect in personality assessment: a review of the literature, Psychological Reports 57:367-382 (1985) )



Ognuno è libero di credere a quello che vuole e non voglio fare in nessun modo un articolo di protesta o denuncia, ma per favore la prossima volta che vi fanno un profilo psicologico o una lettura della mano o qualunque altra cosa simile (a meno che non sia io a farvelo ;P ) fatevelo scrivere nero su bianco (trascrivete tutto) e rileggete attentamente più e più volte quello che vi hanno detto e quello che avete detto voi... sono sicuro che scoprirete cose che non avreste mai immaginato!

Materiale addizionale: