Ago di Buffon

(Reindirizzamento da Problema dell'ago di Buffon)

In statistica e in calcolo delle probabilità, il problema dell'ago di Buffon è una questione posta nel XVIII secolo da Georges-Louis Leclerc, conte di Buffon: si supponga di avere un motivo decorativo a strisce parallele (per esempio un pavimento in parquet o un tappeto a strisce), tutte della stessa larghezza, su cui si fa cadere in modo casuale un ago. Qual è la probabilità che l'ago cada in una posizione in cui tocca una linea fra le due strisce? Utilizzando la geometria integrale il problema può essere risolto evidenziando una dipendenza da π. Ne consegue che può essere usato come metodo Monte Carlo per calcolare pi greco.

Soluzione modifica

 
L'ago a giace a cavallo di una linea, l'ago b no.

Il problema in termini matematici è: dato un ago di lunghezza   lanciato su un piano con linee parallele a distanza  , qual è la probabilità che esso intersechi una linea?

Sia x la distanza del centro dell'ago rispetto alla linea più vicina, e sia θ l'angolo acuto tra l'ago e le linee.

La funzione di densità di probabilità di x fra 0 e t/2 sarà

 

La funzione di densità di probabilità di θ fra 0 e π/2 sarà

 

Le coordinate generalizzate x e θ sono variabili aleatorie fra loro indipendenti, e quindi la densità di probabilità si fattorizza nel prodotto:

 

L'ago attraversa una linea se

 

Integrando la densità di probabilità si ottiene la probabilità che l'ago attraversi una linea.

Si distinguono allora due casi,   e  .

Se   l'integrale è:

 

dalla quale si può ricavare π:

 

A posteriori conviene riferirsi non alle due variabili distanza fra le rette e lunghezza dell'ago, ma solamente al loro rapporto detto spaziatura adimensionale:

 

per cui il caso che stiamo analizzando è quello in cui  

 

Dalla definizione frequentista di probabilità di intersezione come limite della frequenza relativa di intersezione (rapporto fra il numero m di esperimenti in cui avviene l'intersezione e numero n degli esperimenti totali) per infiniti esperimenti:

 

si deduce che:

 

ovvero se il numero di esperimenti è abbastanza grande (appartiene ad un intorno di infinito):

 

Nell'altro caso invece, in cui  , il dominio di integrazione è diverso:

 

dove   è il minimo tra   e  .

quindi la probabilità cambia:

 

ovvero pi greco è legato più propriamente alla probabilità di non intersezione (1-p):

 

e secondo un ragionamento analogo a quello compiuto nell'altro caso si stima come:

 

La stima di Lazzarini modifica

Il matematico italiano Mario Lazzarini realizzò l'esperimento dell'ago di Buffon nel 1901 con 3408 casi totali, ottenendo per π la nota stima 355/113. Questo valore ha precisione superiore a 3×10−7; in effetti, non c'è approssimazione razionale migliore con meno di cinque cifre nel numeratore e denominatore. È un risultato impressionante, ma frutto di almeno un vizio logico.

Lazzarini infatti scelse una spaziatura adimensionale pari a 6/5, per cui la sua stima risultava in generale:

 

la scelta è assolutamente legittima; il fatto è però che egli volendo ottenere esattamente 355/113 conoscendo in partenza la coincidenza matematica, calcolò che doveva ottenere un numero di casi favorevoli:

 

Naturalmente il numero di casi favorevoli m è sempre intero, quindi non si può ottenere esattamente la stima 355/113 se n non è un multiplo di 213. D'altra parte scegliendo di effettuare solo 213 esperimenti con quella spaziatura e dicendo di avere ottenuto 113 esiti favorevoli il vizio si palesa molto in fretta. Per camuffare conviene quindi scegliere un multiplo abbastanza alto: in effetti 3408 è 16 volte 213, quindi potrebbe essere stato scelto sulla base del risultato influenzandolo. Senza sapere prima il risultato da ottenere non c'è alcuna ragione per scegliere di effettuare 3408 piuttosto che qualsiasi altro numero di esperimenti.

Come secondo vizio egli ripeté quasi sicuramente la prova finché gli capitò m esattamente pari a 1808, ovvero 16 volte 113: la probabilità di ottenere al primo colpo 1808 con 3408 casi è bassissima. La probabilità di ottenere esattamente il numero di casi favorevoli per farsi tornare i conti è in effetti 1/n, quindi per sperare di ottenerlo effettuando realmente la prova non conviene scegliere un numero troppo alto di casi altrimenti si rischia di buttare via un sacco di tempo in esperimenti che non danno il rapporto voluto prima di arrivare a quello fatale.

Supponendo invece che Lazzarini fosse in buona fede e abbia semplicemente avuto fortuna, scegliendo il numero dei casi senza il vincolo sul risultato da ottenere ed effettuando una sola volta l'esperimento da 3408 casi ottenendo proprio 1808, il vizio riguarda la ripetibilità. Se lui o chiunque altro ripetesse l'esperimento con questa procedura con 3408 casi, quasi sicuramente otterrebbe un numero troppo diverso da 1808 per potere affermare di avere raggiunto con gli esperimenti la precisione sul risultato anche solo di tre cifre significative.

Simulazione numerica modifica

Si presenta di seguito un codice Matlab per effettuare una simulazione numerica valida nel caso in cui la lunghezza dell'ago sia minore della distanza fra le linee.

% Simulazione dell'Esperimento degli Aghi di Buffon con Grafica

% Parametri
numAghi = 1000;          % Numero di aghi da simulare
lunghezzaAgo = 1;       % Lunghezza dell'ago
distanzaTraLinee = 2;   % Spaziatura tra le linee parallele
larghezzaScheda = 2;    % Larghezza della scheda

% Inizializzazione variabili
lineeAttraversate = 0;

% Inizializzazione del grafico
figure;
hold on;
xlim([0 larghezzaScheda]);
ylim([0 distanzaTraLinee]);
title('Simulazione dell''Esperimento degli Aghi di Buffon');
xlabel('Larghezza della Scheda');
ylabel('Distanza tra Linee');

% Simulazione e tracciamento degli aghi
for i = 1:numAghi
    puntoMedio = larghezzaScheda * rand();
    angolo = pi * rand();
    distanzaDallaLinea = min(puntoMedio, distanzaTraLinee - puntoMedio);
    
    x = [puntoMedio - 0.5 * lunghezzaAgo * cos(angolo), puntoMedio + 0.5 * lunghezzaAgo * cos(angolo)];
    y = [0, lunghezzaAgo * sin(angolo)];
    
    plot(x, y, 'b');
    
    if distanzaDallaLinea <= 0.5 * lunghezzaAgo * sin(angolo)
        lineeAttraversate = lineeAttraversate + 1;
    end
end

% Disegna le linee parallele
line([0 larghezzaScheda], [0 0], 'Color', 'r', 'LineWidth', 2);
line([0 larghezzaScheda], [distanzaTraLinee distanzaTraLinee], 'Color', 'r', 'LineWidth', 2);

% Calcola la probabilità stimata
probabilitàStimata = lineeAttraversate / numAghi;

% Calcola la probabilità teorica
probabilitàTeorica = 2 * lunghezzaAgo / (pi * distanzaTraLinee);

% Visualizza i risultati
fprintf('Numero di aghi: %d\n', numAghi);
fprintf('Probabilità stimata: %.4f\n', probabilitàStimata);
fprintf('Probabilità teorica: %.4f\n', probabilitàTeorica);

hold off;


Altri progetti modifica

Collegamenti esterni modifica

  Portale Matematica: accedi alle voci di Wikipedia che trattano di matematica