close all
clear
clc
 
[X,Y] = meshgrid(0:0.0005:1,0:0.0005:1);
Z=exp((-1)*abs(X-Y));
tam=size(X, 1);
number_realizations=1000;
cov_mat=Z;
[evec, evalM]=eig(cov_mat);
eval=diag(evalM);
eval=eval(end:-1:1);
evec=evec(:,end:-1:1);

realizacion=zeros(tam,1);

for num_real=1:number_realizations
    for num_evec=1:tam
        evec_rand(:,num_evec)=sqrt(eval(num_evec))*normrnd(0,1)*evec(:,num_evec);
    end
    realizacion=sum(evec_rand,2);

    realization_mat(:,num_real)=realizacion;
end





[coeff,score,latent,tsquared,explained,mu] = pca(realization_mat);
figure
plot(score(:,1:6))
for i=1:3
    figure
    hist(coeff(:,i))
end

variance_scores=var(score);
variance_coeffs=var(coeff);

dif_latent_var_score=variance_scores-latent';
dif_latent_var_coeffs=variance_coeffs-latent';
figure
plot(dif_latent_var_score(1:20), '.')