测绘工程毕业论文.docx

上传人:小飞机 文档编号:1766378 上传时间:2022-12-17 格式:DOCX 页数:56 大小:1.65MB
返回 下载 相关 举报
测绘工程毕业论文.docx_第1页
第1页 / 共56页
测绘工程毕业论文.docx_第2页
第2页 / 共56页
测绘工程毕业论文.docx_第3页
第3页 / 共56页
测绘工程毕业论文.docx_第4页
第4页 / 共56页
测绘工程毕业论文.docx_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《测绘工程毕业论文.docx》由会员分享,可在线阅读,更多相关《测绘工程毕业论文.docx(56页珍藏版)》请在三一办公上搜索。

1、大学本科学生毕业设计(论文) 中文摘要大学本科学生毕业设计(论文)测量平差程序设计摘 要测量平差是测绘类专业的一门重要的专业基础课程,是用于观测数据处理的一门应用数学 。但是因为其计算量比较大,这变使大家在学习和使用的时候感觉十分头疼。虽然有很多简化了的平差算法,比如高斯约化法, 但是这些算法一方面会影响计算精度,另一方面也不能有效的减少计算量。平差计算是利用最小二乘原理消除观测值与起算数据之间的矛盾,求出各待定元素的平差值并评定精度。而在经典测量平差中,主要研究四种平差模型方程(条件平差、间接平差、附有未知参数的条件平差和附有限制条件的间接平差)的列立和求解,其牵涉到大量的矩阵运算,传统的人

2、工计算工作量很大。随着计算机的出现,矩阵运算就变得轻松,而且计算机的运行速度快,精度高,特别是对于具有大量矩阵运算,计算机轻松解决。前提是要编好相应的程序代码。本文运用visual basic语言编制了一个平差软件,主要对水准网和附合导线进行了平差的编制和软件程序界面的设计,实现的功能主要有对水准网数据和附合导线数据的平差计算,当然为了平差后能使用数据,本软件还设计了数据输出的功能,使界面更友好,方便用户使用。 关键词:水准网间接平差,visual basic ,附合导线条件平差,visual basic界面设计(GUI)II大学本科学生毕业设计(论文) ABSTRACTABSTRACTThe

3、 measurement adjustment is a professional basic course of Geomatics engineer, It is used to process the observation data of Applied Mathematics, which is characterized by the large amount of calculation, the process of learning and the using become very complex. Although many adjustment algorithm me

4、thods are simplified such as Gauss reduction method, but on the one hand these algorithms affect the accuracy of calculation, on the other hand they cannot effectively reduce the amount of calculation. Adjustment calculation is the principle of least squares to eliminate the contradiction between th

5、e observed values and the initial data, calculating the adjusted values of all pending elements and assessing accuracy. Classical surveying adjustment mainly contains four adjustment model equations (conditions adjustment, indirect adjustment, accompanied by the unknown parameters condition adjustme

6、nt and accompanied by restrictions in indirect adjustment)of column and solving, it involves large number of matrix operations, the calculation workload of traditional manual measurement data processing method requires the preparation of a specific treatment program matrix operations, so the procedu

7、res are complicated and difficult. The emergence of the computer makes matrix operations become easy, and the computer is running fast and at high precision, to the large number of matrix operations, under the premise of the compiled code, the computer can easily solve many problems. In this paper,

8、an adjustment software is used by visual basic language of the leveling network and connecting traverse adjustment of the preparation and program interface design to achieve the main function of the leveling network data and wire data adjustment calculation. The software also design the function of

9、the data output, it is friendly and convenient for users to operate.Key words: parameter adjustment of leveling network ,Visual basic, Visual basic interface design(GUI)II大学本科学生毕业设计(论文) 目录目 录中文摘要ABSTRACT1引言1 1.1现状分析1 1.2目的及意义11.3研究内容22 Visual Basic 编程语言概述3 2.1 Visual Basic简介3 2.1.1 Visual Basic的发展32

