Dreke90 di Dreke90
Genius 6795 punti
Questo appunto contiene un allegato
Programma c++ - Moto browniano scaricato 47 volte

Programma c++ (moto browniano)

In un fluido ha luogo il cosiddetto "moto browniano", consistente in piccoli spostamenti casua -li delle molecole istante per istante.
Per studiare questo fenomeno (e altri analogamente stocastici) si introduce il concetto di "random walk",che ne e' un buon modello:
All'istante t_0, la particella si trova in x_0 = 0.
ll'istante t_1 essa compie uno spostamento in una direzione arbitraria - e completa- mente scorrelata da cio' che succede negli altri istanti - di una quantita' fissa, ad esempio 1 (e' solo una scelta di unita' di misura).
Cosi' via, ad ogni istante la posizione della particella variera' di +/- 1.
Se invece di una particella si fanno evolvere - indipendentemente - N particelle, ad ogni istante si dispone di un campione statistico (piu' ampio e', piu' accurata e' la simulazione) di cui calcola:
- distanza media dall'origine.

- distanza quadratica media dall'origine.
Il primo valore, ci si aspetta, oscillera' indefinitamente attorno a zero, per la simmetria del problema; il secondo invece crescera' man mano che gli spostamenti casuali disperdono tra loro le particelle allontanandole dall'origine (in media).
La trattazione matematica del modello dice che la distanza quadratica media cresce proporzio-nalmente alla radice quadrata del numero di passi compiuti (e che il fattore di proporziona-lita' vale 1 se lo spostamento per passo e' unitario).
Il programma realizza una tabella tipo:
N. passo <x> sqrt(<x^2>)
==============================================
0 -0.06 1
1 -0.14 1.48324
2 -0.06 1.7088
3 -0.08 1.89737
4 -0.18 2.23607
5 -0.1 2.40832
6 -0.04 2.48998
7 0.06 2.8775
8 0.08 3.06594
9 0.14 3.26803
10 0.12 3.49285
11 0.12 3.58887

Registrati via email