//////////////////////////////////////////////////////////////////////////////////////////// // Simulation de l'aiguille de Buffon (Georges-Louis Leclerc de Buffon (1733) (EXO1)/////// //////////////////////////////////////////////////////////////////////////////////////////// clf(); //Initialisations pour les vecteurs "erreurs empiriques" et "variables gaussiennes centrées normées" G=[]; GG=[]; //(Boucle) répétitions des expériences de Buffon //Nombre d'aiguilles simulées n=10000; //Simulation des 3 variables uniformes permettant de positionner les abscisses et coordonnées des aiguilles r=rand(3,n); //Les coordonnées cartesiennes des aiguilles x=[r(1,:);r(1,:)+cos(2*%pi*r(3,:))]; y=[r(2,:);r(2,:)+sin(2*%pi*r(3,:))]; lx=[-1,-1;2,2]; ly=[0,1;0,1]; // rectangle =[xmin,ymin,xmax,ymax] rectangle=[-1,0,2,1]; ///Coloriage des aiguilles en bleu colors=2*ones(1,n); //Indices des aiguilles intersectantes + comptage cuts=find(((y(2,:)>1)|(y(2,:)<0))); nbcuts=length(cuts); ///Re-coloriage des aiguilles intersecantes en rouge colors(cuts)=5*ones(cuts); //Tracé des aiguilles et de l'estimation de 2/pi pour (uniquement) I=1 simulation clf(0);xset("window",0);show_window(); //Positionnement de la fenêtre plot2d(lx,ly,strf='012',style=[1,1],frameflag=3,axesflag=1,rect=rectangle); //Tracé des aiguilles plot2d(x,y,style=colors); //Titre avec résultat d'estimation xtitle(["Nombre de lancers:"+string(n)+" Nombre d''intersections:"+string(nbcuts);" Approximation de pi: "+string(2*n/nbcuts)]);