%% Bloky (cells) oddělené "%%" lze spouštět pomocí Ctrl + Enter

% Cvičení na výpočet kovariance a korelačního koeficientu a převod 
% na jiné veličiny pomocí lineární kombinace

% Václav Římal, 9. 12. 2019

% Seznam hmotností v systémech binárních černých děr, jejichž sloučení
% byla pozorována pomocí gravitačních vln
% https://en.wikipedia.org/wiki/List_of_gravitational_wave_observations
% 
% jednotkou je hmotnost Slunce (M0)
M=[35.6,30.6;
   23.3,13.6;
   13.7,7.7;
   31.0,20.1;
   10.9,7.6;
   50.6,34.3;
   35.2,23.8;
   30.7,25.3;
   35.5,26.8;
   39.6,29.4];

% Vykreslení změřených hodnot
plot(M(:,1),M(:,2),'x');
xlabel('M_1/M_0')
ylabel('M_2/M_0')

%% Kovariance a korelace
% výsledky necháme rovnou vypsat (neukončení řádku středníkem)
C=cov(M) % matice variance-kovariance
sigma1=sqrt(diag(C)) % směrodatné odchylky M1 a M2
sigma2=std(M) % totéž co sigma1, jen jiný zápis výpočtu (transponovaný výsledek)
rho1=C./(sigma1*sigma1') % matice korelačních koeficientů
rho2=corrcoef(M) % totéž co rho1, jen jiný zápis výpočtu

%% Převod na jiné veličiny

% součet a rozdíl hmotností jako S=M*A
A=[1 1; 1 -1];
% S1 jako lineární kombinace vektorů v M
S1=M*A
% kontrola
S2=[sum(M,2) -diff(M,[],2)]

% matice variance-kovariance v nových souřadnicích
CS1=cov(S1)
CS2=A*C*A'

% korelační koeficient v nových souřadnicích
rhoS1=corrcoef(S1) % matice korelačních koeficientů

% i tyto veličiny jsou navzájem korelovány, ale méně
plot(S1(:,1),S1(:,2),'o')


%% Uložení do matlab.mat
save;