误差理论与测量平差课程设计报告
2011测绘工程 误差理论与测量平差课程设计指导书 2

《误差理论与测量平差》课程设计指导书班级: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)(一)、目的 (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、个人实习小结。
误差理论与测量平差课程设计指导书

课程设计(一)课程设计指导书(测绘工程专业适用)华北科技学院建筑工程学院测绘工程教研室2012年8月24日一、课程设计的目的和要求课程误差理论与测量平差是一门理论与实践并重的课程,该课程设计是测量数据处理理论学习的一个重要的实践环节,它是在学生学习了专业基础课“误差理论与测量平差基础”课程后进行的一门实践课程。
其目的是增强学生对误差理论与测量平差基础理论的理解,牢固掌握测量平差的基本原理和基本公式,熟悉测量数据处理的基本技能和计算方法,灵活准确地应用于解决各类数据处理的实际问题。
课程设计中所用的数学模型和计算方法在误差理论与测量平差课程中讲授,二、课程设计内容根据上述的教学目的和任务,本课程设计主要是要求学生完成1-2个综合性的结合生产实践的题目。
如目前生产实践中经常用到的高程控制网严密平差及精度评定,边角网(导线)严密平差及精度评定等内容。
重点培养学生正确应用公式、综合分析和解决问题的能力,以及计算能力。
在下面内容中高程控制网必做,平面控制网二者选其一即可。
1、高程控制网严密平差及精度评定根据题目要求,正确应用平差模型列出观测值条件方程、误差方程和法方程解算法方程,得出平差后的平差值及各待定点的高程平差值,评定各平差值的精度和各高程平差值的精度。
具体算例为:如图1所示四等水准网,有2个已知点,3个未知点,7个测段。
各已知数据及观测值见下表已知点高程H1=5.016m H2=6.016m 高差观测值(m)图1 高程控制网已知高差观测值(m)端点号高差观测值测段距离序号1-3 1.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-4点的高差中误差;3号点、4号点的高程中误差,并检验是否满足精度要求!对于高程控制网平差,一般采用间接平差模型,平差参数可以选择测段观测高差值作为参数,也可以选用未知点高程作为参数,本网可采用以测段的高差为平差元素,进行平差计算,亦可采用间接平差法编写程序计算。
误差理论与测量平差实习报告

《误差理论与测量平差》课程设计实习报告学院:土木工程学院专业:测绘工程14 学号: 20140456052 姓名:杨福权一.实习概况1.1 实习名称:《误差理论与测量平差》课程设计1.2 实习目的:此次实习是对这个学期学习成果的检验。
要求用《误差理论与测量平差》课程中和VB 课程中所学的理论知识来解决实际的问题。
通过本次课程设计对测量平差的两大基本任务有更好的理解,一是处理一系列带有观测误差的观测值求出最或然值;二是对测量成果进行精度评定。
通过所学的VB 语言编制简单的高程(水准网)的间接平差计算程序,进一步掌握间接平差和随机模型的建立。
1.3 实习要求1.通过所学的VB语言进行简单的水准网间接平差软件编制;2.通过EXCEL 程序设计,编写平面控制网(边角网、测边网、测角网)平差程序;3.手工或程序实现控制边角网的严密平差及精度评定。
二.水准网平差程序设计1.这个实习要求利用所学过的任何一种编程语言,编写高程网间接平差的平差程序,并以文件格式存储平差结果。
这个过程相对学习当中练习的小软件来说是要复杂很多的,而且里面需要使用的控件以及好多方法在VB 课程中并没有学习过,这是一个比较困难的实习。
2.该程序的第一步就是输入文本类型的已知数据。
由于该方法vb课程里面没有学习过,想了很久也没有办法,最后从网上找到了使用commonDialog 控件可以打开外部菜单的方法,解决了输入数据的问题。
第二步,观测数据信息的提取,通过判断语句将输入的已知数据进行分类,并将其赋值给相应的数组,用于后面的计算。
第三步,间接平差是一个需要大量矩阵运算的过程,接下来必不可少的一个步骤就是对所有需要运用的矩阵算法过程或者函数进行编写,包括矩阵的加减乘、线性方程的求解、矩阵转置、逆矩阵以及高斯约化过程的编辑。
第四步是根据间接平差的计算过程进行未知点近似高程的计算、误差方程的求解和未知参数以及观测值改正数的求解。
3.程序界面的设计是开始编程的第二个步骤。
测量平差课程设计_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)(一)、目的 (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、个人实习小结。
误差理论与测量平差课程设计

课程设计报告设计题目:“误差理论与测量平差基础”课程设计专业:测绘工程班级学号:姓名:指导教师:起屹日期:20XX年X月XX日~20XX年XX月XX日南京工业大学测绘科学与技术学院1.概述.......................................................... (1)课程设计名称、目的和要求。
(2)工程和作业区概况、平面控制网布设情况和已有资料的利用情况。
(3)课程设计完成情况。
2.平差方案的技术设计............................................(1)平差原理。
(2)技术要求。
(3)平差模型的选择和探讨。
(4)计算方案的确定及依据。
(5)计算方法和程序设计。
3.平差计算的过程和质量评价...................................... (1)平差方案执行情况。
(2)计算过程说明。
(3)计算过程出现的问题、处理方法和效果。
(4)控制网测量数据的质量评价。
4.课程设计成果及体会...........................................一、概述:(1)课程设计名称、南京工业大学校园数字化测图项目平面控制网的平差计算。
(2)课程设计目的误差理论与测量平差是一门理论与实践并重的课程。
该课程设计是测量数据处理理论学习的一个重要的实践环节,它是在学生学习了专业基础课“误差理论与测量平差基础”课程后进行的一门实践课。
其目的是增强我对误差理论与测量平差基础理论的理解,牢固掌握测量平差的基本原理和基本公式,熟悉测量数据处理的基本技能和计算方法,灵活准确的应用于解决各类数据处理的实际问题,并能用所学的计算机理论知识,编制简单的计算程序。
误差理论与测量平差课程设计是测量平差和计算机程序设计等课程的综合实践与应用,同时也为我们今后步入工作岗位打下了一定基础。
(3)课程设计要求。
这次课程设计我们在误差理论与测量平差课程中所学的数学模型和计算方法,手工解算具有一定规模的平面控制网或高程控制网,再用计算机(平差软件)进行检核计算,最后编写课程设计报告。
《误差理论课程设计指导书》

《误差理论与测量平差基础课程设计》指导书编写:张建霞闽江学院地理科学系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、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
n目录一、目录 ----------------------------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)端点号高差观测值m 测段距离km 序号1.359 1.1 11-31-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点的高差中误差;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,即所选参数的改正数xx={{-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 P V={{-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第七部分总结通过这次误差理论与测量平差的课程设计,我又对整本书有了一个更深的理解。