//Illustration de la convergence en loi via un histogramme function convloi() Z=[]; for i=1:1000 X=grand(1,1000,"def"); //loi uniforme sur [O,1[ Z=[Z (sqrt(1000*12)*(1/1000*sum(X)-1/2))]; end; xbasc(); xtitle("Illustration du theoreme central-limit pour des variables aleatoires de loi U(0,1)"); histplot([-3:0.2:3],Z); plot2d([-3:0.05:3],1/sqrt(2*%pi)*exp(-1/2*[-3:0.05:3].^2)); endfunction; //Illustration de la loi des grands nombres function lfgn(n,lambda) X=grand(1,n,"exp",lambda); xbasc(); xtitle("Illustration de la loi des grands nombres pour des variables aleatoires de loi E(lambda)"); plot2d([1:n],cumsum(X)./[1:n],3); plot2d([1:n],lambda*ones(1,n),5); endfunction; //Exemple de simulation de variables aleatoires par methode du rejet function rejet() X=zeros(1,10000); for i=1:10000; x=rand(1,2); while x(2) > sin(%pi*x(1)), x=rand(1,2); end, X(i)=x(1); end; xbasc(); histplot(100,X); Y=[0:0.05:1]; plot2d(Y,%pi*sin(%pi*Y)/2); endfunction; //Exemple de simulation de melange de lois function melange(n) X=grand(1,n,"exp",1/2); Y=grand(1,n,"exp",1); Z=grand(1,n,"def"); W=(Z<1/3).*Y+(Z>1/3).*X; xbasc(); xtitle("Melange d une E(1/2) et d une E(1)"); histplot([0:0.05:5],W); plot2d([0:0.05:5],1/3*exp(-[0:0.05:5])+4/3*exp(-2*[0:0.05:5]),5); endfunction; //Etude d'une chaine de Markov //n=100 (longueur de la trajectoire) P=matrice de transition de la chaine X0=etat initial function trajectoire(n,P,X0) T=grand(n,"markov",P,X0); X=[X0 T]; xbasc(); xtitle("Une trajectoire de la chaine de Markov"); plot2d(1:(n+1),X,5); legends(["trajectoire"],[5],1); endfunction; //Pour une chaine irredusctible de noyau P, on illustre la convergence // presque sure de la frequence empirique vers la valeur de la probabilite invariante //X0 = etat initial p1=valeur de pi(1) function ergodique(n,P,X0,p1) T=grand(n,"markov",P,X0); X=[X0 T]; S=1.*(X==1); //on etudie l'etat 1 V=cumsum(S); xbasc(); xtitle("Illustration du theoreme ergodique"); plot2d(1:(n+1),V./(1:(n+1)),5); plot2d(1:(n+1),p1*ones(1:(n+1)),2); legends(["frequence empirique de 1";"p1"],[5;2],1); endfunction; //Etude de la convergence en loi de la chaine dans le cas ergodique // b=mesure initiale function convloi(n,P,b) M=[b]; for j=2:n M=[M ; M(j-1,:)*P]; end; M=M'; xbasc(); xtitle("Convergence en loi de la chaine de Markov"); for k=1:8 plot2d(1:n,M(k,1:n),k); end; endfunction; //Test du chi2 d'adequation de la loi de X_1 .. X_15 à la probabilite invariante (partant de X_0=1) //Graphique donnant la p-valeur, et estimation de la probabilite de succes sous H0 par monte carlo //chi2(15,MTF,1,u,100,100) function chi2(N,P,X0,b,K,MC) c=cdfchi("X",7,0.95,0.05); U=[]; for n=1:N res=[]; for k=1:MC Z=[]; for i=1:K S=grand(n,"markov",P,X0); Z=[Z S(1,n)]; end; R=[]; for j=1:8 u=sum(1*(Z==j)); R=[R u]; end; D=sum(((K*b).^(-1)).*((R-K*b).^2)); res=[res 1*(D0) X=X+1/N*(2*(grand(1,1,"def") < 0.5)-1); Y=Y+1/N*(2*(grand(1,1,"def") < 0.5)-1); end; R=[R X]; end; L=[-10:0.05:10]; xbasc(); xtitle("Etude de la loi de l abscisse de sortie"); plot2d(L,1/%pi*(1+L.^2).^(-1),5); histplot([-10:0.5:10],R); endfunction; //resoud le probleme de Dirichlet discret sur le disque, compare le resultat avec celui donne par le noyau de Poisson function sortie(x,y,r,MC,N) k=1; X=[x]; Y=[y]; while (((X($)^2+Y($)^2)