误差理论与测量平差课程设计报告
- 格式:doc
- 大小:95.06 KB
- 文档页数:17
《误差理论与测量平差》课程设计指导书班级:2011测绘工程《误差理论与测量平差》课程设计指导书一、课程设计的性质、目的和任务《误差理论与测量平差基础课程设计》是完成测量平差基础课程教学后进行的综合应用该课程基本知识和技能的一个教学实践环节,通过课程设计培养学生解决生产实际问题的能力和所学基本知识的综合应用能力。
二、课程设计的主要内容和要求掌握采用测量平差原理处理观测数据的方法,理论实际相结合,完成野外控制网的平差解算和卫星轨道多项式的拟合。
三、任务一:筠州大桥平面控制网平差解算1、控制网基线的确定根据设计院提供的导线点D4、D5,采用合格的索佳SET2110全站仪用前方交会法观测出桥轴线点DQ2(x=146096.552,y=502089.710),与原DQ2坐标(x=146096.554,y=502089.709)比较,差值dx=-2mm,dy=1mm ,精度较高,可作为筠州大桥平面控制网的基准点,采用桥轴线(DQ2----DQ1)方向方位角2.2915143''' 作为起算方向。
2、筠州大桥平面控制网的布设与外业观测:筠州大桥位于高安市锦江河上,桥南、桥北有防洪大提,地势复杂。
根据施工需要和桥位处地形条件,平面控制网点均布置在锦江河上游。
根据布设好的平面控制网点位,采用索佳SET2110(经鉴定:加常数为2.35mm ,乘常数为-3.22ppm )进行观测。
按照四等精度要求,角度观测6个测回,距离观测2个测回。
观测过程中,一测回内2C 值互差大于31''或测回间方向观测值大于9''时,应重新观测;边长观测时,同一测回边长值互差不超过2mm ,测回间边长互差不超过3mm ,往返测边长值互差不超过5mm ,否则重测。
外业观测成果见附表1、附表2。
附图:筠州大桥控制网平面布置图:DQ3DQ6附表1:筠州大桥平面控制网边长观测值:附表2:筠州大桥平面控制网方向观测值:3、筠州大桥平面控制网的平差处理和精度评定:筠州大桥平面控制网的外业观测成果,边长经加常数、乘常数改正后,利用DQ2作为已知点,桥轴线点DQ2至DQ1方向的方位角作为起算方向,采用方向平差法进行严密平差,完成未知点点位的精度评定。
测量平差基础课程设计一、课程背景及意义测量是地理信息科学中的重要组成部分,广泛应用于国土调查、地质勘探、城市规划等领域。
但测量数据存在误差,需要通过平差处理来保证测量结果的准确性和可靠性。
因此,掌握测量平差基础知识对于测量工作者来说是非常重要的。
二、课程目标通过本课程的学习,学生将掌握测量基础知识,包括误差理论、最小二乘法、平差方法等,能够应用所学知识对测量数据进行处理和分析,并能够撰写相应的报告。
三、教学内容及方法1. 误差理论•误差的分类和特点•误差的传递和分析•不确定度的计算2. 最小二乘法•最小二乘法的原理和应用•直线拟合和曲线拟合•数据平滑方法3. 平差方法•等精度平差和最小二乘平差•条件平差和自由网平差•加权平差和精度评定•数据处理软件的使用以上内容将通过课堂讲授、案例分析和实验操作相结合的方式进行教学。
四、实验设计及课程实施1. 实验一:误差传递和分析•目的:掌握误差的传递和分析方法•内容:通过链路误差传递实验,学生将学会误差的传递和分析方法,并计算得到所测参数的不确定度2. 实验二:直线拟合和数据处理•目的:掌握最小二乘法的应用•内容:通过直线拟合实验,学生将掌握最小二乘法的原理和应用,并利用所学方法进行数据平滑处理3. 实验三:自由网平差和报告撰写•目的:掌握平差方法和报告撰写技能•内容:通过自由网平差实验,学生将掌握多角度观测平差方法,并利用数据处理软件进行平差计算,最终撰写实验报告以上实验将在实验室中进行,每次实验时间为3-4小时。
教师将讲解实验要点和相关知识,学生将独立进行实验操作,并在实验后撰写实验报告。
五、课程评估1. 平时成绩•出勤(10%)•作业(30%)•案例分析报告(30%)2. 实验成绩•实验报告(30%)3. 合格标准•平时成绩占总成绩的50%•实验成绩占总成绩的50%•合格标准为总成绩不低于60分六、总结此次课程设计旨在帮助学生掌握测量基础知识,提高测量数据的处理和分析能力。
《误差理论与测量平差》课程设计实习报告学院:土木工程学院专业:测绘工程14 学号: 20140456052 姓名:杨福权一.实习概况1.1 实习名称:《误差理论与测量平差》课程设计1.2 实习目的:此次实习是对这个学期学习成果的检验。
要求用《误差理论与测量平差》课程中和VB 课程中所学的理论知识来解决实际的问题。
通过本次课程设计对测量平差的两大基本任务有更好的理解,一是处理一系列带有观测误差的观测值求出最或然值;二是对测量成果进行精度评定。
通过所学的VB 语言编制简单的高程(水准网)的间接平差计算程序,进一步掌握间接平差和随机模型的建立。
1.3 实习要求1.通过所学的VB语言进行简单的水准网间接平差软件编制;2.通过EXCEL 程序设计,编写平面控制网(边角网、测边网、测角网)平差程序;3.手工或程序实现控制边角网的严密平差及精度评定。
二.水准网平差程序设计1.这个实习要求利用所学过的任何一种编程语言,编写高程网间接平差的平差程序,并以文件格式存储平差结果。
这个过程相对学习当中练习的小软件来说是要复杂很多的,而且里面需要使用的控件以及好多方法在VB 课程中并没有学习过,这是一个比较困难的实习。
2.该程序的第一步就是输入文本类型的已知数据。
由于该方法vb课程里面没有学习过,想了很久也没有办法,最后从网上找到了使用commonDialog 控件可以打开外部菜单的方法,解决了输入数据的问题。
第二步,观测数据信息的提取,通过判断语句将输入的已知数据进行分类,并将其赋值给相应的数组,用于后面的计算。
第三步,间接平差是一个需要大量矩阵运算的过程,接下来必不可少的一个步骤就是对所有需要运用的矩阵算法过程或者函数进行编写,包括矩阵的加减乘、线性方程的求解、矩阵转置、逆矩阵以及高斯约化过程的编辑。
第四步是根据间接平差的计算过程进行未知点近似高程的计算、误差方程的求解和未知参数以及观测值改正数的求解。
3.程序界面的设计是开始编程的第二个步骤。
一.课程设计的目的目的: 课程设计是误差理论与测量平差教学的组成部分, 除验证课堂理论外, 也是巩固和深化课堂所学知识有机结合的重要环节, 更是培养学生动手能力和训练严格的实践科学态度和工作作风的手段。
通过课程设计, 增强平差相关理论的概念, 提高应用能力, 为今后解决实际工程中有关测量工作的问题打下基础。
二.课程设计题目内容描述和要求要求: 以教学大纲为依据, 按照要求完成实例计算过程, 结束后提交计算成果资料。
1.设计的任务(1)该课的课程设计安排在理论学习结束之后进行的, 于第5学期第7周进行, 时间为一周。
2.(2)在指导老师的指导下, 要求每个学生独立完成本课程设计的全部内容。
3.课程设计要求4.测量平差课程设计要求每一个学生必须遵守课程设计的具体项目的要求, 以教学大纲为依据, 独立完成设计内容, 并上交设计报告。
5.课程设计报告内容题目二: 导线网如图所示,A.B.C.D为已知点, P1~P6为待定点, 观测了14个角度和9条边长(观测数据见表4)。
已知测角中误差, 测边中误差, 已知点数据和待定点近似坐标见表5, 求待定点坐标平差值及点位中误差。
观测数据点号坐标点号近似坐标X/m Y/m P X/m Y/mA 871.1893 220.8223 1 825.810 272.250B 632.2173 179.4811 2 740.107 312.579C 840.9400 533.4018 3 768.340 392.230D 663.4752 570.7100 4 732.041 470.8855 681.630 279.3006 674.567 506.177k jk k jk j jk j jk jkjkjkjk jk jk jkjkjk jk jk y b x a y b x a S S X b S S Y a ˆˆˆˆcos )(sin )(0020000200--+=''''-=∆''-=''=∆''=αδαρραρρ已知点数据及待定点近似坐标利用公式000)(ˆˆˆˆˆˆjkjk j jk jk jk jk k jk k jk j jk j jk j jk j j L L Z L l l y b x a y b x a z v Z Z Z j-=--=---++-=+=α11ˆˆˆˆ0ˆˆˆ0ˆ00000)(ˆˆ,ˆˆˆˆˆˆˆ--====-=-∆+∆+∆-∆-=PB B N Q Q Q tn PVV l yS Y xS X yS Y xS X v T BB x x y y y x x x T i k jkk jk j jkj jk i ii iii jjkjkjkjkσσσσσ)(202yyxx P Q Q +=σσ Pl B PB B xL L l l x B V T T 10)(ˆˆ-=-=-=平差值方程为:ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ14141313121211111010998877665544332211PP PP P P P P DPDC P P D P C P P P PP P P B P PP BA BP CP CD P P C P P P P P P P P P A P P P AB APv Lv L v L v L v L v L v L v L v L v L v L v L v L v L αααααααααααααααααααααααααααα-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+-=+222323222222222121222020221919221818221717221616221515)ˆˆ()ˆˆ()ˆˆ()ˆˆ()ˆˆ()ˆˆ()ˆˆ()ˆˆ()ˆˆ()ˆˆ()ˆˆ()ˆˆ()ˆˆ()ˆˆ()ˆˆ()ˆˆ()ˆˆ()ˆˆ(6664642525554443433232212111D P D P P P P P P P P P P B P B C P C P P P P P P P P P P P P P P A P A Y Y X X v L Y Y X X v L Y Y X X v L Y Y X X v L Y Y X X v L Y Y X X v L Y Y X X v L Y Y X X v L Y Y X X v L -+-=+-+-=+-+-=+-+-=+-+-=+-+-=+-+-=+-+-=+-+-=+误差方程为:23090090232208008008008022210700700700702120060060201905005019180400400400401817030030030030171602002002002016150100101514141313121211111010998877665544332211ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆl y SY x SX v l y SY x SX y S Y x S X v l y S Y x S X y S Y x S X v l y SY x SX v l y SY x S X v l y SY x SX y S Y x S X v l y S Y x S X y S Y x S X v l y S Y x S X y S Y x S X v l y SY x SX v l v l v l v l v l v l v l v l v l v l v l v l v l v l v PD P P D P PP P P P P PP P P P P PP P P P P PP P P P P P BP P BP PC P P C P PP P P P P P P P P P P P P P P P P PP P P P P PP P P P P P P P P P P P AP P APP P P P P P P P DP DC P P D P C P P P P P P P B P P P BA BP CP CD P P C P P P P P P P P P A P P P AB AP -∆-∆-=-∆+∆+∆-∆-=-∆+∆+∆-∆-=-∆+∆=-∆-∆-=-∆+∆+∆-∆-=-∆+∆+∆-∆-=-∆+∆+∆-∆-=-∆+∆=-''-''=-''-''=-''-''=-''-''=-''-''=-''-''=-''-''=-''-''=-''-''=-''-''=-''-''=-''-''=-''-''=-''-''=αδαδαδαδαδαδαδαδαδαδαδαδαδαδαδαδαδαδαδαδαδαδαδαδαδαδαδαδ, 求出x 为⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡21620-3214-2875723580289121857-10307-65950-6608118164-4295-90134 点位中误差为。
测量平差实习报告专业:班级:组号:姓名:学号:目录高程控制网平差报告 (1)导线控制网平差报告 (2)Matlab编程源代码及截图 (4)技术总结 (7)个人实习小结…………………………………………控制网平差报告[控制网概况]计算软件: 南方平差易2005网名: 开学实习计算日期:观测人:记录人:计算者:检查者:测量单位:备注:平面控制网等级:图根测量, 验前单位权中误差:15.00(s)已知坐标点个数: 4未知坐标点个数: 7未知边数: 8最大点位误差[C5005] = 0.0764 (m)最小点位误差[C5007] = 0.0316 (m)平均点位误差= 0.0572 (m)最大点间误差= 0.0589(m)最大边长比例误差= 2636平面网验后单位权中误差= 51.16 (s)往返测距单位权中误差= 0.000 (m)[边长统计]总边长: 848.338(m),平均边长: 106.042(m),最小边长: 63.141(m),最大边长: 188.486(m)[闭合差统计报告]序号:<1>:附合导线路径: [GP02-GP01-C5001-C5002-C5003-C5004-C5005-C5006-C5007-GP14-GP13]角度闭合差=168.46(s),限差=±180.00(s)fx=0.232(m),fy=0.115(m),fd=0.258(m)总边长[s]=848.338(m),全长相对闭合差k=1/3281,平均边长=106.042(m)点名X(m) Y(m) H(m) 备注C5006 552903.5588 901665.7897C5007 552844.4360 901486.8082Matlab编程源代码:A=[1 1 -1 0;0 1 0 -1];P=[2 0 0 0;0 1 0 0;0 0 2 0;0 0 0 1.5];W=[0 ;-4];Naa=A*inv(P)*A';K=-inv(Naa)*W;V=inv(P)*A'*K运行结果截图:个人实习小结通过本次误差理论与测量平差的课程实习和设计, 我获得了很多收获, 对测量平差有了深刻的认识。
《测量理论与测量平差基础》课程实习报告目录一、目的和要求 (1)(一)、目的 (1)(二)要求及上交的资料 (1)二、控制网概况 (2)三、测量数据的整理与检验 (3)(一)、光电测距导线的主要技术要求: (3)1、测距中误差计算: (3)2、测角中误差的计算: (4)(二)、水准测量的主要技术要求: (4)四、测量数据的整理与检验 (5)(一)、水准测量数据的整理与检验 (5)(二)、导线测量数据的整理与检验 (8)五、条件平差 (11)(一)、条件平差的公式汇编 (11)(二)、水准网条件平差 (12)六、间接平差 (16)(一)、间接平差公式汇编 (16)(二)、水准网间接平差 (16)(三)、导线网间接平差 (22)七、误差椭圆 (26)八、技术总结 (27)(一)、水准网的技术总结 (27)(二)、平面控制测量技术总结 (27)(三)、测量平差技术总结 (28)九、个人实习小结 (28)《测量理论与测量平差基础》课程实习报告一、目的和要求(一)、目的通过控制测量外业工作采集的数据,应用测量平差基础课程中所学的知识对数据进行处理,通过数据处理更好的理解测量平差的两个基本任务:对带有观测误差的观测值,运用概率统计的方法消除它们之间的不符值,求出未知量的最可靠值;对测量成果进行精度评定。
通过平差作业进一步掌握平差的函数模型和随机模型的建立,掌握测量平差最常用的两种基础方法:条件平差和间接平差,并对这两种方法的成果评定精度。
(二)要求及上交的资料1、控制网概况及测量数据的整理和检验;2、列出条件平差和间接平差的函数模型并进行线形化,将线形化后的系数阵和常数向量列表;3、采用条件平差和间接平差的方法求控制点的坐标平差值;4、对控制点的坐标平差值进行精度评定,求出各点的点位中误差;对水准测量求各点高程平差值的高程中误差;5、对平面控制网间接平差法计算的点位,计算并绘制点位误差椭圆;6、技术总结(或技术报告);7、个人实习小结。
《误差理论与测量平差基础课程设计》指导书编写:张建霞闽江学院地理科学系2015年3月适用专业:测绘工程(6、7)学时数:1周一、课程设计的性质、目的和任务《误差理论与测量平差课程设计》是完成测量平差基础课程教学后进行的综合应用该课程基本知识和技能的一个教学环节,通过课程设计培养学生解决生产实际问题的能力和所学基本知识的综合应用能力。
二、课程设计的基本要求1.巩固和加深课堂所学理论知识,培养学生理论联系实际、实际动手能力;2.熟练掌握平差编程语言的使用;3.掌握利用条件平差和间接平差进行平差实例计算。
三、课程设计主要内容与安排利用VB可视化编程软件并结合Matlab软件实现平差中条件平差和间接平差的程序编写,并通过水准测量实例验证所编写程序的正确性。
基本内容与要求如下:1.条件平差原理与计算步骤;2.间接平差原理与计算步骤;3.条件平差的算法流程;4.间接平差的算法流程;5.条件平差与间接平差编程实现6.水准平差+GPS平差实例验证程序的正确性。
四、进度安排五、课程设计所需的仪器设备1、具备容纳60人以上的实验机房2、每台电脑上需配备VB6.0软件以及Matlab软件六、课程设计考核方式成绩按百分制记载。
评定学生成绩主要依据以下几项:1.平时成绩。
主要包括:出勤率、态度、是否遵守学校及教师所规定的各项纪律等。
该项总分为30分。
2.报告成绩。
主要包括:报告的编写格式和内容是否符合要求,分析问题、解决问题的能力及有无独特见解,是否工整清晰,数据计算是否正确等。
该项总分为40分。
3.考核成绩。
使用软件的编程能力。
主要包括:对理论知识的掌握程度,将所学理论用计算机编程语言加以编程实现。
该项总分为30分。
七、参考资料《误差理论与测量平差基础》,武汉大学出版社,2003附录一:平差课程设计主要操作内容一、vb 编程学习1、启动Visual Basic6.0,创建一个“标准EXE ”类型的应用程序,要求:在屏幕上显示“欢迎学习Visual Basic ”,并在“请输入你的姓名”标签后的文本框Text1中输入姓名;单击“你输入的姓名是”按钮,在Label3标签显示在文本框Text1输入的姓名。
误差理论与测量平差是测量领域中重要的理论基础,课程设计可以帮助学生深入理解相关理论,并通过实际操作加深对知识的理解和掌握。
以下是关于误差理论与测量平差课程设计的一般步骤和内容:
1. 课程设计目标:
-深入理解误差理论的基本概念和原理。
-掌握测量平差的方法和技巧。
-能够运用所学知识解决实际测量中的问题。
2. 课程设计内容:
-误差理论:包括误差类型、误差传播规律、误差分析方法等。
-测量平差:包括最小二乘法、最小二乘平差、参数平差等内容。
-实例分析:选取实际测量数据,进行误差分析和平差处理,让学生能够将理论知识应用到实际情况中。
3. 课程设计步骤:
-确定课程设计题目和内容范围,包括理论学习和实践操作部分。
-提供相关资料和参考书目,引导学生进行文献查阅和理论学习。
-组织实验或案例分析,让学生通过实际操作了解测量平差的过程和方法。
-引导学生进行数据处理和结果分析,培养他们的问题解决能力和实践能力。
-撰写课程设计报告,总结理论学习和实际操作的经验,提出改进建议和思考。
4. 课程设计要点:
-强调理论联系实际,引导学生将所学知识应用到实际测量中。
-注重实践操作,通过实验和案例分析加深学生对知识的理解和掌握。
-鼓励学生团队合作,培养他们的合作意识和团队精神。
-培养学生的问题分析能力和创新思维,在课程设计中注重培养学生的实践能力和创新意识。
通过误差理论与测量平差课程设计,可以帮助学生系统地学习和掌握相关知识,提高他们的实践能力和问题解决能力,为他们未来从事测量工作打下坚实的基础。
误差理论与测量平差课程设计报告课题:水准网严密平差及精度评定院校:山东交通学院系别:土木工程系指导教师:赵斌臣等班级:测绘071姓名:李大志目录一、目录 ----------------------------1二、序言 ---------------------------- 2三、设计思路 ------------------------ 3四、程序流程图 ---------------------- 4五、程序及说明 ---------------------- 5六、计算结果 -----------------------12七、总结 --------------------------- 15第二部分序言1、课程设计的性质、目的和任务误差理论与测量平差是一门理论与实践并重的课程,其课程设计是测量数据处理理论学习的一个重要的实践环节,它是在我们学习了专业基础课“误差理论与测量平差基础”课程后进行的一门实践课程。
其目的是增强我们对误差理论与测量平差基础理论的理解,牢固掌握测量平差的基本原理和基本公式,熟悉测量数据处理的基本技能和计算方法,灵活准确地应用于解决各类数据处理的实际问题,并能用所学的计算机理论知识,编制简单的计算程序。
2、误差理论与测量平差课程和其它课程的联系和分工这次课程设计中所用的数学模型和计算方法是我们在误差理论与测量平差课程中所学的内容,所使用的C程序语言使我们在计算机基础课程中所学知识。
误差理论与测量平差课程设计是测量平差和计算机程序设计等课程的综合实践与应用,同时也为我们今后步入工作岗位打下了一定基础。
3、课程设计重点及内容本次课程设计重点是培养我们正确应用公式、综合分析和解决问题的能力,以及计算机编程能力。
另外它要求我们完成1-2个综合性的结合生产实践的题目。
如目前生产实践中经常用到的水准网严密平差及精度评定,边角网(导线)严密平差及精度评定等。
此次我所选的课程设计课题是水准网严密平差及精度评定,其具体内容如下:根据题目要求,正确应用平差模型列出观测值条件方程、误差方程和法方程;解算法方程,得出平差后的平差值及各待定点的高程平差值;评定各平差值的精度和各高程平差值的精度。
具体算例为:如图所示水准网,有2个已知点,3个未知点,7个测段。
各已知数据及观测值见下表(1)已知点高程H1=5.016m , H2=6.016m (2)高差观测值(m)(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、X3+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)定权,令每千米的观测高差为单位权观测,即P i=1/S i,从而可写出权阵P;根据误差方程式又可得其系数矩阵B和自由项l,并由它们组成法方程N BB x-W=0(其中N BB=B T PB,W=B T Pl),法方程的个数等于所选参数的个数。
(4)解算法方程,求出参数改正值x并计算参数的平差值X=X0+x。
(5)由误差方程计算V,并求出观测量的平差值。
为了检查平差计算的正确性,将所求的值代入条件方程,看其是否满足方程。
(6)精度评定,计算单位权中误差,按照题设要求列出权函数式,再根据平差参数的协方差阵求出协因数,最后求出某段高差中误差,某些点的高程中误差。
二、程序设计思想考虑到在解题过程中一些计算的复杂性,我们需借助一些技术将计算简单化,快捷化,因此在课程设计过程中,我们把一些C语言程序设计引入其中;通过一些简单、明了的程序及子函数调用,我们就可以很方便快捷的求出用笔算比较繁琐、费时的矩阵乘积、矩阵的逆(如B T PB、B T Pl)等运算。
第四部分程序流程图↓↓↓↓↓↓↓第五部分程序及说明一、矩阵相乘计算函数#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;j<=k-1;j++){u=i*k+j;c[u]=0.0;for(l=0;l<=n-1;l++)c[u]=c[u]+a[i*n+l]*b[l*k+j];}return;}1.计算B T Pmain(){int i,j;static double a[3][7]=B T;static double c[3][7],b[7][7]=P;Matrixmul(a,b,3,7,7,c);printf(“\n”);for(i=0;i<=2;i++){for(j=0;j<=6;j++)printf(“%8.4f\t”,c[i][j];printf(“\n”);}printf(“\n”);return0;}2.计算B T PB,即N BBmain(){int i,j;static double a[3][7]=B T P;static double c[3][3],b[7][3]=B;Matrixmul(a,b,3,7,3,c);printf(“\n”);for(i=0;i<=2;i++){for(j=0;j<=2;j++)printf(“%8.4f\t”,c[i][j];printf(“\n”);}printf(“\n”);return0;}3.计算B T Pl,即Wmain(){int i,j;static double a[3][7]=B T P;static double c[3][1],b[7][1]=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\t”,c[i][j];printf(“\n”);}printf(“\n”);return0;}二、矩阵的逆计算函数(求N BB-1)#include "stdio.h"#define M 3void main(){float MAT[M][2*M];float MAT1[M][M];float t;int i,j,k,l;/***********************************************//*对矩阵进行初始化*/for(i=0;i<M;i++)for(j=0;j<2*M;j++)MAT1[j]='\0';/*对MAT1矩阵赋初值 */for(i=0;i<M;i++)for (j=0;j<M;j++)scanf("%f",&MAT1[j]);/*打印目标矩阵?*/printf("原矩阵为:\n");for (i=0;i<M;i++){for (j=0;j<M;j++)printf("%13.7f",MAT1[j]);printf("\n");} /********************************************//*对MAT1矩阵进行扩展,MAT1矩阵添加单位阵,由M*M变成2M*2M矩阵 */ for(i=0;i<M;i++)for(j=0;j<2*M;j++)if (j<M) MAT[j]=MAT1[j];else if (j==M+i) MAT[j]=1;else MAT[j]=0;/*对M矩阵进行变换,使得前半部分矩阵成为单位阵,则 *//*后半部分矩阵即为所求矩阵逆阵 */for(i=0;i<M;i++){/*对第i行进行归一化 */for (j=0;j<2*M;j++)for(k=i+1;k<M;k++)MAT[j]=MAT[j]+MAT[k][j];t=MAT;for(j=i;j<2*M;j++)MAT[j]=MAT[j]/t;/*对矩阵进行行变换,使得第i 列只有一个元素不为零,且为1*/ for(k=0;k<M;k++)if(k!=i){t=MAT[k];for (l=i;l<2*M;l++)MAT[k][l]=MAT[k][l]-MAT[l]*t;}}/*将后半部分矩阵即所求矩阵逆阵存入MAT2矩阵。
*/for(i=0;i<M;i++){for(j=0;j<M;j++)MAT1[j]=MAT[j+M];printf("\n");}/*********************************************//*输出所求的逆阵*/printf("逆阵为:\n");for(i=0;i<M;i++){for(j=0;j<M;j++)printf("%8.4f",MAT1[j]);printf("\n");}}4.求N BB-1W,即改正数xmain(){int i,j;static double a[3][3]=N BB-1;static double c[3][1],b[3][1]=W;Matrixmul(a,b,3,3,1,c);printf(“\n”);for(i=0;i<=2;i++){for(j=0;j<=0;j++)printf(“%8.4f\t”,c[i][j];printf(“\n”);}printf(“\n”);return0;}5.计算Bxmain(){int i,j;static double a[7][3]=B;static double c[7][1],b[3][1]=x;Matrixmul(a,b,7,3,1,c);printf(“\n”);for(i=0;i<=6;i++){for(j=0;j<=0;j++)printf(“%8.4f\t”,c[i][j];printf(“\n”);}printf(“\n”);return0;}6.计算V T Pmain(){int i,j;static double a[1][7]=V T;static double c[1][7],b[7][7]=P;Matrixmul(a,b,1,7,7,c);printf(“\n”);for(i=0;i<=0;i++){for(j=0;j<=6;j++)printf(“%8.4f\t”,c[i][j];printf(“\n”);}printf(“\n”);return0;}7.计算V T PVmain(){int i,j;static double a[1][7]=V T P;static double c[1][1],b[7][1]=V;Matrixmul(a,b,1,7,1,c);printf(“\n”);for(i=0;i<=0;i++){for(j=0;j<=0;j++)printf(“%8.4f\t”,c[i][j];printf(“\n”);}printf(“\n”);return0;注:程序中有下划线部分在C语言环境中运行时,需根据已知条件及所求结果进行替换!第六部分计算结果根据条件方程及定权原则写出B、l、P及B TB={{1.0,0.0,0.0},{0.0,1.0,0.0},{1.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.0}}l={{0.0},{0.0},{4.0},{3.0},{7.0},{2.0},{0.0}}P={{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,0.0,0.0,0.0,0.0,0.3846}}B T={{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个程序中的B T 、P并运行程序得到B T PB T P={{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.3846}}2.替换第2个程序中的B T P、B并运行程序得到B T PB,即N BBN BB={{2.4748,-0.4167,-0.7143},{-0.4167,1.3753,0.0},{-0.7143,0.0,1.0989}}3.替换第3个程序中的B T P、l并运行程序得到B T Pl,即WW={{-2.6063},{4.0281},{1.4286}}二、在矩阵的逆计算函数程序中进行以下操作运行程序,按照提示及以上运算得到的矩阵N BB输入其元素,运行的结果即为N BB-1N BB-1={{0.5307,0.1608,0.3450},{0.1608,0.7758,0.1045},{0.3450,0.1045,1.1342}}三、再次在矩阵相乘计算函数的程序前提下,进行以下子程序的调用1.替换第4个程序中的N BB-1、W并运行程序得到N BB-1W,即所选参数的改正数x x={{-0.2426},{2.8552},{1.1421}}2.替换第5个程序中的B、x并运行程序得到BxBx={{-0.2426},{2.8552},{-0.2464},{2.8552},{3.0978},{1.3847},{-1.1421}}3.根据V=Bx-l求出各观测值的改正数V,并写出V T,然后替换第6个程序中的V T、P并运行程序得到V T PV={{-0.2426},{2.8552},{-4.2426},{-0.1448},{-3.9022},{-0.6153},{-1.1421}}V T={{-0.2426,2.8552,-4.2426,-0.1448,-3.9022,-0.6153,-1.1421}}V T P={{-0.2205,1.6794,-1.8447,-0.0536,1.6260,-0.4395,-0.4393}}4.替换第7个程序中的V T P、V并运行程序得到V T PVV T PV=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- X4Q34=[1 -1 0] N BB-1[1 -1 0]T=0.9849H3=X3Q34=[1 0 0] N BB-1[1 0 0]T=0.5307H4= X4 Q34=[0 1 0] N BB-1[0 1 0]T=0.77583、4点高差中误差为 2.208mm3号点高程中误差为 1.621mm4号点高程中误差为 1.96mm第七部分总结通过这次误差理论与测量平差的课程设计,我又对整本书有了一个更深的理解。