10、.1.2 VB的功能特点32.2 Visual Basic简介4 2.2.1 操作界面简介42.2.2 几个常用控件介绍72.2.3 VB编程语言书写和变量声明72.2.4 矩阵在VB中的表述72.2.5 VB中矩阵运算82.2.6 程序控制语句112.2.7 控件数组123 平差计算基本理论13 3.1 条件平差13 3.1.1 条件平差原理133.1.2 条件平差程序设计流程图153.2 间接平差163.2.1 间接平差原理163.2.2 间接平差程序设计流程图183.2 附合导线平差计算193.3.1 附合导线平差原理293.2.2 附合导线平差程序设计流程图214 平差软件界面设计23

11、 4.1平差软件整体展示23 4.1.1 登录界面234.1.2平差软件主界面234.1.3水准网间接平差界面244.1.4附合导线平差界面254.2平差软件界面设计25 4.2.1 Visual basic(GUI)简介254.2.2界面设计264.3平差软件界面设计26 4.3.1 水准网间接平差界面设计264.3.2附合导线平差界面设计285 平差软件程序设计30 5.1水准网间接平差30 5.1.1 数据输入305.1.2 软件的使用315.1.3 程序代码325.2附合导线平差34 5.2.1 数据输入345.2.2 软件的使用355.2.3 程序代码366 算例演算44 6.1水准

12、网间接平差44 6.2附合导线条件平差457结论48参考文献49IV大学本科学生毕业设计(论文) 1 引言1 引言1.1 现状分析Visual Basic是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。从任何标准来说,VB都是世界上使用人数最多的语言不仅是盛赞VB的开发者还是抱怨VB的开发者的数量。它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。 水准网是建立高程控制的一种常规方法。为了提高水准测量的效率

13、,使得水准测量的内外业一体化,提高数据处理速度、精度和可靠性,外业观测上需采用更加科学、快速的作业模式,内业数据处理上需采用简便、可靠的数据处理软件。随着测绘仪器和计算机软件业的发展,目前市场上已出现多种控制网平差计算软件,不过有些平差软件界面复杂,难懂,需要一段时间的学习才能使用;还有就是这些软件,要么定权不合理,要么就价格昂贵。比如常用的平差易软件就是在Windows系统下用VC 开发的控制测量数据处理软件,就存在着权分配不合理,以致改正数过大,平差结果偏离真实值的问题。虽然发现了问题,然而由于VC语言的局限和作为收费软件,其源代码不公开等缘故,致使此类问题久久不能得到解决。1.2 目的及

14、意义Visual Basic编程语言是一种可视化编程语言,通过近几年的发展,它已成为一种专业化的开发语言和环境。其依托于现代pc机的高性能,以计算机性能换取编程的简便。它把科学计算、结果的可视化和编程集中在一个可视化的环境中,不仅功能强,而且便于输入数据,易于掌握和使用。测量平差是测绘类专业的一门重要的专业基础课程,是用于处理观测数据的一门应用数学。平差计算是利用最小二乘原理消除观测值与起算数据之间的矛盾,求出各待定元素的平差值并评定精度。而在经典测量平差中,主要研究四种平差模型方程(条件平差、间接平差、附有未知参数的条件平差和附有限制条件的间接平差)的列立和求解,其牵涉到大量的矩阵运算,传统

15、的人工计算工作量很大,已往的测量数据处理方法需要编制特定的处理矩阵运算的程序,而且程序复杂,难度大。随着计算机的出现,矩阵运算就变得轻松,而且计算机的运行速度快,精度高,特别是对于具有大量矩阵运算,计算机轻松解决。前提是要编好相应的程序代码。本文将分析经典测量平差中的条件平差模型和间接平差模型的特点,重点运用Visual Basic编程语言编写水准网间接平差和单一附合导线的平差程序软件。用Visual Basic语言编写出经典平差模型程序,运用到教学过程中使各种模型的公式推导与实际例题相结合,对于提高教学质量及加强学生对于误差理论与测量平差基础课程的理解具有重要的意义;对于我们即将走上工作岗位

