资源预览内容
第1页 / 共24页
第2页 / 共24页
第3页 / 共24页
第4页 / 共24页
第5页 / 共24页
第6页 / 共24页
第7页 / 共24页
第8页 / 共24页
第9页 / 共24页
第10页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
n目录一、目录1二、 序言2三、设计思路3四、程序流程图4五、程序及说明5六、计算结果12七、 总结15第二部分序言仁课程设计的性质、目的和任务误差理论与浏量平差是一门理论与实践并重的课程其课程设计是测董数据处理理论学习的一个重 要的实践环节,它杲在我们学习了专业基础课“误差理论与浏量平差基础”课程后进行的一门实践课程。其 目的是增冬我们对误差理论与测量平差基础理论的理解,牢固掌握测量平差的基本原理和基本公式.熟悉测 董数据处理的恳本技能和计算方法,灵活准确地应用于解决各矣数据处理的实际问题,并能用所学的计算机 理论知识,綸制简单的计算程序。2、误差理论与测童平差课程和其它课程的联系和分工这次课程设计中所用的数学模型和计算方法是我们在误差理论与测量平差课程中所学的内容,所使 用的C程序语言使我们在计算机基础课程中所学知识。误差理论与测量平差课程设计是测童平差和计算机程 序设计等课程的综合实践与应用,同时也为我们今后步入工作岗位打下了一定基础。3课程设计更点及内容本次课程设计重点是培堀我们正确应用公式.综合分析和解决问題的能力,以及计算机编程能力. 另外它要求我们完成1-2个综合性的结合生产实践的題目。如目前生产实践中经常用到的水准网严密平差 及精度评定,边角网(导线)严密平差及精度评定等。此次我所选的课程设计课題是水准网严密平差及精度 评定,其具体内容如下:根据题目要求,正确应用平差樣型列出观浏值条件方程.误差方程和法方程;解算法方程,得出平差后的 平差值及各待定点的高程平差值:评定各平差值的耕度和各高程平差值的耕度。具体昇例为:如图所示水准网.有2个已知点,3个未知点,7个浏段。各己知数据及观浏值见下表(1) 已知点高程H1=5o 016m , H2=6.016m(2)高差观測值(m)端点号高差观测值m浏段距离km序号131o 3591o 111-42. 0091.72230. 3632.33241.0122。743-40. 6572.45350. 2381。465-2-0o 5952。67(3)求各待定点的高程:3-4点的高差中误差:3号点.4号点的高程中误差。第三部分设计思路一. 解題步腺(1)此次设计我所采用的模型为间接平差模型,根据已知条件我们可知观浏总软n=7,必要观测数t=3 (则 多余观测数r=n-t=4),因比我需先选定三个参数,即3. 4. 5点的说或然高程尢、X. Xs (X二Xx, XJ=6 375、 X4=7o 025、Xs=6o 611;其中X。为参数的近似值,x为其改正值)为参数。(2) 列出条件方程,即将每一个观测童的平差值分别表达成所选参数的函数,Hi+hi=Xa H,+h* H2+hi=X. 昭帕二心 XhhFX Xs+Fv二X,、Xs+h产出;整理&得出误差方程,vi=x3x v汙小 vfx厂4、w=x广3、v5=x3+x47. v6=Xs+Xs2x V x5 pp v=Bx-l 的形式。(3) 定权,令每千米的观測离差为单位权观渕.即P.=1/Stt从而可写出权阵P:根据误差方程式又可得其系 数矩阵B和囱由项I,并由它们组成法方程Nmx-W=O (其中N沪BE. W=BtPI),法方程的个數等于所选参数的 个数.(4) 解算法方程,求出参数改正值x并计算参数的平差值X=X+xo(5) 由误差方程计昇V.并求出观测董的平差值。为了检查平差计算的正确性,将所求的值代入条件方程, 看其是否满足方程。(6) 精度评定,计算单位权中误差,按照题设要求列出权函数式再根据平差参数的协方差阵求出协因数. 董后求出某役高差中误差,某些点的高程中误差。二、程序设计思想考虑到在解題过程中一些计算的复杂性,我们需借助一些技术将计算简单化,快捷化,因此在课程设 计过程中,我们把一些C语言程序设计引入其中;通过一些简单、明了的程序及子函数调用,我们就可以很方 便快捷的求出用笔算比较绘琐、费时的矩阵乘积.矩阵的逆(如BPB、BtPI)等运算。第四部分程序流程图根据題目列出条件方程并写成误差方程的形式V=Bx I确定权阵,根据误差方程得到矩阵B、I进而写出运用C程序语言求出Bp进一步得到NmFBtPB. W=BtPI并求出Nbb用C程序求出参敎的改正数x=N8 ,W根据C程序语言求Bx.进而由V=Bx-l写出各观测值的改正数根据L=L+V求出各观测值的平差值检验所求各值是否正确.若无误則往下进行,反之检查各步驟查出措误并改正由程序计算P进而求出VTPV,求单位权中误差,再根据权函数式.协因数传播定律评定各观渕值及所求商程的粕度第五部分程序及说明一.矩阵相采计算函數# include “stdio. h”void Matr ix(a, b. m, n. k, c)i nt m, n.k;double a,b,c;int i, j, I, u;for (i =0;i 一1: i+)for (j=0;j =k-1: j+)u=i *k+j: cu =0. 0;for (l=0;l=n1;I+)cu=cu+a i*n+l *bl*k+j;return;1 计算B9main ()int i,j;static double a3 7 =B:static double c 3 7 t b7 7 =P;Matr ixmul (a, b, 3,7,7, c):pr intf ( “n):for (i=0: i=2;i+)for (j=0: j=6;ji)printf ( “8。4ft” ,c i j:printf ( wn);printf ( “n):returnO:2计算 BPB.即 Neemain ()int i, j:static double a 37=BTP: static double c3 3,b 7 3 =B;Matrixmul (a.b,3,7, 3, c);printf ( “nM );for (i=0: i =2;i+)for (j=0: j (=2: j+) printf ( “8。4ftv ,ci j: printf ( unM ;printf( anv );returnO;3. 计算BPI,即WmainOint i, j;static double a3 7 =BTP:static double c 3 1,b7 1= 丄; Matrixmul (a,bf 3, 7, 1. c):printf ( an);for (i=0: i=2: i+)for (j=0;j =0: j+)printf ( “?i84ft”,ci j; printf ( wn ):pr intf ( wn );returnO:二.矩阵的逆计算函数(求Net)#include ” stdio.hit def i ne M 3void main()float MAT M2*M;float MAT1 M M;float t:/* * * * * * * */对矩阵进疔初始化*/for (i=0;i M;i +)for (j=0: j (T;/*对MAT1矩阵瞅初值*/for (i=0: iM;i+)for (j=0: jM;j+)scanf ( %fw , &MAT1 j):/*打印目标矩阵? */pr intf (原矩阵为:n):for (i=0:for (j=0: j M;j+)printf (” 137f” t MAT1 j);prirrtf (” n” ):)/* * * * * * * * * * * * * * / /*对MAT1矩痒进行扩展.MAT1翹阵添加单位阵,由M*M变成2M*2M矩阵 */ for (i=0;iM;i+)for (j=0: j 2*M: j+)if (j M) MAT j =MAT1j:else if (j=MH) MATj=1;else MAT j=0;/*对M矩阵进疔变换,使得前半部分矩阵成为单位阵,則*/*后半部分矩阵即为所求矩阵逆阵*/for (i=0: iM;i+)/*对第i行进行归一化 */for (j=0;j 2*M: j*+)for (k=i+1: kM;k+)MATj=MAT j+MAT k j:t二MAT;for (j=i: j 2*M:j+)MAT j =MATj /t;/*对矩阵进行疔变换.使得第i列只有一个元素不为塔,且为1*/for (k=0: k M;k+)if (k! =i)t=MATk;for (l = i: K2*M: I+)MAT kl =MATk Ij-MAT l*t;/*将后半部分矩阵即所求矩阵逆阵存入MAT2矩阵。*/for (i=0: iM; i+)for (j=0: j M: j+)MAT1j二MAT j+M;printf (nn):* * * * * * * * * * * * */*输出所求的逆阵*/printf (”逆阵为:n):for (i=0: iM;i+)for(j=0: j M;j+)printf (“84厂.MATlj);printf ( nM ):14. 求N小即改正数x main ()int i, j:static double a 3 3 =Fk-:static double c3 1,b31 =W:Matr ixmul (a, b, 3f 3,1, c):pr intf ( “n):for (i=0: i (=2;i+)for(j=0: j =0: j+)printf ( “8。4ft” ,c i j: printf ( nM ):printf ( an);returnO;5。计算Bxmain()int i, j:static double a7 3 =B:static double c 7 ltb 3 1=x:Matrixmul (a, b, 7, 3, 1,c):printf( “rT ):for (i=0: i =6: i+)for (j=0
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号