Programa Monte Carlos

4
Programa Monte Carlos Alumno: Aguilar Rojas Abel Tito cód.: 1219110028 program monte_carlos implicit none real::c,d,pi,p1,e,x(1000),y(1000),l,x2,y2,x1,y1 integer::n,i,j read*,n open(100,file='D:\sul.txt',status='new',action='write') print*,' puntos obtenidos' print*,' Adentro fuera' print*,' x1 y1 x2 y2' l=1 c=0 d=0 do i=1,n call random_seed() call random_number(y) call random_number(x) if((x(i)**2+y(i)**2)<=(l**2))then c=c+1 x1=x(i) y1=y(i) else d=d+1 x2=x(i) y2=y(i) end if print*,x1,y1,x2,y2 write(100,*)x1,y1,x2,y2 end do p1=4*c/n pi=atan(1.0)*4 e=abs(pi-p1) print*,'*************************' print*,' pi p1 e'

description

codificacion en fortran 90

Transcript of Programa Monte Carlos

Page 1: Programa Monte Carlos

Programa Monte Carlos

Alumno: Aguilar Rojas Abel Tito cód.: 1219110028

program monte_carlosimplicit nonereal::c,d,pi,p1,e,x(1000),y(1000),l,x2,y2,x1,y1integer::n,i,jread*,nopen(100,file='D:\sul.txt',status='new',action='write')print*,' puntos obtenidos'print*,' Adentro fuera'print*,' x1 y1 x2 y2'l=1c=0d=0do i=1,ncall random_seed()call random_number(y)call random_number(x)if((x(i)**2+y(i)**2)<=(l**2))thenc=c+1x1=x(i)y1=y(i)elsed=d+1x2=x(i)y2=y(i)

end ifprint*,x1,y1,x2,y2write(100,*)x1,y1,x2,y2end dop1=4*c/npi=atan(1.0)*4e=abs(pi-p1)print*,'*************************'print*,' pi p1 e'print*, pi,p1,eclose (100)end program monte_carlos

Scilab

¡---------------------- Cuarto de circunferencia--------------------------a=read('sul.txt',1000,4);

Page 2: Programa Monte Carlos

-->x=a(:,1); -->y=a(:,2); -->x1=a(:,3); -->y1=a(:,4); -->plot(x,y,'ro',x1,y1,'g*'); -->xlabel('x'); -->ylabel('y'); -->title('registro de lanzamiento de dardos en un cuarto de circunferencia');

¡---------------------- Circunferencia completa-----------------------------------------------

a=read('sul.txt',1000,4); -->x=a(:,1); -->y=a(:,2); -->x1=-a(:,1); -->y1=-a(:,2);

Page 3: Programa Monte Carlos

-->x2=a(:,3);

-->y2=a(:,4); -->x3=-a(:,3); -->y3=-a(:,4); -->plot(x,y,'ro',x1,y1,'ro',x,y1,'ro',x1,y,'ro',x2,y2,'g*',x3,y3,'g*',x2,y3,'g*',x3,y2,'g*')-->xlabel('x') -->ylabel('y')-->title('registro de lanzamiento de dardos en una circunferencia');