Não foi possível enviar o arquivo. Será algum problema com as permissões?
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anterior Revisão anterior | Próxima revisão Ambos lados da revisão seguinte | ||
pessoais:eder [2011/06/02 14:13] eder [section 4] |
pessoais:eder [2011/06/05 19:33] eder [Codigos] |
||
---|---|---|---|
Linha 42: | Linha 42: | ||
### MOnte carlo | ### MOnte carlo | ||
+ | ## Calcula a área via simulação de monte carlo | ||
+ | ## args: r= raio, s vetor com numero de simulação, plotS plotar a simulação | ||
+ | MCcirculo<-function(r,s,plotS=TRUE){ | ||
+ | ns<-area<-s | ||
+ | r<-r | ||
+ | con <- 1 | ||
+ | for (j in ns) { | ||
+ | #pontos aleatorios | ||
+ | x<-runif(j, min=-r, max=r) | ||
+ | y<-runif(j, min=-r, max=r) | ||
+ | ponto<-cbind(x,y) | ||
+ | cont <- sum(apply(ponto,1,function(x){sqrt(sum(x^2))})<r) | ||
+ | #plotando Simulação | ||
+ | if(plotS==TRUE){ | ||
+ | plot(x,y,col="red",type="p",asp=1,lwd=1,xlim=c(-r,r),ylim=c(-r,r), main="Simulação Monte Carlo",sub=j) | ||
+ | ang <- seq(0, 2*pi, length = 100) | ||
+ | xx <- r * cos(ang);yy <- r * sin(ang) | ||
+ | polygon(xx, yy,border = "dark blue",lwd=2) | ||
+ | } | ||
+ | #Calculo de Area | ||
+ | area[con]<-(cont/j)*(r^2)*4 | ||
+ | cat(paste(round(area[con],6),j,'\n')) | ||
+ | con <- con+1 | ||
+ | } | ||
+ | plot(ns,area,main="Simulação Monte Carlo",xlab='Número da amostra',ylab='Area') | ||
+ | abline(h=pi*r^2,col='red',lwd=2) | ||
+ | | ||
+ | } | ||
+ | MCcirculo(1,seq(5,5000,by=1000),plotS=FALSE) | ||
### inversão de p | ### inversão de p | ||
################################################################################ | ################################################################################ |