jueves, 9 de junio de 2016

9-Cálculo de la probabilidad geométrica.

Cálculo de la probabilidad geométrica.
Supongamos que tenemos una circunferencia de radio R circunscrita en un cuadrado de lado 2R, con R una variable aleatoria cuya distribución es U(0,1).
Calcular la probabilidad de que un dardo caiga dentro de la circunferencia si suponemos que el dardo siempre cae de manera uniforme dentro del cuadrado.

R

library(plotrix)
#n=simulaciones

circulo=function(n){
  #Primero simulamos el radio de la circunferencia.
  R=runif(1,0,1)
  
  #Ahora simulamos la posición donde caen muchos dardos.
  posicionx=runif(n,-R,R)
  posiciony=runif(n,-R,R)
  
  #Graficamos el lugar donde cayó cada dardo.
  par(pty="s")
  plot(c(-R,R),c(-R,R),type="n",xlab="",ylab="",main="")
  abline(v=c(-R,R),h=c(-R,R),asp = 1)
  
  draw.circle(x=0,y=0,radius=R,nv=100 ,border='blue', col='lightblue',lty=1,lwd=2)
  
  #Ahora vemos si cayó dentro de la circunferencia cada dardo.
  #En ese caso la variable "exito" será uno.
  exito=numeric(n)
  for(i in 1:n){
    exito[i]=1*(sqrt(posicionx[i]^2+posiciony[i]^2)<=R)
    if(exito[i]==1){aux='red'}else{aux='yellow'}
    points(posicionx[i],posiciony[i],pch=16,cex=2,col=aux)
  }
  
  #La aproximación a la probabilidad requerida es
  aprox=mean(exito)
  
  #El resultado teórico es
  teor=pi/4
  
  paste('La aproximación es ', aprox,' y el teórico es ',teor)
}

#Ejemplo
circulo(100)
## [1] "La aproximación es  0.78  y el teórico es  0.785398163397448"

No hay comentarios:

Publicar un comentario