Pagina Principale

Passeggiata in una direzione

Analizziamo il caso di passeggiata, in una sola direzione, in cui il passo dell'ubriaco vari seguendo una legge come

o anche come:

  • Math.round(Math.random())+Math.round(Math.random())-1
  • Math.round(Math.random())+Math.round(Math.random())-2*Math.round(Math.random())
  • (Math.random()*Math.random()<Math.random()*Math.random())?-1:1
  • (2*Math.round(Math.random())-1)*Math.pow(2,2*Math.round(Math.random())-1)
  • sigma*(new Array(1200).fill(0).reduce(x=> x+Math.random(),0) - 600)/10 + mu
  • Math.exp((nu-sigma*sigma/2)+sigma*(new Array(1200).fill(0).reduce(x=> x+Math.random(),0) - 600)/10))
  • ...
dove la penultima descrive un passo che varia seguendo una legge gaussiana - ottenuta come somma di 1200 varabili uniformi - con media mu e scarto quadratico medio sigma mentre nell'ultimo è il logaritmo del passo a variare seguendo una legge gaussiana, producendo quello che si dice moto browniano geometrico. Gli ultimi sono stati proposti come modelli per dati di serie temporali del mondo reale come i mercati finanziari, il penultimo suggerito nel 1900 in Théorie de la spéculation da Louis Bachelier, l'ultimo settant'anni dopo da Black-Scholes per la modellazione dei prezzi delle opzioni.

var v=new Array(n).fill().map(x => eval(legge.value));

Ad esempio per n= come numero totale dei passi da compiuti si ottiene:
mentre le posizioni occupate successivamente per effetto di queste scelte, \[\displaystyle pos(n+1)=pos(n)+passo(n)=pos(0)+\sum_{k=0}^npasso(k),\] che quindi possono essere calcolate come somme cumulate, sono:

con grafico

e istogramma della distribuzione sperimentale delle posizioni raggiunte alla fine simulando passeggiate

n=4

Analizziamo il caso in cui sia data una legge per la variazione del passo dell'ubriaco, ad esempio
o anche:

  • Math.round(Math.random())+Math.round(Math.random())-1
  • Math.round(Math.random())+Math.round(Math.random())-2*Math.round(Math.random())
  • (Math.random()*Math.random()<Math.random()*Math.random())?-1:1
  • ...
e il passo sia la cumulata di quelle - ma potrebbe anche essere una media come nel caso di passeggiata gaussiana, ... -

var dv=new Array(n).fill().map(x => eval(legge.value)); var v=dv.map((sum => value => sum += value)(0));

Se ad esempio n= è il numero totale dei passi da compiuti, i passi saranno
mentre le posizioni occupate successivamente per effetto di questi passi:

con grafico

È più chiaro, poiché sintetico, rappresentare graficamente la distribuzione mediante istogramma Possiamo metterla a confronto con quella che si ottiene simulando passeggiate

n=4

Analizziamo il caso in cui il passo dell'ubriaco possa variare tra $-M$ e $M$ non uniformenmente ma secondo una legge binomiale, essendo anche $M$ numero positivo tra 1 e 10 scelto casualmente sempre con legge binomiale.

function aCasoBino(n,p){ var aCaso=Math.random(); var k=0; var pr=Math.pow(1-p,n); var Fr=pr; while (aCaso>=Fr){ pr*=(n-k)/(k+1)*p/(1-p); Fr+=pr; k++; } return k }
e quindi i passi
var v=new Array(n).map(x=> {M=aCasoBino(10,0.5); return aCasoBino(2*M,0.5)-M});

Se ad esempio n= è il numero totale dei passi da compiuti, i passi saranno
mentre le posizioni occupate successivamente per effetto di questi passi:

con grafico

È più chiaro, poiché sintetico, rappresentare graficamente la distribuzione mediante istogramma Possiamo metterla a confronto con quella che si ottiene simulando passeggiate

n=4