function [A,a_euler,xyz0exp]=rot_cos(x0,y0,z0,x,y,z)
% определение направлЯющих косинусов при повернутых СК
% и 3-х постоЯнных (между компонентами вектора)
% 
% x(k)*a1+y(k)*b1+z(k)*c1+d1=x0(k);
% x(k)*a2+y(k)*b2+z(k)*c2+d2=y0(k);
% x(k)*a3+y(k)*b3+z(k)*c3+d3=z0(k);
%
%  [A [,a_euler [,xyz0exp]]]=rot_cos(x0,y0,z0,x,y,z);
%
% A - матрица (3х4), последний столбец - постоЯнные d1,d2,d3
% a_euler - вектор Эйлеровых углов (fi,teta,psi) в градусах;
% xyz0exp - матрица вычисленных векторов [x0exp y0exp z0exp];

x0=x0(:); y0=y0(:); z0=z0(:);
x=x(:); y=y(:); z=z(:);
N=length(x);
A_abcd=[x y z ones(N,1)];

% направлЯющие косинусы
abcd1=A_abcd\x0;	% a1,b1,c1,d1
abcd2=A_abcd\y0;	% a2,b2,c2,d2
abcd3=A_abcd\z0;	% a3,b3,c3,d3

A=[abcd1'; abcd2'; abcd3'];

% Вычиление углов Эйлера (крен, тонгаж, курс)
fi=r2d(atan2(-A(2,3),A(3,3)));
teta=r2d(atan2(A(1,3),sqrt(A(2,3)^2+A(3,3)^2)));
psi=r2d(atan2(-A(1,2),A(1,1)));
a_euler=[fi teta psi];

tmp0=(A(:,1:3)*[x(:) y(:) z(:)]')';
xyz0exp=[tmp0(:,1)+abcd1(4) tmp0(:,2)+abcd2(4) tmp0(:,3)+abcd3(4)];