16、的同学来说,它将为我们处理各种实际工程的计算提供了极大的便利,也可以为今后更多的工程应用编程打下基础,提高工作效率和质量。同时也使我们在编程方面有更为深入的理解和掌握,对我们以后工作很有帮助,比如可编程计算器等测量辅助工具,这将会提高我们的工作效率。1.3 研究内容本设计主要运用Visual Basic编程语言,编制控制测量中水准网和单一导线的平差程序软件。实现的功能包括:1.水准网间接平差的平差值,在最小二乘法准则()要求下求出误差方程中的待定参数。2.单一导线和导线网的近似坐标推算:近似坐标的推算不仅是后续工作的基础,为条件方程系数阵的求取做准备,更能在此基础上计算坐标闭合差,检验外业成果

17、的好坏。3. Visual Basic GUI界面设计:对于用户来说,程序可视化,同时又易懂,便于输入数据。4.平差数据结果输出:便于用户使用和查看。5.将几个平差程序集中在一个系统中,并生成exe可执行程序,在windows环境下通用,无需安装。因此,本平差软件让你的使用绝对省心。对每一个功能的实现,其后都附有应的算例。51大学本科学生毕业设计(论文) 2 Visual Basic 编程语言概述2 Visual Basic编程语言概述2.1 Visual Basic简介2.1.1 Visual Basic的发展Visual Basic (简称VB)是美国微软公司推出的windows环境下的软

18、件开发工具,使用VB可以既快又简单地开发windows应用软件。Visual是指开发图形用户界面(GUI)的方法。Visual的意思是“视觉的”或“可视的”,也就是直观的编程方法。在VB中引入了控件的概念,如各种各样的按钮、文本框、复选框等,VB把这些控件模式化,并且每个控件都由若干属性来控制其外观、工作方法。这样,采用方法无需编写大量代码去描述界面元素的外观和位置,而只要把预先建立的控件加到屏幕上,就像使用“画图”之类的绘图程序,通过选择画图工具来画图一样,可视化程序设计语言除了提供常规的编程功能外,还提供一套可视化的设计工具,便于程序员建立图形对象,巧妙地把windows编程的复杂性“封装

19、”起来。VB在原有BASIC语言的基础上进一步发展,包含了数百条语句、函数及关键词,其中很多与Windows GUI有直接关系。VB与BASIC之间有着千丝万缕的联系,如果学过BASIC语言的话,看到VB程序结构会感到很亲切。专业人员可以用Visual Basic实现其他任何Windows编程语言的功能,而初学者只要掌握几个关键词就可以建立实用的应用程序。随着微型计算机技术的飞速发展,美国微软公司以其具有多任务性、图形用户界面、动态数据交换、对象链接与嵌入等强大功能,而成为当今微型计算机操作系统的主流产品。许多商用软件公司为适应这一趋势推出windows境下的软件开发工具,如Visual C+

20、,Delphi,PowerBuilder等等。但对于初学者希望在windows环境中开发一般的应用程序,VB无疑是较理想的。VB是目前众多windows软件开发工具中效率最高的一个。2.1.2 VB的功能特点1面向对象VB采用了面向对象设计思想,它基本思路是把复杂设计问题分解为个个能够完成独立功能相对简单对象集合。所谓“对象”就是个可操作实体如窗体、窗体中命令按钮、标签、文本框等面向对象编程就好像搭积木样员可根据和界面设计要求直接在屏幕上“画出窗口、菜单、按钮等区别类型对象并为每个对象设置属性。 2事件驱动在Windows环境下是以事件驱动方式运行每个对象的都能响应多个区别事件,每个事件都能驱

