误差理论与测量平差课程设计版

上传人:沈*** 文档编号:99141935 上传时间:2022-05-31 格式:DOC 页数:16 大小:111.50KB
收藏 版权申诉 举报 下载
误差理论与测量平差课程设计版_第1页
第1页 / 共16页
误差理论与测量平差课程设计版_第2页
第2页 / 共16页
误差理论与测量平差课程设计版_第3页
第3页 / 共16页
资源描述:

《误差理论与测量平差课程设计版》由会员分享,可在线阅读,更多相关《误差理论与测量平差课程设计版(16页珍藏版)》请在装配图网上搜索。

1、误差理论与测量平差课程设计报告 课题:水准网严密平差及精度评定院校:系别:指导教师:班级:姓名:目录一、目录 -1二、序言 - 2三、设计思路 - 3四、程序流程图 - 4五、程序及说明 - 5六、计算结果 -12七、总结 - 15第二部分 序言1、 课程设计的性质、目的和任务误差理论与测量平差是一门理论与实践并重的课程,其课程设计是测量数据处理理论学习的一个重要的实践环节,它是在我们学习了专业基础课“误差理论与测量平差基础”课程后进行的一门实践课程。其目的是增强我们对误差理论与测量平差基础理论的理解,牢固掌握测量平差的基本原理和基本公式,熟悉测量数据处理的基本技能和计算方法,灵活准确地应用于

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

3、导线)严密平差及精度评定等。此次我所选的课程设计课题是水准网严密平差及精度评定,其具体内容如下:根据题目要求,正确应用平差模型列出观测值条件方程、误差方程和法方程;解算法方程,得出平差后的平差值及各待定点的高程平差值;评定各平差值的精度和各高程平差值的精度。具体算例为:如图所示水准网,有2个已知点,3个未知点,7个测段。各已知数据及观测值见下表(1) 已知点高程H1=5.016m , H2=6.016m (2)高差观测值(m) 端点号高差观测值m测段距离km序号1-31.3591.111-42.0091.722-30.3632.332-41.0122.743-40.6572.453-50.23

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

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

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

7、到NBB=BTPB、W=BTPl并求出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;int i,j,l,u;for(i=0;i=m-1;i+)for(j=0

8、;j=k-1;j+) u=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,即NBBmain()int i,j;static double a

9、37=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+) printf(“%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;i+)for(j=0;j=0;j+) printf(“%8.4f

10、t”,cij; printf(“n”);printf(“n”);return0;二、矩阵的逆计算函数(求NBB-1)#include stdio.h #define M 3 void main() float MATM2*M; float MAT1MM; float t; int 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,&MAT1j); /*打印目标矩阵?*/ printf(原矩阵为:n);

11、 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+) /*对第i行进行归一化 */ for (j=0;j2*M;j+)

