clear; format;

% ZADANI C. 102: PRIKLAD 2
% ------------------------

prevyseni = [
%  bod1   bod2   tam[m]         zpet[m]    delka[km]
    1      2     4.95850        4.95900     1.10
    2      3     4.95320        4.94880     1.20
    3      4     6.97120        6.97290     0.80
    4      5     3.41150        3.41260     1.20
    5      6     4.30620        4.30540     1.10
    6      7     6.55210        6.55390     1.30
    7      8     4.16830        4.16620     0.70
    8      9     5.09470        5.09480     0.80
    9     10     3.80700        3.80920     0.90
]

% Vyska pocatecniho bodu '1' [m]:
H1 = 100.0000

% RESENI POMOCI MNC:
% ------------------

% pocet mereni
m = 2*size(prevyseni,1)
% pocet neznamych
Xn = size(prevyseni,1)

% Naplneni vektoru mereni
for i = 1:Xn
L (2*i-1,1) = prevyseni (i,3);
L (2*i,1)= prevyseni (i,4);
end
L

% Vahova matice
for i = 1:Xn
P (2*i-1,2*i-1) = prevyseni (i,5)^-1;
P (2*i,2*i)= prevyseni (i,5)^-1;
end
P

% Matice planu
A = zeros(m,Xn);
for i = 1:Xn
A (2*i-1,i) = 1;
A (2*i,i) = 1;
end
A

% Vypocet vyrovnanych prevyseni
N = A'*P*A
n = A'*P*L
X = N^-1 * n

% Vypocet odhadu skutecnych chyb
for i = 1:Xn
X_pom (2*i-1,1) = X (i);
X_pom (2*i,1)= X (i);
end
epsilon = X_pom - L

% Aposteriorni odchylka
sigma_X_0 = (  (epsilon'*P*epsilon) / (m-Xn)  )^0.5

% Kovariancni matice vyrovnanych prevyseni = vyrovnanych mereni
Sigma_X = sigma_X_0^2 * N^-1

% Smerodatne odchylky vyrovnanych prevyseni = vyrovnanych mereni
mX = diag (Sigma_X).^0.5

% Nasledujici vypocty by byly uz pouze aplikaci zakona hromadeni chyb a
% proto postaci vypocet pomoci vzorcu v technicke zprave.

