📄 adjxy.m
字号:
%坐标改正数以及单位权中误差的计算
function [uw0,k]=adjxy(fit2)
global ed dd dd1 ni si e d g f s t pn x y
global m1 m2 m3 ms md ma x0 y0 sid dir az c
global a ql pa3 qls w
sd=ed+dd;
n=2*dd;
k=0;
for i=1:n
dxy(i)=0.0;
di=(i-1)*(n-i/2.0);
for j=1:n
dj=(j-1)*(n-j/2.0);
if(j<i)
dxy(i)=dxy(i)-c(dj+i)*w(j);
else
dxy(i)=dxy(i)-c(di+j)*w(j);
end
end
if(abs(dxy(i))>1.0)
k=1;
end
dxy(i)=dxy(i)/100.0;
end
x(1:ed)=x0(1:ed);
y(1:ed)=y0(1:ed);
for i=1:dd
x(ed+i)=x0(ed+i)+dxy(2*i-1);
y(ed+i)=y0(ed+i)+dxy(2*i);
end
x0(1:sd)=x(1:sd);
y0(1:sd)=y(1:sd);
for i=1:sd
if(i<=ed)
vx(i)=0.0;
vy(i)=0.0;
else
vx(i)=dxy(2*(i-ed)-1);
vy(i)=dxy(2*(i-ed));
end
end
fprintf(fit2,' adjusted coordinates\n');
fprintf(fit2,' pn vx x vy y \n');
for i=1:sd
fprintf(fit2,' %6d %8.4f %14.4f %8.4f %14.4f\n',pn(i),vx(i),x(i),vy(i),y(i));
end
pvv=0.0;
for i=1:n
pvv=pvv+w(i)*dxy(i)*100.0;
end
m=m1+m2+m3;
for i=1:m
pvv=pvv+a(i,9)*a(i,9)/ql(i);
end
if(m2>0)
ii=0;
for i=1:sd
if(ni(i)~=0)
ii=ii+1;
end
end
end
uw0=sqrt(pvv/((m-n-ii)*1.0e0));
return
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -