Lista 1 Simula o I
1.) a) Se x0 =5 e xn = 3xn-1mod(150), encontrar x1,...,x10.
y=matrix(0,10,1) #matriz 10 linhas x 1 coluna y[1]=5 for (i in 2:11) { #chave indica iniciar for na outra linha y[i] = (3*y[i-1])%%(150) # porcentagem indica resto da divisão (mod)
}
y
b) Se x0 =3 e xn = (5xn-1+7)mod(200), encontrar x1,...,x10.
x = matrix(0,10,1) x[1]=3 for(i in 2:11) { x[i] = (5*x[i-1]+7)%%(200)
}
x
[1] 3 22 117 192 167 42 17 92 67 142 117 192
2.) Faça um algoritmo eficiente para simular os valores de uma variável aleatória X tal que
edois=function(n)
{i=1;y=0;
repeat
{u=runif(1,0,1)
if (u<0.3) x=1 else if (u<0.5) x=2 else if (u<0.85) x=3 else x=4 if (length(y)>n-1) break y[i]=x i=i+1} y} edois(30)
[1] 3 3 3 1 1 1 1 1 2 2 3 3 3 1 2 3 1 1 1 4 1 1 2 1 1 1 1 2 1 3
3) a) Faça um algoritmo para gerar uma distribuição Binomial(n,p), dada por:
b) Faça um algoritmo para gerar uma distribuição de Poisson.
Algoritmo de Geração de Poisson
1. Gere um número uniforme (0,1)
2. i=0, p=e-λ, F=p.
3. Se U < F, faça X=i e pare.
4. p= λp/(i+1), F=F+p, i=i+1.
5. Vá para 3.
etresb=function(n,L)
{i=0;p=exp(-L);F=p;y=0;
repeat
{u=runif(1,0,1)
if (u<F) x==i break} p=(L*p)/i+1
F=p+F
if (length(y)>n-1) break y[i]=x i=i+1 y} etresb(30,1.5)
c) Faça um algoritmo para gerar uma distribuição Geométrica.
etresc=function(n,p) x=0;i=0;p=0.2; {repeat{ repeat {u=runif(1,0,1) c=log(1-p);j=0;y=0; if(u<F)y=j y=y+round(c)+1 if(y==j) break} if(length(x)>n-1) break x[i]=y i=i+1} x} etresc(10,0.2)
Sugestão: pode-se utilizar o método da transformação inversa para o caso de variáveis aleatórias discretas.
4) Utilize o método da rejeição para fazer um algoritmo para gerar valores de uma variável aleatória com distribuição dada por:
5) Uma variável aleatória tem distribuição de Laplace (dupla exponencial) com parâmetros de posição , e de escala , se sua densidade é dada por:
Use o método da