21、动段代码事件过程该代码决定了对象功能通常称这种机制为事件驱动事件可由用户操作触发也可以由系统或应用触发例如单击个命令按 钮就触发了按钮Click(单击)事件该事件中代码就会被执行若用户未进行任何操作(未触发事件)则就处于等待状态整个应用就是由彼此独立事件过程构成。3软件Software集成式开发VB为编程提供了个集成开发环境在这个环境中编程者可设计界面、编写代码、调试直至把应用编译成可在Windows中运行可执行文件并为它生成安装VB集成开发环境为编程者提供了很大方便。4结构化设计语言VB具有丰富数据类型是种附合结构化设计思想语言而且简单易学此外作为种设计语言VB还有许多独到的处5强大数据库访

22、问功能VB利用数据Control控件可以访问多种数据库VB6O提供ADOControl控件不但可以用最少代码实现数据库操作和控制也可以取代DataControl控件和RDOControl控件6支持对象链接和嵌入技术VB核心是对对象链接和嵌入(OLE)技术支持它是访问所有对象种思路方法利用OLE技术能够开发集声音、图像、动画、字处理、Web等对象于体7网络功能VB6O提供了DltTML(DynamictTML)设计工具利用这种技术可以动态创建和编辑Web页面使用户在VB中开发多功能网络应用软件Software8多个应用向导VB提供了多种向导如应用向导、安装向导、数据对象向导和数据窗体向导通过它们

23、可以快速地创建区别类型、区别功能应用9支持动态交换、动态链接技术通过动态数据交换(DDE)编程技术VB开发应用能和其他Windows应用的间建立数据通信通过动态链接库技术在VB中可方便地用C语言或汇编语言编写也可Windows应用接口(API)10联机帮助功能在VB中利用帮助菜单和F1功能键用户可随时方便地得到所需要帮助信息VB帮助窗口中显示了有关举例代码通过复制、粘贴操作可获取大量举例代码为用户学习和使用提供方便2.2Visual Basic程序设计简述2.2.1操作界面简介在默认情况下,visual basic的操作界面包含了6个主要的窗口:主窗体,窗体窗口,工具箱窗口,属性窗口,工程管理

24、窗口和代码窗口。 下面简要介绍VB中这几个窗口: 1.主窗体:图2.1 VB主窗体图2.窗体窗口:它是用来对应用程序进行界面设计的窗口,用户通过与窗体上的控件交互即可得到相应的结果,体现了VB的可视化编程思想。值得注意的是:每一个窗体窗口必须有一个唯一的名字。在设计状态下,为方便用户对控件的定位,窗体由网络点组成,可以通过“工具”|“选项”命令,在“通用”标签的“显示网格”中改变“宽度”或“高度”的值来改变网格的间距图2.2 VB窗体窗口图3.工具箱窗口 工具箱中包含有许多图标,它是各种控件的制作工具,利用这些工具,用户可以在窗体上设计各种控件。标准工具箱内只包含了19个控件(指针不是控件,其

25、作用仅用于窗体和控件的移动或调整它们的大小),用户可根据需要添加其它控件到工具箱中。具体方法是选择 “工程”|“部件”命令打开“部件”对话框,在控件标签页中选择需要的部件,然后单击“确定”按钮,此时工具箱中将显示新添加的控件图标按钮。 图2.3VB工具箱窗口图4.属性窗口用于设置对象的属性值,所有窗体或控件的属性都可以通过属性窗口进行修改。如对象名称、颜色、字体等。属性窗口包括以下几个部分:(1).对象列表框:单击下拉按钮可打开当前窗体对象列表,可选择要设定属性的对象。(2).属性显示排列方式:有“按字母序”和“按分类序”两个标签。(3).属性列表框:列出当前对象在设计模式下可用的属性及当前值

26、,左栏显示属性名称,右栏显示相应的属性值,并可由用户设置该属性值。 图2.4VB属性窗口图(4).属性说明:显示当前属性的含义。5.工程管理窗口工程管理窗口保存了这个工程(或应用程序)所有的文件,如工程文件(.vbp)、窗体文件(.frm)、标准模块文件(.bas)和类模块文件(.cls)等。工程管理窗口上方有3个按钮,分别是:(1).查看代码:切换到代码窗口,显示和编辑代码。(2).查看对象:切换到窗体窗口,显示和编辑对象。(3).切换文件夹:切换本窗口内文件夹显示方式。 图2.5 VB工程管理窗口图6.代码窗口代码窗口是专门用来进行程序设计的窗口,显示和编辑程序代码。每个窗体都有各自的代码

27、窗口。打开代码窗口的方法:(1)在工程管理窗口选择一个窗体或标准模块,并选择“查看代码”按钮。(2) 在窗体窗口双击控件或窗体本身。 图2.6 VB代码窗口图(3) 选择“视图”|“代码窗口”命令。2.2.2 几个常用控件介绍1.标签 Label功能:用于显示文本(输出)信息,不能作为输入信息的界面。可以设置标签的背景颜色,本软件界面设计时就用到透明属性。2. 文本框 TextBox 功能:是一个文本编辑区域,可以输入,编辑和显示正文内容。这是使用最频繁的一个控件。可以通过改变属性来改变文本大小,颜色等。3. 命令按钮CommandButton 功能:接受用户输入的命令。当用户鼠标点击此按钮,

28、便可以执行命令,实现所编功能。2.2.3 VB编程语言书写 和变量声明VB语言与其他语言书写有不同,所以有必要了解VB的书写方式1. VB代码不区分字母的大小写。系统关键字自动转换每个单词的首字母大写;用户自定义行以第一次为准。 2. 语句书写自由。每一行可书写几个语句,之间用冒号分隔;一行最多255个字符;一条语句可分若干行书写,用续行符 (空格+下划线)连接。3. 注释利于程序的维护和调试。用单撇号“” 以及“编辑”工具栏的“设置注释块”,则VB中注释语句会自动变为绿色,不参与运行。4.VB中变量声明与其他编程语言的变量声明也有不同,下面简单的介绍下:(1) 声明形式: Dim 变量名 A

29、s 自定义类型名 例 Dim Student As StudType (2) 引用: 形式:变量名.元素名 例 表示Student变量中的姓名,第4门课程的成绩,则表示如下:Student.Name,Student.Mark(4)(3) 赋值: 如:Student.Name=“王刚” Student.Mark(4)=98其中常用的有声明形式和赋值,而赋值是使用最频繁的,本次编程中也大量使用赋值变量声明2.2.4矩阵的在VB中的表示我们知道平差计算中,矩阵计算是必须的,像系数矩阵,法方程矩阵等都要用到矩阵。所以用VB编制平差程序的要点和难点就是进行矩阵运算的编制。在了解矩阵的运算法则后,便可用V

30、B语言编程了。而用什么来表示矩阵呢?那就是数组,下面重点介绍下数组,这对程序的开发至关重要!1.数组不是一种数据类型,而是一组相同类型的变量的集合。在程序中使用数组的最大好处是用一个数组名代表逻辑上相关的一批数据,用下标表示该数组中的各个元素,和循环语句结合使用,使得程序书写简洁。使用数组时需注意:数组必须先声明后使用。数组分两类:一类是静态(定长)数组,第二累时动态(可变长)数组。像a(7,7)这便是静态数组,a(n,t)就是动态数组,其中的字母代表未知数。2.静态数组,也就是定长的数组。如我们想将矩阵 1 2 3 4这个两行两列的矩阵用VB来表示,可以表示为Dim a(1 to 2,1 t

31、o 2) as double 变量声明a(1,1)=1: a(1,2)=1: a(2,1)=1: a(2,2)=1这样数组也变在VB中形成了,当然也可以联合for 循环使用,则语句变得更为简洁。本程序中用到此联合,来求解矩阵运算。3.动态数组是指在声明数组时未给出数组的大小(省略括号中的下标),当要使用它时,随时用ReDim语句重新指出数组大小。如 redim a(1 to n ,1 to n) 这样便定义了一个动态的n维数组,注意声明必须是redim,不然程序会出错。这里还需指明的是Dim、Private、Public变量声明语句是说明性语句,可出现在过程内或通用声明段;ReDim语句是执行

