📄 ellipse.m
字号:
function ellipse(uw0,fit2)%绝对点位误差椭圆
global ed dd pn c x y ai bi fi
fprintf(fit2,' parameter of error ellipse\n');
fprintf(fit2,' pn(i) mx my mm a b fi\n');
n=2.0*dd;
maxmm=0.0;
smm=0.0;
for i=1:dd
ii=ed+i;
di=(2*i-2)*(n-(2*i-1)/2.0);
dj=(2*i-1)*(n-i);
q1=c(di+2*i-1);
q2=c(dj+2*i);
q3=c(di+2*i);
d1=sqrt(abs(q1+q2-q3));
d=uw0*d1;
xx=q1-q2;
yy=2*q3;
zz=q1+q2;
mx1=sqrt(q1);
my1=sqrt(q2);
mm1=sqrt(zz);
if(abs(xx)<1d-10)
fi(i)=sign(90.0,q3);
else
fi(i)=atan(yy/xx)*57.2958;
end
if(xx>=0.0&yy>=0.0)
fi(i)=fi(i)/2.0;
elseif(xx>=0.0&yy<=0.0)
fi(i)=(fi(i)+360.0)/2.0;
elseif(xx<0.0)
fi(i)=(fi(i)+180.0)/2.0;
end
ww=sqrt(xx*xx+yy*yy);
a1=sqrt((zz+ww)/2.0);
b1=sqrt((zz-ww)/2.0);
ab1=a1-b1;
mx=uw0*mx1;
my=uw0*my1;
mm=uw0*mm1;
if(mm>maxmm)
maxmm=mm;
i1=ii;
end
smm=smm+mm;
ai(i)=uw0*a1;
bi(i)=uw0*b1;
ab=ai(i)-bi(i);
fprintf(fit2,' %10d %10.3f %10.3f %10.3f %10.3f %10.3f %10.3f\n',pn(ii),mx,my,mm,ai(i),bi(i),fi(i));
end
smm=smm/dd;
fprintf(fit2,' mse of unit weight= %9.6f\n',uw0);
fprintf(fit2,' the maximum station error mm= %8.3f (cm) pn= %4d\n',maxmm,pn(i1));
fprintf(fit2,' the average station error mm= %8.3f\n',smm);
return
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -