% syntaxe : rpolnorm(m,v,N)

% Simulation d'une loi normale N(m,v) avec l'algorithme polaire. La
function X=rpolnorm(n,m,v)

% fonction renvoie un n-échantillon d'un loi normale N(m,v).
% n est un entier >1 ou un vecteur à deux composantes [lignes, colonnes]
% d'entiers positifs.

if nargin<3, v=1; end % variance=1 par défaut.
if nargin<2, m=0; end % moyenne=0 par défaut.
if nargin<1, n=1; end % qu'une simulation de N(0,1par défaut
    N=input('Taille de l''échantillon N : ');max=round(3*N/2);
m=input('Valeur de la moyenne m : ');
v=input('Valeur de la variance v : ');



X=2*rand(max,1)-ones(max,1);
Y=2*rand(max,1)-ones(max,1);
S=X.^2+Y.^2;
X=X(find(S<1));
Y=Y(find(S<1));
r=sqrt(X.^2+Y.^2);
R=2*sqrt(-log(r))./r;
Z=R(1:N).*X(1:N);
T=m*ones(N,1)+sqrt(v)*Z;
