最新matlab导线网程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
m a t l a b导线网程序
课程编号:课程性质:
MATLAB及其应用
课程论文
学院:测绘学院
专业:测绘工程
姓名:
学号:
目录
一、题目内容 (3)
二、程序编写思路 (4)
1、数学模型 (4)
2、程序解析 (4)
三、程序运行结果 (5)
四、程序源代码 (6)
注:这是《误差理论与测量平差基础》这一课程在学习其基本原理之后为解决实际问题而编写的一个程序。
一、题目内容
要求:对于给出的导线控制网图2 ,根据已知条件和观测数据,设计平差方案,编制平差程序,给出平差结果,评定精度。
题目:A 、B 为已知点,已知点坐标已给出如下。 为待定点。同精度观测了24个角度 ,测角中误差 。测量了17条边长 ,其观测结果及中误差列于表4中,试按间接平差法求: (1)平差后单位权中误差;
(2) 14个待定点的的坐标平差值及中误差;
(3)平差后 边的相对中误差。
已知点坐标:X A =730.024 ,Y A =126.040 ,111.855=X B ,
232.172=Y
B
表一:导线网角度观测值
表二:导线网边长观测值及精度 14
1~P P 241~L L "
10β
σ=171~S S 17
S
2 195.782 14 8 136.578 11.7 14 119.1 10.9
3 184.98
4 13.6 9 112.502 10.6 1
5 123.94 11.1 4 110.03
6 10.5 10 131.074 11.5 16 122.84 11.1 5 163.14
7 12.
8 11 140.88 11.
9 17 139.46 11.8 6 219.482 14.9 12 132.608 11.5
图一:
二、程序编写思路
1、数学模型
◆函数模型 观测方程 L=BX+d 误差方程 V B l =x
◆随机模型
2
X X X X
D =Q 0σ
◆方程的解与精度评定
令 PB B N T BB = pl W B T
= 法方程即为 0ˆ=-W x
N BB 可得解为:W BB x
N 1
ˆ-= 故可得平差结果:x
X V L L
X
ˆˆ,ˆ0
+=
+= 从而解得单位权中误差为
T
2
0V PV /R
σ 2
X X
X X D
=Q 0σ
2、程序解析
◆计算框图
三、程序运行结果
◆平差后单位权中误差: = 5.30 (由于程序取的先验单位权中误差为10,两
者相比较,故可以认为这个结果是可以接受的)
◆14个待定点的坐标平差值及中误差见下表: 表三:
表七:
◆平差后S17边的相对中误差为:253451
四、程序源代码
这是要输入的文件
◆%%从文件中输入数据
fid1=fopen('E:\学习\平差\S3.txt','rt');
[S1,count]=fscanf(fid1,'%f ',[7 24]); %#ok
S1=S1';
fid2=fopen('E:\ \学习\平差\S4.txt','rt');
[S2,count]=fscanf(fid2,'%f ',[5 17]);
fclose(fid2);
S2=S2';
[S3]=convert(S1);
[X0]=daoxian(S2,S3);
[B,l,P]=BBll(X0,S2,S1,S3);
x=inv(B'*P*B)*B'*P*l;
X=X0'+x/1000;
disp(X);
◆%%计算B,l,P 矩阵
function [B,l,P]=BBll(X0,S2,S1,S3) %#ok
X10=[
730.024
126.040
855.111
172.232
];
for i=1:1:7
if i<2
S=sqrt((X0(1)-X10(1))^2+(X0(2)-X10(2))^2); B(1,1)=(X0(1)-X10(1))/S;
B(1,2)=(X0(2)-X10(2))/S;
l(1,1)=1000*(S2(1,2)-S);
elseif i>6
S=sqrt((X10(1)-X0(11))^2+(X10(2)-X0(12))^2);
B(i,11)=-(X10(1)-X0(11))/S; %#ok
B(i,12)=-(X10(2)-X0(12))/S; %#ok
l(i,1)=1000*(S2(7,2)-S); %#ok
elseif i>1&&i<7
S=sqrt((X0(2*i-1)-X0(2*(i-1)-1))^2+(X0(2*i)-X0(2*(i-1)))^2); B(i,2*(i-1)-1)=-(X0(2*i-1)-X0(2*(i-1)-1))/S; %#ok
B(i,2*(i-1))=-(X0(2*i)-X0(2*(i-1)))/S; %#ok
B(i,2*i-1)=(X0(2*i-1)-X0(2*(i-1)-1))/S; %#ok
B(i,2*i)=(X0(2*i)-X0(2*(i-1)))/S; %#ok
l(i,1)=1000*(S2(i,2)-S); %#ok
end
end
for i=8:1:16
if i<9
S=sqrt((X0(13)-X10(3))^2+(X0(14)-X10(4))^2);
B(8,13)=(X0(13)-X10(3))/S;
B(8,14)=(X0(14)-X10(4))/S;
l(8,1)=1000*(S2(8,2)-S);
elseif i>15
S=sqrt((X10(3)-X0(27))^2+(X10(4)-X0(28))^2);
B(16,27)=-(X10(3)-X0(27))/S;
B(16,28)=-(X10(4)-X0(28))/S;
l(16,1)=1000*(S2(16,2)-S);
elseif i<16&&i>8
S=sqrt((X0(2*(i-1)-1)-X0(2*(i-1)-3))^2+(X0(2*(i-1))-X0(2*(i-1)-2))^2);
B(i,2*(i-1)-3)=-(X0(2*(i-1)-1)-X0(2*(i-1)-3))/S;
B(i,2*(i-1)-1)=(X0(2*(i-1)-1)-X0(2*(i-1)-3))/S;
B(i,2*(i-1)-2)=-(X0(2*(i-1))-X0(2*(i-1)-2))/S;
B(i,2*(i-1))=(X0(2*(i-1))-X0(2*(i-1)-2))/S;
l(i,1)=1000*((S2(i,2)-S));
end
end
S=sqrt((X0(19)-X0(5))^2+(X0(20)-X0(6))^2);
B(17,5)=-(X0(19)-X0(5))/S;
B(17,19)=(X0(19)-X0(5))/S;
B(17,6)=-(X0(20)-X0(6))/S;
B(17,20)=(X0(20)-X0(6))/S;
l(17,1)=1000*(S2(17,2)-S);
row=206.265;