32、语句,只能出现在过程内。在过程中可多次使用ReDim来改变数组的大小和维数。但使用ReDim语句会使原来数组中的值丢失,可以在ReDim语句后加Preserve参数来保留数组中的数据。使用Preserve时只能改变最后一维的大小,前面几维大小不能改变。 还有ReDim中的下标可以是常量,也可以是有了确定值的变量,这在编程中要注意!另外静态数组在程序编译时就分配存储单元,而动态数组在运行时才分配存储单元2.2.5 VB中矩阵的运算为了解决中矩阵运算问题,编好相应的矩阵运算代码是必须的,经过一个月的时间终于将矩阵运算的代码编成功,特别是矩阵求逆的运算。不过编制的矩阵求逆代码前提是满秩的,对于秩亏矩

33、阵,就不适用了,由于时间原因,就没继续深入的研究其代码。当然了,我们平时见到的平差一般都是满秩的,所以此代码的适用性还是挺强的。下面就具体介绍下,各矩阵运算的代码和思想。1.矩阵加减法(1)这个代码比较容易编写,只要加矩阵中对应的数相加减便可以得到结果。 所以此处不给出代码2.矩阵乘法(1)这个代码编程的要点是跟据矩阵乘法的运算法则,即矩阵的没一行的数分别与另外矩阵的每一列对应的数相乘并全部进行相加。知道一个原则,编程就容易了,多次使用for循环实现! (2)代码:Public Sub jzcf(ByRef a() As Double, ByRef b() As Double, ByRef c

34、() As Double)m = UBound(a, 1)n = UBound(b, 2)ni = UBound(a, 2)For i = 1 To mFor j = 1 To nFor ki = 1 To nic(i, j) = c(i, j) + a(i, ki) * b(ki, j)NextNextNextEnd Sub 3.矩阵转置(1)这个代码编程的也比较简单,即将矩阵的行转化成列就行了。(2)代码:Public Sub jzzz(ByRef a() As Double, ByRef b() As Double)m = UBound(a, 1)n = UBound(a, 2)For

35、i = 1 To nFor j = 1 To mb(i, j) = a(j, i)NextNextEnd Sub4.矩阵求逆(1)这个代码编程很复杂,此代码运用的是高斯约化法进行矩阵求逆计算,编程的思想是先进行增广矩阵,然后用高斯约化法,将第一列中不是零的数找出,进行约化,即将每行数字除以开头数字,使每行开头不是零的数化为1,之后减去第一行,这样这行的第一列的开头就为零了。用这种方法就可以将矩阵变为上三角矩阵,最后就得到矩阵求逆结果。(2)代码:Public Sub jzqn(ByRef qa() As Double, ByRef na() As Double)Dim a()n = UBoun

36、d(qa, 1)ReDim a(n, 2 * n) For i = 1 To n For j = 1 To n a(i, j) = qa(i, j) Next j Next iFor i = 1 To n For j = n + 1 To 2 * n If j - i = n Then a(i, j) = 1 Else a(i, j) = 0 End If Next j Next i For i = 1 To n If a(i, i) = 0 Then For q = i To n If a(q, i) 0 Then For W = i To 2 * n zj = a(i, W) a(i, W

37、) = a(q, W) a(q, W) = zj Next W Exit For End If Next q If q n Then MsgBox 此矩阵不可逆: Exit Sub End If For K = 2 * n To i Step -1 a(i, K) = a(i, K) / a(i, i) Next K For j = i + 1 To n If a(j, i) 0 Then For K = 2 * n To i Step -1 a(j, K) = a(j, K) / a(j, i) - a(i, K) Next K End If Next jNext iFor i = n To

38、 1 Step -1 If a(i, i) = 0 Then For q = i - 1 To 1 Step -1 If a(q, i) 0 Then For W = i To 2 * n zj = a(i, W) a(i, W) = a(q, W) a(q, W) = zj Next W Exit For End If Next q End If For K = 2 * n To i Step -1 a(i, K) = a(i, K) / a(i, i) Next K For j = i - 1 To 1 Step -1 If a(j, i) 0 Then xxx = a(j, i) For

