calculatelevelnet.m

来自「利用MATLAB实现了对测量中的平面网」· M 代码 · 共 29 行

M
29
字号
function [dh,h,V,L,uw0,uwh,uwl]=calculatelevelnet(ed,dd,sd,gd,pn,h0,be,en,hd,distance)
% 水准网平差
A=sparse(zeros(sd,gd));  %求解系数阵
b=(0:(gd-1))*sd;
A(be'+b)=-1;
A(en'+b)=1;
A=A';
A=A(:,1:dd);
l=zeros(gd,1);    %求解常数项 
l=h0(be)-h0(en)+hd;
p=diag(1./distance);        %权阵
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=hd+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

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?