clear; // nc est le nombre de classes dans l'histogramme // n la taille de l'échantillon // h le pas de l'ordre de n^(-1/5) function [] = estim_noyau(n,nc,hn) xbasc(); a=1; b=3; // 2 variables alétoires uniformes U=rand(n,1); V=rand(n,1); // 2 gaussiennes centrées réduites indépendantes X = sqrt(-2*log(U)).*cos(2*%pi*V); Y = sqrt(-2*log(U)).*sin(2*%pi*V); // Z = X avec proba 1/3 et aY+b avec proba 2/3 epsilon = rand(n,1); Z = (a*Y+b).*(epsilon > 1/3) + X .* (epsilon <= 1/3); // histogramme de la variable simulée E, nc=nombre de classes histplot(nc,Z) // estimation de la densité de la loi de E par la méthode des noyaux, // noyau Epanechnikov : C=[min(Z)-1:1/n:max(Z)+1]; for i=1:length(C) B(i)=1/(n*hn)*3/4*sum((1-((C(i)-Z)/hn).^2).*(-1<(C(i)-Z)/hn).*((C(i)-Z)/hn<1)); end plot2d(C,B,2) //tracé de la vraie densité f = (2/(3*a) * exp(-((C-b)/a).^2/2) + 1/3 * exp(-C.^2/2))/sqrt(2*%pi); plot2d(C,f,5); endfunction