• Non ci sono risultati.

La sua discretizzazione di Eulero, su intervallini di ampiezza costante, ha la forma teorica

N/A
N/A
Protected

Academic year: 2021

Condividi "La sua discretizzazione di Eulero, su intervallini di ampiezza costante, ha la forma teorica"

Copied!
5
0
0

Testo completo

(1)

1 Simulazione di SDE in dimensione 1 e di moti browniani in 2D

1.1 Esempio lineare

Consideriamo l’equazione, con > 0,

dX t = X t dt + dB t ; X 0 = x:

La sua discretizzazione di Eulero, su intervallini di ampiezza costante, ha la forma teorica

X t

n+1

X t

n

= X t

n

dt + p

dt B t

n+1

B t

n

p dt dt : = t n+1 t n

dove le v.a.

Z n = B t

n+1

B t

n

p dt

sono gaussiane standard indipendenti. La forma algoritmica può essere la seguente; prima di tutto si crea una funzione, per noi il drift, poi si scrive il programma vero e proprio:

drift=function(x) -x

n=10000; dt=0.01; h=sqrt(dt); sig=1 X=1:n; X[1]=1

for (t in 1:(n-1)) {X[t+1]=X[t]+ dt*drift(X[t]) + h*sig*rnorm(1)}

plot(X,type="l", col=2); abline(h=0); abline(0,1000)

Esercizio: provare con altre condizioni iniziali ed altri valori di e .

(2)

1.2 Esempio nonlineare

Consideriamo l’equazione (detta "two-well-potential") dX t = X t X t 3 dt + dB t ; X 0 = x:

La sua discretizzazione di Eulero, su intervallini di ampiezza costante, ha la forma teorica

X t

n+1

X t

n

= X t

n

X t 3

n

dt + p dtZ n

dt : = t n+1 t n ; Z n = B t

n+1

B t

n

p dt : Ecco il codice corrispondente ed una simulazione:

drift=function(x) x-x^3

n=10000; dt=0.01; h=sqrt(dt); sig=0.5 X=1:n; X[1]=1

for (t in 1:(n-1)) {X[t+1]=X[t]+ dt*drift(X[t]) + h*sig*rnorm(1)}

plot(X,type="l", col=4); abline(h=0); abline(0,1000) Esercizio: provare con altre condizioni iniziali ed altri valori di ed n.

1.3 Esercizio importante

Esercizio. In entrambi gli esempi, ra¢ gurare con un istogramma e con una densità continua

la distribuzione al tempo t (es: t=1, 10, 50, 100).

(3)

2 Moto browniano in 2D

n=10000; dt=0.01; h=sqrt(dt) X=1:n; Y=1:n

X[1]=0; Y[1]=0 for (t in 1:(n-1)) { X[t+1]=X[t]+h*rnorm(1) Y[t+1]=Y[t]+h*rnorm(1) }

plot(X,Y,type="l", col=3); abline(h=0); abline(0,1000)

Le seguenti due varianti mostrano una sorta di …lmato, in due diverse modal- ità.

n=10000; dt=0.01; h=sqrt(dt) X=1:n; Y=1:n

X[1]=0; Y[1]=0

plot(c(-10,10),c(-10,10)) abline(h=0)

abline(0,1000) for (t in 1:(n-1)) { X[t+1]=X[t]+h*rnorm(1) Y[t+1]=Y[t]+h*rnorm(1)

lines(X[1:t],Y[1:t],type="l", col=3) }

...

n=10000; dt=0.01; h=sqrt(dt) X=1:n; Y=1:n

X[1]=0; Y[1]=0

(4)

for (t in 1:(n-1)) { X[t+1]=X[t]+h*rnorm(1) Y[t+1]=Y[t]+h*rnorm(1) plot(c(-10,10),c(-10,10)) abline(h=0)

abline(0,1000)

lines(X[1:t],Y[1:t],type="l", col=3) }

3 Molti moti browniani in 2D

Ora non possiamo più ra¢ gurare le traiettorie, non si distinguerebbe nulla. Si possono ad esempio ra¢ gurare le posizioni al tempo …nale:

n=1000; N=1000; dt=0.01; h=sqrt(dt) X=matrix(nrow=N,ncol=n); Y=X X[,1]=rnorm(N,0,1); Y[,1]=rnorm(N,0,1) for (t in 1:(n-1)) {

X[,t+1]=X[,t]+h*rnorm(N) Y[,t+1]=Y[,t]+h*rnorm(N) }

plot(c(-10,10),c(-10,10)); lines(X[,n],Y[,n],type="p", col=1) abline(h=0); abline(0,1000)

Questo è un esempio semplice di sistema di particelle. Con moltissima as-

trazione può essere pensato come un insieme di cellule tumorali all’interno di

un tessuto.

(5)

Vorremmo apprezzare il movimento delle particelle. Il software R ogni tanto mostra delle deboleze, da questo punto di vista. Ecco un primo programma che però, se si cambiano i parametri, non sempre mostra delle …gure (forse il software non f in tempo a disegnarle).

n=1000; N=1000; dt=0.001; h=sqrt(dt) X=matrix(nrow=N,ncol=n); Y=X

X[,1]=rnorm(N,0,1); Y[,1]=rnorm(N,0,1) for (t in 1:(n-1)) {

X[,t+1]=X[,t]+h*rnorm(N) Y[,t+1]=Y[,t]+h*rnorm(N) plot(c(-10,10),c(-10,10))

lines(X[,t+1],Y[,t+1],type="p", col=1) abline(h=0)

abline(0,1000) }

Ecco un modo di inserire un rallentatore, o più precisamente di far disegnare solo alcuni fotogrammi:

n=10000; N=1000; dt=0.001; h=sqrt(dt) X=matrix(nrow=N,ncol=n); Y=X

X[,1]=rnorm(N,0,1); Y[,1]=rnorm(N,0,1) T=500

for (t in 1:(n-1)) { X[,t+1]=X[,t]+h*rnorm(N) Y[,t+1]=Y[,t]+h*rnorm(N) if(t%%T<=0 )

{

plot(c(-10,10),c(-10,10))

lines(X[,t+1],Y[,t+1],type="p", col=1) abline(h=0)

abline(0,1000) }

}

Riferimenti

Documenti correlati

La provincia più longeva è, per entrambi i generi, Firenze con La provincia più longeva è, per entrambi i generi, Firenze con un valore di 79.58 anni per gli uomini e di 84.64 anni

Per esempio, il ditte- ro Drosophila melanogaster (noto anche come: moscerino della frutta), è stato spesso impiegati come organismo modello nell’ambito della genetica e

Dal punto di vista terapeutico infatti, mentre le cellule non più proliferanti non rappresentano un grosso problema, le cellule quiescenti rendono la

(FATTE SALVE LE VERIFICHE DI COMPETENZA DELL'UFFICIO NAZIONALE PER IL SERVIZIO CIVILE) NAZNZ0179117102931NNAZ. Insieme

Per fortuna l’informatore decide di aiutare ancora l’ispettore fornendogli indizi proprio attraverso il computer. Il numero

Finalmente arrivano informazioni sul complice della Signora Violet, l’abilissima ladra arrestata da Numerik.. Gli indizi sono contenuti in una busta chiusa: l’ispettore Numerik la

E’ sempre possibile rendere positivo il coefficiente quadratico.. Infatti, nel caso in cui a &lt; 0 , basterà moltiplicare per -1

• Quello che sembrava un piccolo rompicapo senza importanza, nelle mani di Eulero diventò un grande problema matematico, punto di partenza della teoria dei grafi e di una nuova