%%%%%%%%%% ESERCIZI DI BASE %%%%% Esercizio n. 1. Scrivere una funzione y <- .......(x) che associa y=1 al valore x=0, mentre associa y=0 a tutti le altre x. %%%%% Esercizio n. 2. Scrivere una funzione y <- .......(x,a,b) che produce y=1 se x è compreso tra a e b, mentre produce y=0 altrimenti. %%%%% Esercizio n. 3. Generare 100 numeri aleatori secondo una v.a. che vale 1 con probabilità p, -1 con probabilità (1-p). Es. p=0.2. Plottarli. %%%%% Esercizio n. 4. Generare 100 numeri aleatori secondo una v.a. a tre valori, che vale 1 con probabilità p1, 0 con probabilità p2, -1 con probabilità p3, dove p1+p2+p3=1. Es: p1=0.1, p2=0.1, p3=0.8. %%%%%%%%%% ESERCIZI SU CATENE A TEMPO DISCRETO %%%%% Esercizio n. 5. Simulare (nel senso di produrre esempi di traiettorie di) una catena di nascita e morte a tempo discreto, nel caso in cui si passa da k a k+1 con probabilità p, mentre a k-1 con probabilità (1-p), probabilità uguali per tutti i k. Es. p=4, 1000 passi, stato di partenza =7. Stimare sperimentalmente le probabilità a regime. Controllare che il risultato sia giusto rispetto alla teoria. %%%%% Esercizio n. 6. Ripetere l'esercizio quando le probabilità di transizione variano con k. %%%%% Esercizio n. 7. Ripetere l'esercizio quando sono non nulle anche le probabilità da k in k. %%%%% Esercizio n. 8. Prendere una catena di Markov a tempo discreto, con tre stati, 1,2,3, e probabilità di transizione assegnate tra essi. Simularla e stimare sperimentalmente le probabilità a regime. Risolvere questo esercizio anche solo nel caso particolare: p12=0.5, 013=0.5, p21=0.1, p22=0.1, p23=0.8, p31=0.5, p32=0.5. %%%%% Soluzione Es. 1. y <- 1-abs(sign(x)) Prove: x<- 7.2 1-abs(sign(x)) x<- -682 1-abs(sign(x)) x <- 0 1-abs(sign(x)) %%%%% Soluzione Es. 2. y <- 0.5*(sign(x-a)+1)*0.5*(sign(b-x)+1) Prove: x<- 7.2 a <- 3 b <- 8 0.5*(sign(x-a)+1)*0.5*(sign(b-x)+1) x<- 9.2 a <- 3 b <- 8 0.5*(sign(x-a)+1)*0.5*(sign(b-x)+1) x<- 1.2 a <- 3 b <- 8 0.5*(sign(x-a)+1)*0.5*(sign(b-x)+1) %%%%% Soluzione Es. 3. p<-0.2 X <- 2*rbinom(100,1,p)-1 plot(X) %%%%% Soluzione Es. 4. p1 <- 0.1 p2 <- 0.1 p3 <- 0.8 F0 <- 0 F1 <- p1 F2 <- p1+p2 F3 <- p1+p2+p3 U <- runif(100) c1 <- 0.5*(sign(U-F0)+1)*0.5*(sign(F1-U)+1) c2 <- 0.5*(sign(U-F1)+1)*0.5*(sign(F2-U)+1) c3 <- 0.5*(sign(U-F2)+1)*0.5*(sign(F3-U)+1) X <- 1*c1 + 0*c2 + (-1)*c3 plot(X) %%%%% Soluzione Es. 5. La seguente soluzione sembra naturale ma è sbagliata: p<-0.4 X <- matrix(nrow = 1000) X[1] <- 7 for (k in 2:1000) { X[k] <- X[k-1] + 2*rbinom(1,1,p)-1,0 } plot(X) Invece la seguente è giusta: p<-0.4 X <- matrix(nrow = 1000) X[1] <- 7 for (k in 2:1000) { X[k] <- max(X[k-1] + 2*rbinom(1,1,p)-1,0) } plot(X) Probabilità a regime di essere nello stato 5 (a titolo di esempio): sum(1-abs(sign(X-5)))/1000 Probabilità teorica di essere nello stato 5: (1-p/(1-p))*(p/(1-p))^5 Si vede che sono abbastanza diverse. E' colpa del fatto che la storia è ancora troppo breve: p<-0.4 n<-5 (1-p/(1-p))*(p/(1-p))^n X <- matrix(nrow = 100000) X[1] <- 7 for (k in 2:100000) { X[k] <- max(X[k-1] + 2*rbinom(1,1,p)-1,0) } sum(1-abs(sign(X-n)))/100000