%Questo programma stato realizzato al fine di ottenere la compensazione
altimetrica rigorosa ai minimi quadrati di una poligonale chiusa;
%I dislivelli sono stati forniti nella consegna; dunque sufficiente riportarli; %Per quanto riguarda i pesi dei vari dislivelli, essi sono assunti tutti uguali; %la matrice dei pesi P che ne risulta unitaria (sar una matrice n*n, dove n il numero di dislivelli calcolati); qA=202.654; DAB=-0.0520; DBC=+0.0452; DCD=-0.0558; DDE=+0.0772; DEA=-0.0148; Err=DAB+DBC+DCD+DDE+DEA P=[1,0,0,0,0;0,1,0,0,0;0,0,1,0,0;0,0,0,1,0;0,0,0,0,1]; %innanzi tutti obbiamo verificare che le misure non siano affette da errori %grossolani quindi attraverso la disuguaglianza di Tchebycheff verifico che %l'errore rientri in un certo intervallo definito dalla tolleranza: abs(Err)<=3T, ove T, lo s.q.m. totale, per la legge %di propagazione della varianza T=sqrt(2*n)*t, con t=0,1mm lo s.q.m di %lettura, trattandosi di una livellazione di alta precisione. t=0.0001; T=sqrt(2*5)*t; if abs(Err)<=3T; disp('la livellazione non affetta da errori grossolani, si pu procedere con la compensazione rigorosa ai minimi quadrati') else disp('la livellazione affetta da errori grossolani, necessario ripetere le misurazioni') %la matrice dei coefficienti A una matrice 5x4 perch la prima %colonna(relativa alla quota A nota) linearmente indipendente A=[-1 0 0 0;1 -1 0 0;0 1 -1 0;0 0 1 -1;0 0 0 1]; %il vettore dei termini noti b ingloba tutti i termini noti, appunto, ed %dato quindi da: b=[qA+DAB;DBC;DCD;DDE;-qA+DEA]; %si risolva ora l'quazione Ax-b=v, ove x il vettore delle quote reali da %trovare, b il vettore di tutti i termini noti, v il vettori degli scarti %associati, cio l'errore di misura commesso su ogni dislivello %prima di tale passo, per, vogliamo che per la compensazione ai minimi quadrati, %la sommatoria degli scarti sia minima. Dobbiamo quindi trovare un %vettore x tale da soddisfare la condizione suddetta. imponiamo quindi la %condizione di ortogonalit A'(Ax-b)=0, quindi isolando x troviamo %A'Ax=A'b e infine x=CA'b ove C=(A'A)^-1 %poich la matrice P unitaria, per trovare gli scarti associati v baster %sostituire il vettore x trovato nell'equazione Ax-b=v %devo considerare, anche se trascurabile in quanto unitaria, la matrice dei %pesi P; inizio a dare dei nomi alle variabili in gioco: N=A'*P*A; T=A'*P*b; C=inv(N); %A'(Ax-b)=0-->A'Ax=A'b-->A'PAx=A'Pb-->Nx=T-->moltiplico per C--> x=-C*T v=A*x-b