clear % Koordinaten K=[ 48177.62 6531.28 % Punkt 1 49600.15 7185.19 % Punkt 2 49830.93 5670.69 % Punkt 3 47863.91 5077.24 % Punkt 4 48565.2 6059.0 % Punkt N ]; % Beobachtungen L=[ 356.2465 47.3114 118.9497 239.4920 ]; X0=[ K(5,1) % Rechts K(5,2) % Hoch 0.0 % Orientierungsunbekannte ]; sHz = 0.001; % 1mgon for i=1:size(L) dx = K(i,1)-X0(1,1); dy = K(i,2)-X0(2,1); s = sqrt(dx^2+dy^2); L0(i,1) = atan2(dx,dy)*200.0/pi - X0(3,1); if L0(i,1)<0 L0(i,1) = L0(i,1) + 400.0 ; end A(i,1) = dy/s^2 * 200/pi; A(i,2) = -dx/s^2 * 200/pi; A(i,3) = -1; P(i,i) = 1.0/sHz^2; end l = L-L0; N=A'*P*A; n=A'*P*l; Qxx=inv(N); x=Qxx*n X=X0+x v=A*x-l s0=sqrt(v'*P*v/(4-3)); sx=s0*sqrt(Qxx(1,1)); sy=s0*sqrt(Qxx(2,2)); fid = fopen('goesch.log','w'); fprintf(fid,'Neupunkt-Koordinaten\n\n'); fprintf(fid,'Rechts= %12.6f +/- %9.6f mm\n',X(1,1),sx*1000.0); fprintf(fid,'Hoch = %12.6f +/- %9.6f mm\n',X(2,1),sy*1000.0); fprintf(fid,'\n'); fprintf(fid,'Verbesserungen\n\n'); for i=1:size(v) fprintf(fid,'%12.6f mm\n',v(i,1)*1000.0); end fprintf(fid,'\n'); fprintf(fid,'Verbesserungen\n\n'); fprintf(fid,'s0 = %12.6f\n',s0); fclose(fid);