水准间接平差程序设计.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
水准间接平差程序设计

地球科学与环境工程学院 水准间接平差实验报告书 课程名:《误差理论与测量平差基础》 学 号: 姓 名: 黄黎东 指导老师: 日 期: 2015年12月7日 一、任务概述 利用MATLAB或者C++编程间接平差程序,通过该程序读取观测数据文件,并计算出平差结果。 二、计算结果截图: 图一 图二 图三 图四 三、水准网图 四、输入的数据格式 数据格式为TXT文件,如图所示: TXT文件格式说明: (1)第一行格式 第一行分别表示观测个数5 第一行分别表示观测个数5个,水准点数4个,未知点3个,已知点1个,所有数据用英文逗号隔开 (2)已知点数据格式 第二行开始是已知点点号和高程,一行列一个已知点点号和高程,由于该水准网只有一个已知点,所有只能列出一行。图中表示已知点点号为1,高程为 第二行开始是已知点点号和高程,一行列一个已知点点号和高程,由于该水准网只有一个已知点,所有只能列出一行。图中表示已知点点号为1,高程为237.483m (3)测站起始点号格式 该部分表示测站的起始点点号 该部分表示测站的起始点点号 (4)测站终点点号格式 该部分表示测站的终点点号 该部分表示测站的终点点号 (5)高差格式 该部分表示各测站的高差 该部分表示各测站的高差 (6)距离格式 该部分表示各测站的距离S 该部分表示各测站的距离S 五、流程图 六、附件代码 function SDJianJiePingCha() [FileName,PathName] = uigetfile(*.txt,打开水准观测数据);%打开文件 f=csvread( strcat(PathName,FileName));%打开文件并存在矩阵f中 point=f(1,2);%获取所有水准点个数 n=f(1,1);%获得观测个数n t=f(1,3);%获得必要观测个数t y=f(1,4);%获得已知点个数y XX=zeros(point,1);%初始化XX阵等于0,方便下面把已知点高程和未知点参数估值放到XX阵 B=zeros(n,t);%初始化B阵,方便下面求V=Bx-l中的系数阵B; for j=1:y XX(j,1)=f(j+1,2);%把已知点高程放到XX阵中 end data=f((2+y):end,:);%从文件中获取观测数据,并放到data阵中 h=data(:,3);%从data中获取观测高差,并放到h阵中 P=zeros(n);%初始化权阵P for j=1:n P(j,j)=10/data(j,4);%以10km观测值为单位权误差计算权阵P end for i=1:n%通过循环求B阵 point1=data(i,1);%获取某个测站的起始点号 point2=data(i,2);%获取某个测站的终点点号 if point1ypoint2y%当某测站起始点和终点高程都未知时,求B阵第i行 B(i,point1-y)=-1; B(i,point2-y)=1; elseif point1=ypoint2y%当起始点高程已知和终点高程未知时,求B阵第i行 B(i,point2-y)=1; XX(point2,1)=XX(point1,1)+h(i,1);%求第i个参数估值 elseif point1ypoint2=y%当起始点高程未知和终点高程已知时,求B阵第i行 B(i,point1-y)=-1; XX(point1,1)=XX(point2,1)-h(i,1);%求第i个参数估值 end end l=zeros(n,1);%初始化小l阵,方便下面求V=Bx-l中的系数阵l; for i=1:n%通过循环求小l point1=data(i,1); point2=data(i,2); l(i,1)=-(XX(point2,1)-XX(point1,1)-h(i,1)); end %带入间接平差数学模型公式进行计算: r=n-t;%求多余观测数 N=B*P*B; W=B*P*l; x=N\W; X=XX((y+1):end,1)+x; V=B*x-l; L=h+V; a0=sqrt(V*P*V/r); Qxx=inv(N); Dxx=a0*a0*inv(N); %输出计算结果: disp(参数改正数:) x=x disp(参数平差值:) X=X disp(观测值改正数:) V=V disp(观测值平差值:) L=L disp(协方差阵:) Dxx

文档评论(0)

l215322 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档