误差理论与测量平差课程设计版文 (2)

上传人:mg****85 文档编号:34246920 上传时间:2018-02-22 格式:DOC 页数:14 大小:108.50KB
返回 下载 相关 举报
误差理论与测量平差课程设计版文 (2)_第1页
第1页 / 共14页
误差理论与测量平差课程设计版文 (2)_第2页
第2页 / 共14页
误差理论与测量平差课程设计版文 (2)_第3页
第3页 / 共14页
误差理论与测量平差课程设计版文 (2)_第4页
第4页 / 共14页
误差理论与测量平差课程设计版文 (2)_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《误差理论与测量平差课程设计版文 (2)》由会员分享,可在线阅读,更多相关《误差理论与测量平差课程设计版文 (2)(14页珍藏版)》请在金锄头文库上搜索。

1、误差理论与测量平差课程设计报告课题:水准网严密平差及精度评定院校:系别:指导教师:班级:姓名:11、 本课程设计的性质、目的和任务误差理论与测量平差是一门理论与实践并重的课程,其课程设计是测量数据处理理论学习的一个重要的实践环节,它是在我们学习了专业基础课“误差理论与测量平差基础”课程后进行的一门实践课程。其目的是增强我们对误差理论与测量平差基础理论的理解,牢固掌握测量平差的基本原理和基本公式,熟悉测量数据处理的基本技能和计算方法,灵活准确地应用于解决各类数据处理的实际问题,并能用所学的计算机理论知识,编制简单的计算程序。2、误差理论与测量平差课程和其它课程的联系和分工这次课程设计中所用的数学

2、模型和计算方法是我们在误差理论与测量平差课程中所学的内容,所使用的 C 程序语言使我们在计算机基础课程中所学知识。误差理论与测量平差课程设计是测量平差和计算机程序设计等课程的综合实践与应用,同时也为我们今后步入工作岗位打下了一定基础。3、 课程设计重点及内容本次课程设计重点是培养我们正确应用公式、综合分析和解决问题的能力,以及计算机编程能力。另外它要求我们完成 12 个综合性的结合生产实践的题目。如目前生产实践中经常用到的水准网严密平差及精度评定,边角网(导线)严密平差及精度评定等。此次我所选的课程设计课题是水准网严密平差及精度评定,其具体内容如下:根据题目要求,正确应用平差模型列出观测值条件

3、方程、误差方程和法方程;解算法方程,得出平差后的平差值及各待定点的高程平差值;评定各平差值的精度和各高程平差值的精度。具体算例为:如图所示水准网,有 2 个已知点,3 个未知点,7 个测段。各已知数据及观测值见下表(1) 已知点高程 H1=5.016m , H2=6.016m (2)高差观测值(m)2端点号 高差观测值 m 测段距离 km 序号1-31.359 1.1 11-4 2.009 1.7 22-3 0.363 2.3 32-4 1.012 2.7 43-4 0.657 2.4 53-5 0.238 1.4 65-2 -0.595 2.6 7(3)求各待定点的高程;3-4 点的高差中误

4、差;3 号点、4 号点的高程中误差。第三部分 设计思路一、解题步骤(1)此次设计我所采用的模型为间接平差模型,根据已知条件我们可知观测总数 n=7,必要观测数 t=3(则多余观测数 r=n-t=4) ,因此我需先选定三个参数,即 3、4、5 点的最或然高程X3、X 4、X 5(X=X 0+x,X 30=6.375、X 40=7.025、X 50=6.611;其中 X0为参数的近似3值,x 为其改正值)为参数。(2)列出条件方程,即将每一个观测量的平差值分别表达成所选参数的函数,H1+h1=X3、H 1+h2=X4、H 2+h3=X3、H 2+h4=X4、X 3+h5=X4、X 3+h6=X5、

5、X 5+h7=H2;整理后得出误差方程,v 1=x3、v 2=x4、v 3=x3-4、v 4=x4-3、v 5=-x3+x4-7、v 6=-x3+x5-2、v 7=-x5,即 v=Bx-l 的形式。(3)定权,令每千米的观测高差为单位权观测,即 Pi=1/Si,从而可写出权阵P;根据误差方程式又可得其系数矩阵 B 和自由项 l,并由它们组成法方程 NBBx-W=0(其中 NBB=BTPB,W=B TPl) ,法方程的个数等于所选参数的个数。(4)解算法方程,求出参数改正值 x 并计算参数的平差值 X=X0+x。(5)由误差方程计算 V,并求出观测量的平差值。为了检查平差计算的正确性,将所求的值

6、代入条件方程,看其是否满足方程。(6)精度评定,计算单位权中误差,按照题设要求列出权函数式,再根据平差参数的协方差阵求出协因数,最后求出某段高差中误差,某些点的高程中误差。二、程序设计思想考虑到在解题过程中一些计算的复杂性,我们需借助一些技术将计算简单化,快捷化,因此在课程设计过程中,我们把一些 C 语言程序设计引入其中;通过一些简单、明了的程序及子函数调用,我们就可以很方便快捷的求出用笔算比较繁琐、费时的矩阵乘积、矩阵的逆(如 BTPB、B TPl)等运算。第四部分 程序流程图根据题目列出条件方程并写成误差方程的形式 V=Bx-l4确定权阵,根据误差方程得到矩阵 B、l 进而写出 BT运用

