⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lev.m

📁 it is a source code for geodesy
💻 M
字号:
%LEV	 Least squares estimation of heights in a levelling
%	    network as described by the following 3 data files:
%
%	    levfix.dat, contains row-wise 2 columns
%	       point#	elevation
%
%	    levfree.dat, contains row-wise 1 column
%	       point#
%
%	    levobs.dat, contains row-wise 4 columns
%	       from-#	 to-#	    HDIFF      std. dev. of HDIFF
%
%      All units in meters

%Kai Borre 01-24-94
%Copyright (c) by Kai Borre
%$Revision: 1.0 $  $date: 1997/09/26 $

load levfix.dat
fix = levfix;
load levfree.dat
free = levfree;
load levobs.dat
obs = levobs;
[p,q] = size(fix);
[n,q] = size(free);
[m,q] = size(obs);
A = zeros(m,n);
cov = obs(:,4);
cov = diag(cov);

for i = 1:m
   t2 = 0; t4 = 0;
   for t1 = 1:p
      if obs(i,1) == fix(t1,1), break, end; 
      t1 = p+1;
   end
   if t1 == (p+1)
      for t2 = 1:n 
         if obs(i,1) == free(t2,1), break, end; 
      end
   end
   for t3 = 1:p
      if obs(i,2) == fix(t3,1), break, end; 
      t3 = p+1;
   end
   if t3 == (p+1)
      for t4 = 1:n
         if obs(i,2) == free(t4,1), break, end; 
      end
   end
   if t4 > 0 A(i,t4) = 1; end
   if t2 > 0 A(i,t2) = -1; end
   if t1 > 0 & t2 == 0 obs(i,3) = obs(i,3)+fix(t1,2); end
   if t3 > 0 & t4 == 0 obs(i,3) = obs(i,3)-fix(t3,2); end
end
obs(:,[1 2 4]) = [];
x = lscov(A,obs,cov);
sigma_0 = norm(A*x-obs)/sqrt(m-n)
Sigma_x = inv(A'*inv(cov)*A);
for i = 1:n
   sigma(i,1) = sigma_0*sqrt(Sigma_x(i,i)); 
end
disp('     Point'), disp(' Elevation    Standard deviation')
disp('--------------------------------')
for i = 1:n
   disp([free(i)]), disp([x(i) sigma(i)])
end
%%%%%%%%%%%%%%% end lev.m %%%%%%%%%%%%%%%%%%%%%%%%

⌨️ 快捷键说明

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