%  Esercizio: implementare la densità normale bivariata standardizzata nell'intervallo [-4 4] per le coordinate x e y e costruire il relativo grafico a superficie tramite la funzione surf. Come coordinate x ed y utilizzare le sequenze -4, 3.9, ..., 4
% Inserire il parametro rho in una variabile. Aggiungere al parametro rho un "numeric slider" con valore minimo -1, massimo 1 e passo 0.1 in modo tale monitorare come varia il grafico della densità normale bivariata al variare di rho.
%
% Densità normale bivariata (notazione non matriciale)
%
%
% Densità normale bivariata (notazione matriciale)
%
%
% Si ricordi che per una matrice 2 x 2
%
%
%
%
% Soluzione
% Osservazione: nella normale standardizzata
% \mu_x=\mu_y=0
% \sigma_x=\sigma_y=1



% Implementazione della densità normale bivariata
%

rho=0.8;
% seqx = sequenza di valori da inserire sull'asse x
seqx=(-4:0.1:4)'; % seqx definito come vettore colonna
seqy=seqx';  % seqy definito come vettore riga
% si noti che seqx * seqy è una matrice di dimensione length(seqx)-by-length(seqy) il cui generico elemento è
% seqx(i)*seqy(j)
% Similmente seqx+seqy è una matrice di dimensione length(seqx)-by-length(seqy) il cui generico elemento è
% seqx(i)+seqy(j)
% L'elemento i,j della matrice dens contiene la densità normale bivariata
% in corrispondenza di seq(i) e seq(j).
% In altri termini f(seq(i),seq(j)) con i=1, 2, ..., length(seqx) e 
% j=1, 2, ..., length(seqy)
% Ad esempio dens(2,3) è il valore della densità normale bivariata
% standardizzata in corrispondenza di seqx(2) e seqy(3).
dens=(1/(2*pi*sqrt(1-rho^2)))...
    *exp(-(1/(2*(1-rho^2)))*(seqx.^2+seqy.^2-2*rho*seqx*seqy));

surf(dens)

%
%