39、 K = 2 * n To 1 Step -1 a(j, K) = a(j, K) / xxx - a(i, K) Next K End If Next jNext iFor i = 1 To n For j = 1 To n na(i, j) = a(i, j + n)Next jNext iEnd Sub2.2.6程序控制语句1.MsgBox语句VB中提示性语句,格式为:MsgBox 语句 (需要键入的提示语)例如:MsgBox 账号不对,请重试运行结果:则出现一个对话框,提示用户。 2.print语句VB中最基本的输出语句,可以将打印的内容放到form窗口中,也可以放在以图片控件为容器的

40、控件中,还可以将数据进行输出,比如输出到txt文本中,具体的,后面展示。3.if语句If Then Else End IfIf 语句可以循环嵌套,以实现比较复杂的逻辑结果。4.循环语句(1)for语句格式:For 循环变量初值 to 终值 Step 步长 循环体;next注意:循环参数中,i用于控制循环次数,step是步长使用前应计算好,结尾必须有next不然程序会出错!(2)do.while语句格式:Do While|Until 语句块 Exit Do 语句块 Loop 注意:do.while循环是用于控制循环次数未知。5. 循环控制语句在循环执行到一定程度的时候,不希望它继续执行,则要使用

41、循环控制语句,包括continue和break。(1)continue出现时,不执行continue后的内容,直接跳过本次循环,执行下一次循环。(2)Break出现时,不执行break后的内容,直接跳出循环,执行循环后的语句。2.2.7控件数组控件数组是由一组具有共同名称和相同类型的控件组成,数组 中的每一个控件共享同样的事件,它可以运用控件数组可以再程序运行时创建一个控件的多个实例,并能很好的控件在程序运行时到底显示多少个对象,利用for-next循环结构,就可以简单地为控件数组的各个元素设置相同的属性,同时它也可以节省代码,增加可读性,减少了内存的开销。控件数组可以分为静态数组及动态数组两

42、种。大学本科学生毕业设计(论文) 3 平差计算基本理论3 平差计算基本理论3.1 条件平差3.1.1 条件平差原理设有r个平差值的线性条件方程: (3-1-1)式中,为条件方程的系数,为条件方程常数项,系数和常数项随不同平差问题取不同的值,它们与观测值无关。用代入上式,可得: (3-1-2)式中,为条件方程的闭合差,或称不符值,即: (3-1-3)令: , , 则(3-1-2)式为: (3-1-4)同样,(3-1-1)式也可以写为: (3-1-5)式中 (3-1-3)式的矩阵形式为: (3-1-6)由(3-1-5)式可知,的应有值为零,所以闭合差等于观测值减去其应有值。按求条件极值的拉格朗日乘

43、数法,设其乘数为,称为联系数向量,组成函数将对求一阶导数,并令其为零,得:移项,两边转置,得:再用左乘上式两段,得改正数V的计算公式为:= (3-1-7)上式称为改正数方程。将n个改正数方程(3-1-7)和r个条件方程(3-1-4)联立求解,就可以求得一组唯一的解:n个改正数和r个联系数。为此,将(3-1-4)式和(3-1-7)式合称为条件平差的基础方程。显然,有基础方程解出的一组V,不仅能消除闭合差,也必能满足的要求。解算基础方程时,是先将(3-1-7)式代入(3-1-4)式,得令:,则有称为联系数法方程,它是条件平差的法方程,简称法方程。因为法方程系数阵是满秩方阵,由此可得联系数K的唯一解从法方程中解出K后,将K值代入改正数方程(3-1-7),再求平差值即可。3.1.2 条件平差程序设计流程图输入观测数据输入必要信息:总观测值数量,必要观测值数量软件自动识别用户是否正确输入数据,以及有无数据输入的不完整。接着识别各段高差的前后视点是否为已知点并组建系数矩阵A和W判断否所有观测高差是否已处理完,数据是否正确

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号