水准网平差过程(81页)
function [dh,h,V,L,uw0,uwh,uwl]=calculatelevelnet(ed,dd,sd,gd,pn,h0,k1,k2,h1,s) %水准网平差
A=sparse(zeros(sd,gd));%求解系数阵
b=(0:(gd-1))*sd;
A(k1'+b)=-1;
A(k2'+b)=1;
A=A';
A=A(:,1:dd);
disp('-------水准网间接平差误差方程的系数阵:------')
A=full(A)
l=zeros(gd,1); %求解常数项
disp('-------误差方程的常数项:-------')
l=h0(k1)-h0(k2)+h1
disp('-------权阵:-------')
p=diag(1./s)%权阵
dh=inv(A'*p*A)*A'*p*l ;%高差改正数
h00=h0(dd+1:sd);
h0=h0(1:dd); %待定点高差观测值
h=h0+dh;%待定点高程平差值
V=A*dh-l; %高差观测值改正数
L=h1+V; %高差观测值平差值
%精度评定
uw0=sqrt(V'*p*V/(gd-dd));%单位权中误差
Qxx=inv(A'*p*A);
uwh=uw0*sqrt(diag(Qxx));%待定点高程平差值中误差
uwh(dd+1:ed+dd)=0.0;
Qff=A*Qxx*A';
uwl=uw0*sqrt(diag(Qff));%高差平差值中误差
h=[h;h00];%所有点高程
h0=[h0;h00];
dh=[dh;zeros(ed,1)];
return