7、C 程序语言求出 BTP,进一步得到 NBB=BTPB、W=B TPl 并求出 NBB-1用 C 程序求出参数的改正数 x=NBB-1W根据 C 程序语言求 Bx,进而由 V=Bx-l 写出各观测值的改正数根据 L=L+V 求出各观测值的平差值检验所求各值是否正确,若无误则往下进行,反之检查各步骤查出错误并改正由程序计算 VTP 进而求出 VTPV,求单位权中误差,再根据权函数式、协因数传播定律评定各观测值及所求高程的精度第五部分 程序及说明一、矩阵相乘计算函数#include “stdio.h”void Matrix(a,b,m,n,k,c)int m,n,k;double a,b,c;in

8、t i,j,l,u;for(i=0;i=m-1;i+)for(j=0;j=k-1;j+)5u=i*k+j;cu=0.0;for(l=0;l=n-1;l+)cu=cu+ai*n+l*bl*k+j;return;1.计算 BTPmain()int i,j;static double a37=BT;static double c37,b77=P;Matrixmul(a,b,3,7,7,c);printf(“n”);for(i=0;i=2;i+)for(j=0;j=6;j+)printf(“%8.4ft”,cij;printf(“n”);printf(“n”);return0;2.计算 BTPB,即

9、NBBmain()int i,j;static double a37=BTP;static double c33,b73=B;Matrixmul(a,b,3,7,3,c);printf(“n”);for(i=0;i=2;i+)for(j=0;j=2;j+)6printf(“%8.4ft”,cij;printf(“n”);printf(“n”);return0;3.计算 BTPl,即 Wmain()int i,j;static double a37=BTP;static double c31,b71=l;Matrixmul(a,b,3,7,1,c);printf(“n”);for(i=0;i=2

10、;i+)for(j=0;j=0;j+)printf(“%8.4ft”,cij;printf(“n”);printf(“n”);return0;二、矩阵的逆计算函数(求 NBB-1)#include stdio.h #define M 3 void main() float MATM2*M; float MAT1MM; float t; 7int i,j,k,l; /*/ /*对矩阵进行初始化*/ for(i=0;iM;i+) for(j=0;j2*M;j+) MAT1j=0; /*对 MAT1 矩阵赋初值 */ for(i=0;iM;i+) for (j=0;jM;j+) scanf(%f,

11、/*打印目标矩阵?*/ printf(原矩阵为:n); for (i=0;iM;i+) for (j=0;jM;j+) printf(%13.7f,MAT1j); printf(n); /*/ /*对 MAT1 矩阵进行扩展,MAT1 矩阵添加单位阵,由 M*M 变成 2M*2M 矩阵 */ for(i=0;iM;i+) for(j=0;j2*M;j+) if (jM) MATj=MAT1j; else if (j=M+i) MATj=1; else MATj=0; /*对 M 矩阵进行变换,使得前半部分矩阵成为单位阵,则 */ /*后半部分矩阵即为所求矩阵逆阵 */ for(i=0;iM;i

12、+) /*对第 i 行进行归一化 */ 8for (j=0;j2*M;j+) for(k=i+1;kM;k+) MATj=MATj+MATkj; t=MAT; for(j=i;j2*M;j+) MATj=MATj/t; /*对矩阵进行行变换,使得第 i 列只有一个元素不为零,且为 1*/ for(k=0;kM;k+) if(k!=i) t=MATk; for (l=i;l2*M;l+) MATkl=MATkl-MATl*t; /*将后半部分矩阵即所求矩阵逆阵存入 MAT2 矩阵。*/ for(i=0;iM;i+) for(j=0;jM;j+) MAT1j=MATj+M; printf(n);

13、/*/ /*输出所求的逆阵*/ printf(逆阵为:n); for(i=0;iM;i+) for(j=0;jM;j+) printf(%8.4f,MAT1j); 9printf(n); 4.求 NBB-1W,即改正数 xmain()int i,j;static double a33=NBB-1;static double c31,b31=W;Matrixmul(a,b,3,3,1,c);printf(“n”);for(i=0;i=2;i+)for(j=0;j=0;j+)printf(“%8.4ft”,cij;printf(“n”);printf(“n”);return0;5.计算 Bxmai

14、n()int i,j;static double a73=B;static double c71,b31=x;Matrixmul(a,b,7,3,1,c);printf(“n”);for(i=0;i=6;i+)for(j=0;j=0;j+)printf(“%8.4ft”,cij;printf(“n”);10printf(“n”);return0;6.计算 VTPmain()int i,j;static double a17=VT;static double c17,b77=P;Matrixmul(a,b,1,7,7,c);printf(“n”);for(i=0;i=0;i+)for(j=0;j=6;j+)printf(“%8.4ft”,cij;printf(“n”);printf(“n”);return0;7.计算 VTPVmain()int i,j;static double a17=VTP;static double c11,b71=V;Matrixmul(a,b,1,7,1,c);printf(“n”);for(i=0;i=0;i+)for(j=0;j=0;j+)11printf(“%8.4ft”,cij;printf(“n”);printf(“n”);r

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号