七参数计算结果误差偏大

我用MATLAB写的七参数计算模型,但是实际运用的过程中,误差居然达到了分米,最大是6分米,实在是做不出来了,不知道哪里错了
代码如下:

function dX=burse(A,B)
global dX
%计算七参数
Xa=A(:,1);Ya=A(:,2);Za=A(:,3);
Xb=B(:,1);Yb=B(:,2);Zb=B(:,3);
L=[Xb-Xa;Yb-Ya;Zb-Za];  %列出常数项
m=length(A);        %重合点个数
if(m<3)
    return;
end
   C= [ones(m,1),zeros(m,1),zeros(m,1),zeros(m,1),-Za,Ya,Xa;        %列出系数矩阵B
        zeros(m,1),ones(m,1),zeros(m,1),Za,zeros(m,1),-Xa,Ya;
         zeros(m,1),zeros(m,1),ones(m,1),-Ya,Xa,zeros(m,1),Za];
 N=C'*C;
  W=C'*L;
   dX=N\W;   %利用最小二乘法求参数

需要看下A和B矩阵,看看程序的运行结果。

这是我的转换代码,通过将54转化到80下的空间直角坐标系


function C = qcszh(dx,dy,dz,ex,ey,ez,k,XYZ)
format long g
global  XYZN  X 
Xa=XYZ(:,1);  %获取源坐标的X分量
Ya=XYZ(:,2);  %获取源坐标的Y分量
Za=XYZ(:,3);  %获取源坐标的Z分量

% ex=ex*206265;
% ey=ey*206265;
% ez=ez*206265;
% k=k*1000000;

X=[dx dy dz ex ey ez k]';

C=[1,0,0,0,-Za,Ya,Xa;
   0,1,0,Za,0,-Xa,Ya;
   0,0,1,-Ya,Xa,0,Za];

T=C*X;
B=[Xa,Ya,Za]';
XYZN=B+T;