当前位置:文档之家› MATLAB水准网间接平差课程作业程序

MATLAB水准网间接平差课程作业程序

条件平差 A=[1 -1 0 0 1 0 0;0 0 1 -1 1 0 0;0 0 1 0 0 1 1;0 1 0 -1 0 0 0];

Q=diag(s);

W=zeros(4,1);

W(1)=h(1)-h(2)+h(5);

W(2)=h(3)-h(4)+h(5);

W(3)=h(3)+h(6)+h(7);

W(4)=h(2)-h(4)+H(1)-H(2);

W=W.*1000;

Naa=A*Q*(A');

K=-1.*inv(Naa)*W;

V=Q*(A')*K;

L=h'+V./1000;

X=zeros(1,3);

X(1)=H(1)+L(1);

X(2)=H(1)+L(2);

X(3)=H(2)-L(7);

ZWC=sqrt(V'*inv(Q)*V/4);

QLL=Q-Q*A'*inv(Naa)*A*Q;

ZWC_h5=ZWC*sqrt(QLL(5,5));

间接平差 h1=1.359;

h2=2.009;

h3=0.363;

h4=1.012;

h5=0.657;

h6=0.238;

h7=-0.595;

H1=5.016

H2=6.016

h=[h1 h2 h3 h4 h5 h6 h7]'

s=[1.1 1.7 2.3 2.7 2.4 1.4 2.6]'

B=[1 0 0 ;0 1 0;

1 0 0;0 1 0 ; -1 1 0 ;

-1 0 1 ;0 0 -1 ]

p=diag(1./s)

l=[0;0;4;3;7;2;0]

W=B'*p*l

Nbb=B'*p*B

x=inv(Nbb)*W

V=(B*x-l)

H=h+V/1000

Q=inv(Nbb)

n=7;

t=3;

j=V'*p*V

d= sqrt(j/4)

f=[-1 1 0]'

q=f'*Q*f

D=d*sqrt(q)

D1=d*sqrt(Q)

disp('观测值,单位m') h1=1.359;

h2=2.009;

h3=0.363;

h4=1.012;

h5=0.657;

h6=0.238;

h7=-0.595;

H1=5.016; % 已知点高程,单位m

H2=6.016 % 已知点高程,单位m h=[h1 h2 h3 h4 h5 h6 h7]'

s=[1.1 1.7 2.3 2.7 2.4 1.4 2.6]' % S是线路长度

disp('系数矩阵B、l') B=[1 0 0 ;0 1 0;

1 0 0;0 1 0 ; -1 1 0 ;

-1 0 1 ;0 0 -1 ]

p=diag(1./s) %定义权阵 l=[0;0;4;3;7;2;0]

W=B'*p*l

Nbb=B'*p*B

disp('参数的解') x=inv(Nbb)*W;

V=(B*x-l) % 误差方程(mm)

H=h+V/1000 % 观测值的平差值

Q=inv(Nbb); %观测值协因数阵

j=V'*p*V ; %计算单位权中误差的参数

d= sqrt(j/4); %单位权中误差

f=[-1 1 0]' ; %权函数系数阵

q=f'*Q*f; %权函数协因数阵

disp('输出结果') H=h+V/1000

D=d*sqrt(q)

Dc=d*sqrt(Q(1,1))

Dd=d*sqrt(Q(2,2))

相关主题