12、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); /*/ /*输出所求的逆阵*/ printf(逆阵为:n); for(i=0;iM;i

13、+) for(j=0;jM;j+) printf(%8.4f,MAT1j); printf(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.计算Bxmain()int i,j;static double a73=B;static double

14、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”);printf(“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

15、(“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+) printf(“%8.4ft”,cij; printf(“n”);printf(“n”);return0;注:程序中有下划线部分在C语言环境中运行时,需根据已知条件及所求结果进行替换!第六部分 计算结果根据条件方程及定权原则写出B、l、P及BTB=1.0,0.0,0.0, 0.0,1.0,0.0, 1.

16、0,0.0,0.0, 0.0,1.0,0.0, -1.0,1.0,0.0, -1.0,0.0,1.0, 0.0,0.0,-1.0l=0.0, 0.0, 4.0, 3.0, 7.0, 2.0, 0.0P=0.9091,0.0,0.0,0.0,0.0,0.0,0.0, 0.0,0.5882,0.0,0.0,0.0,0.0,0.0, 0.0,0.0,0.4348,0.0,0.0,0.0,0.0, 0.0,0.0,0.0,0.3704,0.0,0.0,0.0, 0.0,0.0,0.0,0.0,0.4167,0.0,0.0, 0.0,0.0,0.0,0.0,0.0,0.7143,0.0, 0.0,0.0

17、,0.0,0.0,0.0,0.0,0.3846BT=1.0,0.0,1.0,0.0,-1.0,-1.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,-1.0一、在矩阵相乘计算函数的程序前提下,进行以下子程序的调用1.替换第1个程序中的BT 、P并运行程序得到BTP BTP=0.9091,0.0,0.4348,0.0,-0.4167,-0.7143,0.0,0.0,0.5882,0.0,0.374,0.4167,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.7143,-0.38462.替换第2个程序中的BTP、B并

18、运行程序得到BTPB,即NBBNBB=2.4748,-0.4167,-0.7143,-0.4167,1.3753,0.0,-0.7143,0.0,1.09893.替换第3个程序中的BTP、l并运行程序得到BTPl,即WW=-2.6063,4.0281,1.4286二、在矩阵的逆计算函数程序中进行以下操作 运行程序,按照提示及以上运算得到的矩阵NBB输入其元素,运行的结果即为NBB-1 NBB-1=0.5307,0.1608,0.3450,0.1608,0.7758,0.1045,0.3450,0.1045,1.1342三、再次在矩阵相乘计算函数的程序前提下,进行以下子程序的调用1.替换第4个程

19、序中的NBB-1、W并运行程序得到NBB-1W,即所选参数的改正数xx=-0.2426,2.8552,1.14212.替换第5个程序中的B、x并运行程序得到BxBx=-0.2426, 2.8552, -0.2464, 2.8552, 3.0978, 1.3847, -1.14213.根据V=Bx-l求出各观测值的改正数V,并写出VT,然后替换第6个程序中的VT、P并运行程序得到VTPV=-0.2426, 2.8552, -4.2426, -0.1448, -3.9022, -0.6153, -1.1421VT=-0.2426,2.8552,-4.2426,-0.1448,-3.9022,-0.

20、6153,-1.1421VTP=-0.2205,1.6794,-1.8447,-0.0536,1.6260,-0.4395,-0.43934.替换第7个程序中的VTP、V并运行程序得到VTPVVTPV=19.7997四、求出各个观测值平差值并按要求平定精度X3=6.3748 m X4=7.0279 m X5=6.6122 mh1=1.3588m h2=2.0119m h3=0.3588m h4=1.0119m h5=0.6531m h6=0.2374m h7=-0.5961m根据公式可求得单位权中误差为 2.225mmh34= X3- X4 Q34=1 -1 0 NBB-11 -1 0T=0.

21、9849H3=X3 Q34=1 0 0 NBB-11 0 0T=0.5307H4= X4 Q34=0 1 0 NBB-10 1 0T=0.77583、4点高差中误差为 2.208mm3号点高程中误差为 1.621mm4号点高程中误差为 1.96mm第七部分 总结通过这次误差理论与测量平差的课程设计,我又对整本书有了一个更深的理解。其实课程设计就是将我们所学的理论知识应用于实践的过程,在这一过程中,进一步掌握测量平差的基本原理和基本公式,并熟悉测量数据处理的基本技能和计算方法。或许我们已对误差理论与测量平差这本书的理论知识有了一定了解,但将它应用于实践依然是我们的一个难点,尤其是将这门课程与计算机程序完美地结合。这便要求我们在原有的解题思路中加入C语言程序,并让它来帮助我们解决矩阵的复杂运算。既然用到了程序,我们就必须保证其运算的简洁性、正确性,尤其是在编写过程中要认真检查,为程序顺利运行打下基础。另外在各个子程序调用过程中,我们要充分考虑其顺序性并反复调试,以便得到理想结果。尽管在这次课程设计中遇到了很多困难,但我却得到了不少收获,并培养了自己正确应用公式、综合分析和解决问题的能力,同时也为今后步入社会打下了一定的基础。另外,我们还要学会综合利用自身所学的知识,并将它们联系起来帮助自己有效地解决实际中的问题。总之,在这次课程设计中我不但过了比较充实的一周,还收获了不少知识。15

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!