% Kilka przykładów rozwiązania zadań z PPOO przy 
% pomocy Matalaba/Octave'a. Wszystkie te przykłady 
% prezentowane były kilka tygodni temu na PPOO, 
% i nie kwestie merytoryczne są tu teraz 
% najważniejsze, tylko poćwiczenie składni na 
% zrozumiałych przykładach.

%% zad. 3.1

% definiujemy wektor wartości
y = [ 10.2 ; 10.3 ; 10.4 ];
% rozwiązanie -- wykorzystanie wbudowanych funkcji
E     = mean(y);
sigma = std(y);


%% zad. 3.2

y = 100 + [25 ; 47 ; 25 ; 30 ]/100;
sigma = [2 3 1 5]';

% wektor wag
p = sigma.^(-2);
E = (p'*y)/sum(p);


%% zad. 3.5
y     = [2.2 ; 1.3 ; 3.2 ; 4.5 ] ;
m2    = [ 6 ; 20 ; 30 ; 6 ] / 100 ;
A     = [ 1 -1 ; 2 0 ; 0 1 ; 2 1 ] ;
omega = [ 2.0 -0.4 2.4 1.0 ]';

P = diag(m2.^-1);
L = omega - y ;

X_est = -inv(A'*P*A)*(A'*P*L);
Y_est = A*X_est + omega;
V = A * X_est + L;

sigma = sqrt((V'*P*V)/(size(V,1)-size(X_est,1)))

%% zad 3.6 i jeszcze dwa dowolne zadania z zajęć PPOO
% do domu!

%% zad. 4.8

C = [ 2 1 0;
      1 3 1;
      0 1 2 ] ;

D = [ 1 1 1 ] ;

Cf = D * C * D';

mf = sqrt(diag(Cf)) ;

rho_yz = C(2,3)/sqrt(C(2,2)*C(3,3)) ;
