Sei sulla pagina 1di 1

%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

Potrebbero piacerti anche