版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、畢業(yè)論文論 文 題 目 基于VB的間接平差程序設計 專 業(yè) 班 級 工程測量 學 生 姓 名 黃曉偉 指 導 教 師 王克曉 完 成 時 間 2015年5月5日 重慶能源職業(yè)學院重慶能源職業(yè)學院畢業(yè)設計(論文)指導教師評語評語:成績:指導教師簽名:年 月 日重慶能源職業(yè)學院畢業(yè)設計(論文)答辯記錄提 出 問 題回 答 問 題正確基本正確有一般性錯誤有原則性錯誤回答不清123456答辯委員會評語及建議成績:答辯委員會主任:年 月 日目 錄摘 要11 引言21.1 現(xiàn)狀分析21.2 目的及意義31.3 研究內(nèi)容42 Visual Basic編程語言概述52.1 Visual Basic簡介52.2
2、Visual Basic程序設計簡述83 間接平差244.1 平差軟件整體展示285算例演算315.1水準網(wǎng)間接平差316 結論33摘 要測量平差是測繪類專業(yè)的一門重要的專業(yè)基礎課程,是用于觀測數(shù)據(jù)處理的一門應用數(shù)學 。但是因為其計算量比較大,這變使大家在學習和使用的時候感覺十分頭疼。雖然有很多簡化了的平差算法,比如高斯約化法, 但是這些算法一方面會影響計算精度,另一方面也不能有效的減少計算量。平差計算是利用最小二乘原理消除觀測值與起算數(shù)據(jù)之間的矛盾,求出各待定元素的平差值并評定精度。而在經(jīng)典測量平差中,主要研究四種平差模型方程(條件平差、間接平差、附有未知參數(shù)的條件平差和附有限制條件的間接平
3、差)的列立和求解,其牽涉到大量的矩陣運算,傳統(tǒng)的人工計算工作量很大。隨著計算機的出現(xiàn),矩陣運算就變得輕松,而且計算機的運行速度快,精度高,特別是對于具有大量矩陣運算,計算機輕松解決。前提是要編好相應的程序代碼。本文運用編制了一個平差軟件,主要對水準網(wǎng)和附合導線進行了平差的編制和軟件程序界面的設計,實現(xiàn)的功能主要有對水準網(wǎng)數(shù)據(jù)和合導線數(shù)據(jù)的平差計算,當然為了平差后能使用數(shù)據(jù),本軟件還設計了數(shù)據(jù)輸出的功能,方便用戶使用。 關鍵詞:水準網(wǎng)間接平差,1 引言1.1 現(xiàn)狀分析Visual Basic是一種由微軟公司開發(fā)的包含協(xié)助開發(fā)環(huán)境的事件驅動編程語言。從任何標準來說,VB都是世界上使用人數(shù)最多的語言
4、不僅是盛贊VB的開發(fā)者還是抱怨VB的開發(fā)者的數(shù)量。它源自于BASIC編程語言。VB擁有圖形用戶界面(GUI)和快速應用程序開發(fā)(RAD)系統(tǒng),可以輕易的使用DAO、RDO、ADO連接數(shù)據(jù)庫,或者輕松的創(chuàng)建ActiveX控件。程序員可以輕松的使用VB提供的組件快速建立一個應用程序。 水準網(wǎng)是建立高程控制的一種常規(guī)方法。為了提高水準測量的效率,使得水準測量的內(nèi)外業(yè)一體化,提高數(shù)據(jù)處理速度、精度和可靠性,外業(yè)觀測上需采用更加科學、快速的作業(yè)模式,內(nèi)業(yè)數(shù)據(jù)處理上需采用簡便、可靠的數(shù)據(jù)處理軟件。隨著測繪儀器和計算機軟件業(yè)的發(fā)展,目前市場上已出現(xiàn)多種控制網(wǎng)平差計算軟件,不過有些平差軟件界面復雜,難懂,需要
5、一段時間的學習才能使用;還有就是這些軟件,要么定權不合理,要么就價格昂貴。比如常用的平差易軟件就是在Windows系統(tǒng)下用VC 開發(fā)的控制測量數(shù)據(jù)處理軟件,就存在著權分配不合理,以致改正數(shù)過大,平差結果偏離真實值的問題。雖然發(fā)現(xiàn)了問題,然而由于VC語言的局限和作為收費軟件,其源代碼不公開等緣故,致使此類問題久久不能得到解決。1.2 目的及意義Visual Basic編程語言是一種可視化編程語言,通過近幾年的發(fā)展,它已成為一種專業(yè)化的開發(fā)語言和環(huán)境。其依托于現(xiàn)代pc機的高性能,以計算機性能換取編程的簡便。它把科學計算、結果的可視化和編程集中在一個可視化的環(huán)境中,不僅功能強,而且便于輸入數(shù)據(jù),易于
6、掌握和使用。測量平差是測繪類專業(yè)的一門重要的專業(yè)基礎課程,是用于處理觀測數(shù)據(jù)的一門應用數(shù)學。平差計算是利用最小二乘原理消除觀測值與起算數(shù)據(jù)之間的矛盾,求出各待定元素的平差值并評定精度。而在經(jīng)典測量平差中,主要研究四種平差模型方程(條件平差、間接平差、附有未知參數(shù)的條件平差和附有限制條件的間接平差)的列立和求解,其牽涉到大量的矩陣運算,傳統(tǒng)的人工計算工作量很大,已往的測量數(shù)據(jù)處理方法需要編制特定的處理矩陣運算的程序,而且程序復雜,難度大。隨著計算機的出現(xiàn),矩陣運算就變得輕松,而且計算機的運行速度快,精度高,特別是對于具有大量矩陣運算,計算機輕松解決。前提是要編好相應的程序代碼。本文將分析經(jīng)典測量
7、平差中的條件平差模型和間接平差模型的特點,重點運用Visual Basic編程語言編寫水準網(wǎng)間接平差和單一附合導線的平差程序軟件。用Visual Basic語言編寫出經(jīng)典平差模型程序,運用到教學過程中使各種模型的公式推導與實際例題相結合,對于提高教學質(zhì)量及加強學生對于誤差理論與測量平差基礎課程的理解具有重要的意義;對于我們即將走上工作崗位的同學來說,它將為我們處理各種實際工程的計算提供了極大的便利,也可以為今后更多的工程應用編程打下基礎,提高工作效率和質(zhì)量。同時也使我們在編程方面有更為深入的理解和掌握,對我們以后工作很有幫助,比如可編程計算器等測量輔助工具,這將會提高我們的工作效率。1.3 研
8、究內(nèi)容本設計主要運用Visual Basic編程語言,編制控制測量中水準網(wǎng)和單一導線的平差程序軟件。實現(xiàn)的功能包括:1.水準網(wǎng)間接平差的平差值,在最小二乘法準則()要求下求出誤差方程中的待定參數(shù)。2.單一導線和導線網(wǎng)的近似坐標推算:近似坐標的推算不僅是后續(xù)工作的基礎,為條件方程系數(shù)陣的求取做準備,更能在此基礎上計算坐標閉合差,檢驗外業(yè)成果的好壞。3. Visual Basic GUI界面設計:對于用戶來說,程序可視化,同時又易懂,便于輸入數(shù)據(jù)。4.平差數(shù)據(jù)結果輸出:便于用戶使用和查看。5.將幾個平差程序集中在一個系統(tǒng)中,并生成exe可執(zhí)行程序,在windows環(huán)境下通用,無需安裝。因此,本平差
9、軟件讓你的使用絕對省心。對每一個功能的實現(xiàn),其后都附有應的算例。2 Visual Basic編程語言概述2.1 Visual Basic簡介2.1.1 Visual Basic的發(fā)展Visual Basic (簡稱VB)是美國微軟公司推出的windows環(huán)境下的軟件開發(fā)工具,使用VB可以既快又簡單地開發(fā)windows應用軟件。Visual是指開發(fā)圖形用戶界面(GUI)的方法。Visual的意思是“視覺的”或“可視的”,也就是直觀的編程方法。在VB中引入了控件的概念,如各種各樣的按鈕、文本框、復選框等,VB把這些控件模式化,并且每個控件都由若干屬性來控制其外觀、工作方法。這樣,采用方法無需編寫大
10、量代碼去描述界面元素的外觀和位置,而只要把預先建立的控件加到屏幕上,就像使用“畫圖”之類的繪圖程序,通過選擇畫圖工具來畫圖一樣,可視化程序設計語言除了提供常規(guī)的編程功能外,還提供一套可視化的設計工具,便于程序員建立圖形對象,巧妙地把windows編程的復雜性“封裝”起來。VB在原有BASIC語言的基礎上進一步發(fā)展,包含了數(shù)百條語句、函數(shù)及關鍵詞,其中很多與Windows GUI有直接關系。VB與BASIC之間有著千絲萬縷的聯(lián)系,如果學過BASIC語言的話,看到VB程序結構會感到很親切。專業(yè)人員可以用Visual Basic實現(xiàn)其他任何Windows編程語言的功能,而初學者只要掌握幾個關鍵詞就可
11、以建立實用的應用程序。隨著微型計算機技術的飛速發(fā)展,美國微軟公司以其具有多任務性、圖形用戶界面、動態(tài)數(shù)據(jù)交換、對象鏈接與嵌入等強大功能,而成為當今微型計算機操作系統(tǒng)的主流產(chǎn)品。許多商用軟件公司為適應這一趨勢推出windows境下的軟件開發(fā)工具,如Visual C+,Delphi,PowerBuilder等等。但對于初學者希望在windows環(huán)境中開發(fā)一般的應用程序,VB無疑是較理想的。VB是目前眾多windows軟件開發(fā)工具中效率最高的一個。2.1.2 VB的功能特點2.2Visual Basic程序設計簡述2.2.1操作界面簡介在默認情況下,visual basic的操作界面包含了6個主要的
12、窗口:主窗體,窗體窗口,工具箱窗口,屬性窗口,工程管理窗口和代碼窗口。 下面簡要介紹VB中這幾個窗口: 主窗體圖2.1 VB主窗體圖2.窗體窗口:它是用來對應用程序進行界面設計的窗口,用戶通過與窗體上的控件交互即可得到相應的結果,體現(xiàn)了VB的可視化編程思想。值得注意的是:每一個窗體窗口必須有一個唯一的名字。在圖2.2 VB窗體窗口圖設計狀態(tài)下,為方便用戶對控件的定位,窗體由網(wǎng)絡點組成,可以通過“工具”|“選項”命令,在“通用”標簽的“顯示網(wǎng)格”中改變“寬度”或“高度”的值來改變網(wǎng)格的間距3. 工具箱窗口 工具箱中包含有許多圖標,它是各種控件的制作工具,利用這些工具,用戶可以在窗體上設計各種控件
13、。標準工具箱內(nèi)只包含了19個控件(指針不是控件,其作用僅用于窗體和控件的移動或調(diào)整它們的大?。?,用戶可根據(jù)需要添加其它控件到工具箱中。具體方法是選擇 “工程”|“部件”命令打開“部件”對話框,在控件標簽頁中選擇需要的部件,然后單擊“確定”按鈕,此時工具箱中將顯示新添加的控件圖標按鈕。 圖2.3VB工具箱窗口圖4.屬性窗用于設置對象的屬性值,所有窗體或控件的屬性都可以通過屬性窗口進行修改。如對象名稱、顏色、字體等。屬性窗口包括以下幾個部分:圖2.4VB屬性窗口圖(1).對象列表框:單擊下拉按鈕可打開當前窗體對象列表,可選擇要設定屬性的對象。(2).屬性顯示排列方式:有“按字母序”和“按分類序”兩
14、個標簽。(3).屬性列表框:列出當前對象在設計模式下可用的屬性及當前值,左欄顯示屬性名稱,右欄顯示相應的屬性值,并可由用戶設置該屬性值。(4).屬性說明:顯示當前屬性的含義。5.工程管理窗口工程管理窗口保存了這個工程(或應用程序)所有的文件,如工程文件(.vbp)、窗體文件(.frm)、標準模塊文件(.bas)和類模塊文件(.cls)等。工程管理窗口上方有3個按鈕,分別是:圖2.5 VB工程管理窗口圖(1).查看代碼:切換到代碼窗口,顯示和編輯代碼。(2).查看對象:切換到窗體窗口,顯示和編輯對象。(3).切換文件夾:切換本窗口內(nèi)文件夾顯示方式。 6.代碼窗口代碼窗口是專門用來進行程序設計的窗
15、口,顯示和編輯程序代碼。每個窗體都有各自的代碼窗口。打開代碼窗口的方法:圖2.6 VB代碼窗口圖(1)在工程管理窗口選擇一個窗體或標準模塊,并選擇“查看代碼”按鈕。(2)在窗體窗口雙擊控件或窗體本身。(3)選擇“視圖”|“代碼窗口”命令。 幾個常用控件介紹1.標簽 Label功能:用于顯示文本(輸出)信息,不能作為輸入信息的界面??梢栽O置標簽的背景顏色,本軟件界面設計時就用到透明屬性。2. 文本框 TextBox 功能:是一個文本編輯區(qū)域,可以輸入,編輯和顯示正文內(nèi)容。這是使用最頻繁的一個控件??梢酝ㄟ^改變屬性來改變文本大小,顏色等。3.命令按鈕CommandButton 功能:接受用戶輸入的
16、命令。當用戶鼠標點擊此按鈕,便可以執(zhí)行命令,實現(xiàn)所編功能。 VB編程語言書寫 和變量聲明VB語言與其他語言書寫有不同,所以有必要了解VB的書寫方式1.VB代碼不區(qū)分字母的大小寫。系統(tǒng)關鍵字自動轉換每個單詞的首字母大寫;用戶自定義行以第一次為準。 2.語句書寫自由。每一行可書寫幾個語句,之間用冒號分隔;一行最多255個字符;一條語句可分若干行書寫,用續(xù)行符 (空格+下劃線)連接。3.注釋利于程序的維護和調(diào)試。用單撇號“” 以及“編輯”工具欄的“設置注釋塊”,則VB中注釋語句會自動變?yōu)榫G色,不參與運行。4.VB中變量聲明與其他編程語言的變量聲明也有不同,下面簡單的介紹下:(1) 聲明形式: Dim
17、 變量名 As 自定義類型名 例 Dim Student As StudType (2) 引用: 形式:變量名.元素名 例 表示Student變量中的姓名,第4門課程的成績,則表示如下:Student.Name,Student.Mark(4)(3) 賦值: 如:Student.Name=“王剛” Student.Mark(4)=98其中常用的有聲明形式和賦值,而賦值是使用最頻繁的,本次編程中也大量使用賦值變量聲明2.2.4矩陣的在VB中的表示我們知道平差計算中,矩陣計算是必須的,像系數(shù)矩陣,法方程矩陣等都要用到矩陣。所以用VB編制平差程序的要點和難點就是進行矩陣運算的編制。在了解矩陣的運算法則
18、后,便可用VB語言編程了。而用什么來表示矩陣呢?那就是數(shù)組,下面重點介紹下數(shù)組,這對程序的開發(fā)至關重要!1.數(shù)組不是一種數(shù)據(jù)類型,而是一組相同類型的變量的集合。在程序中使用數(shù)組的最大好處是用一個數(shù)組名代表邏輯上相關的一批數(shù)據(jù),用下標表示該數(shù)組中的各個元素,和循環(huán)語句結合使用,使得程序書寫簡潔。使用數(shù)組時需注意:數(shù)組必須先聲明后使用。數(shù)組分兩類:一類是靜態(tài)(定長)數(shù)組,第二累時動態(tài)(可變長)數(shù)組。像a(7,7)這便是靜態(tài)數(shù)組,a(n,t)就是動態(tài)數(shù)組,其中的字母代表未知數(shù)。2.靜態(tài)數(shù)組,也就是定長的數(shù)組。如我們想將矩陣 1 2 3 4這個兩行兩列的矩陣用VB來表示,可以表示為Dim a(1 to
19、 2,1 to 2) as double 變量聲明a(1,1)=1: a(1,2)=1: a(2,1)=1: a(2,2)=1這樣數(shù)組也變在VB中形成了,當然也可以聯(lián)合for 循環(huán)使用,則語句變得更為簡潔。本程序中用到此聯(lián)合,來求解矩陣運算。3.動態(tài)數(shù)組是指在聲明數(shù)組時未給出數(shù)組的大小(省略括號中的下標),當要使用它時,隨時用ReDim語句重新指出數(shù)組大小。如 redim a(1 to n ,1 to n) 這樣便定義了一個動態(tài)的n維數(shù)組,注意聲明必須是redim,不然程序會出錯。這里還需指明的是Dim、Private、Public變量聲明語句是說明性語句,可出現(xiàn)在過程內(nèi)或通用聲明段;ReDi
20、m語句是執(zhí)行語句,只能出現(xiàn)在過程內(nèi)。在過程中可多次使用ReDim來改變數(shù)組的大小和維數(shù)。但使用ReDim語句會使原來數(shù)組中的值丟失,可以在ReDim語句后加Preserve參數(shù)來保留數(shù)組中的數(shù)據(jù)。使用Preserve時只能改變最后一維的大小,前面幾維大小不能改變。 還有ReDim中的下標可以是常量,也可以是有了確定值的變量,這在編程中要注意!另外靜態(tài)數(shù)組在程序編譯時就分配存儲單元,而動態(tài)數(shù)組在運行時才分配存儲單元2.2.5 VB中矩陣的運算為了解決中矩陣運算問題,編好相應的矩陣運算代碼是必須的,經(jīng)過一個月的時間終于將矩陣運算的代碼編成功,特別是矩陣求逆的運算。不過編制的矩陣求逆代碼前提是滿秩的
21、,對于秩虧矩陣,就不適用了,由于時間原因,就沒繼續(xù)深入的研究其代碼。當然了,我們平時見到的平差一般都是滿秩的,所以此代碼的適用性還是挺強的。下面就具體介紹下,各矩陣運算的代碼和思想。1.矩陣加減法(1)這個代碼比較容易編寫,只要加矩陣中對應的數(shù)相加減便可以得到結果。 所以此處不給出代碼2.矩陣乘法(1)這個代碼編程的要點是跟據(jù)矩陣乘法的運算法則,即矩陣的沒一行的數(shù)分別與另外矩陣的每一列對應的數(shù)相乘并全部進行相加。知道一個原則,編程就容易了,多次使用for循環(huán)實現(xiàn)! (2)代碼:Public Sub jzcf(ByRef a() As Double, ByRef b() As Double, B
22、yRef c() 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,
23、2)For i = 1 To nFor j = 1 To mb(i, j) = a(j, i)NextNextEnd Sub4.矩陣求逆(1)這個代碼編程很復雜,此代碼運用的是高斯約化法進行矩陣求逆計算,編程的思想是先進行增廣矩陣,然后用高斯約化法,將第一列中不是零的數(shù)找出,進行約化,即將每行數(shù)字除以開頭數(shù)字,使每行開頭不是零的數(shù)化為1,之后減去第一行,這樣這行的第一列的開頭就為零了。用這種方法就可以將矩陣變?yōu)樯先蔷仃嚕詈缶偷玫骄仃嚽竽娼Y果。(2)代碼:Public Sub jzqn(ByRef qa() As Double, ByRef na() As Double)Dim a()n =
24、 UBound(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 =
25、 a(i, W) a(i, W) = 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,
26、K) Next K End If Next jNext iFor i = n To 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 -
27、1 To 1 Step -1 If a(j, i) <> 0 Then xxx = a(j, i) For 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 "賬號不
28、對,請重試"運行結果:則出現(xiàn)一個對話框,提示用戶。 2.print語句VB中最基本的輸出語句,可以將打印的內(nèi)容放到form窗口中,也可以放在以圖片控件為容器的控件中,還可以將數(shù)據(jù)進行輸出,比如輸出到txt文本中,具體的,后面展示。3.if語句If <表達式> Then <語句塊1> Else <語句塊2>End IfIf 語句可以循環(huán)嵌套,以實現(xiàn)比較復雜的邏輯結果。4.循環(huán)語句(1)for語句格式:For 循環(huán)變量初值 to 終值 Step 步長 循環(huán)體;next注意:循環(huán)參數(shù)中,i用于控制循環(huán)次數(shù),step是步長使用前應計算好,結尾必須有next
29、不然程序會出錯?。?)do.while語句格式:Do While|Until <條件> 語句塊 Exit Do 語句塊 Loop 注意:do.while循環(huán)是用于控制循環(huán)次數(shù)未知。5. 循環(huán)控制語句在循環(huán)執(zhí)行到一定程度的時候,不希望它繼續(xù)執(zhí)行,則要使用循環(huán)控制語句,包括continue和break。(1)continue出現(xiàn)時,不執(zhí)行continue后的內(nèi)容,直接跳過本次循環(huán),執(zhí)行下一次循環(huán)。(2)Break出現(xiàn)時,不執(zhí)行break后的內(nèi)容,直接跳出循環(huán),執(zhí)行循環(huán)后的語句。2.2.7控件數(shù)組控件數(shù)組是由一組具有共同名稱和相同類型的控件組成,數(shù)組 中的每一個控件共享同樣的事件,它可以
30、運用控件數(shù)組可以再程序運行時創(chuàng)建一個控件的多個實例,并能很好的控件在程序運行時到底顯示多少個對象,利用for-next循環(huán)結構,就可以簡單地為控件數(shù)組的各個元素設置相同的屬性,同時它也可以節(jié)省代碼,增加可讀性,減少了內(nèi)存的開銷。控件數(shù)組可以分為靜態(tài)數(shù)組及動態(tài)數(shù)組兩種。3 間接平差3.1 間接平差原理間接平差就是在最小二乘準則要求下求出誤差方程中的待定參數(shù),在數(shù)學中是求多元函數(shù)的極值問題。間接平差的函數(shù)模型為:平差時,一般對參數(shù)都要取近似值,令代入上式,并令其中,為觀測值的近似值,所以是觀測值與其近似值之差,由此可得誤差方程設有n個觀測值的方程為:令,則得誤差方程為:令: 可得平差值方程的矩陣形
31、式:, (3-2-1)按最小二乘原理,上式的必須滿足的要求,因為t個參數(shù)為獨立量,故可按數(shù)學上求函數(shù)自由極值的方法,得:移項,轉置后得: (3-2-2)以上所得(3-2-1)和(3-2-2)式中的待求量是n個V和t個,而方程個數(shù)也是n+t個,有唯一解,稱此兩式為間接平差的基礎方程。解此基礎方程,一般是將(3-2-1)式代入(3-2-2)式,以便先消去V,得: (3-2-3)令:,上式可簡寫成 (3-2-4)式中系數(shù)陣為滿秩,即,有唯一解,上式稱為間接平差的法方程。解之得: 或: 將求出的代入誤差方程(3-2-1),即可求得改正數(shù)V,從而平差結果為:,3.2 間接平差程序設計流程圖輸入觀測數(shù)據(jù)輸
32、入必要信息:總觀測值數(shù)量,必要觀測值數(shù)量軟件自動識別用戶是否正確輸入數(shù)據(jù),以及有無數(shù)據(jù)輸入的不完整。接著識別各段高差的前后視點是否為已知點并組建系數(shù)矩陣A和W判斷否所有觀測高差是否已處理完,數(shù)據(jù)是否正確是定權計算法方程矩陣,求解未知參數(shù),精度評定。結束4 平差軟件界面設計4.1 平差軟件整體展示 登陸界面圖4.1平差軟件登錄界面圖為了方便用戶使用和保存用戶隱私,特做了平差軟件的登陸窗口。只有賬號密碼正確才能進入,使用軟件。而注冊和找回密碼用到數(shù)據(jù)庫的知識,需用VB和數(shù)據(jù)庫(可以是SQL數(shù)據(jù)庫,也可以是access數(shù)據(jù)庫)聯(lián)合開發(fā)。當然了,由于時間關系,注冊和找回密碼功能還沒開發(fā),以待時間充裕時
33、再進行開發(fā)。4.1.2平差軟件主界面圖4.2平差軟件主要界面圖左邊按鈕為平差功能,有水準網(wǎng)間接平差,附和導線平差,水準網(wǎng)的間接平差,閉合導線平差。最后一個為誤差橢圓,用來檢測各導線的誤差精度。中間的是坐標系統(tǒng),用來顯示所觀測導線網(wǎng),看輸入的導線網(wǎng)與實測的導線網(wǎng)是否一樣,可以及時糾錯。當然還可以顯示導線網(wǎng)中的誤差橢圓。4.1.3水準網(wǎng)間接平差圖4.3水準網(wǎng)間接平差主要界面圖上圖為水準網(wǎng)間接平差主界面,只要鼠標點擊主界面中的水準網(wǎng)間接平差按鈕就能進入該界面。該界面中右邊為輸入觀測數(shù)據(jù)。此水準網(wǎng)間接平差能實現(xiàn)的功能是進行水準網(wǎng)間接平差計算(改正數(shù)跟平差值計算),此外還設計了幾個實用功能,如對平差后的
34、結果進行輸出(輸出的格式為txt文本格式),對數(shù)據(jù)進行清空,方便第二次輸入。還設有返回主界面的功能,進行其他功能的轉化。當然了還開發(fā)了如查看系數(shù)矩陣,法方程等功能5算例演算5.1水準網(wǎng)間接平差以誤差理論與測量平差基礎一書中7-4節(jié)中的例7-8水準網(wǎng)間接平差為為例,水準路線圖,點的編號,數(shù)據(jù)如下表所示:圖5.1計算簡圖路線號觀測高差(m)水準路線長度(km)已知高程(m)1234567+1.359+2.001.6HA=5.016HB=6.016打開平差軟件進入水準網(wǎng)間接平差后,準確輸入數(shù)據(jù)點擊改正數(shù)計算或平差值計算,便會得到結果,當你也可以進行數(shù)據(jù)輸出。經(jīng)驗證,結果可靠。圖.5.2水準網(wǎng)間接平差結果圖 圖5.3水準網(wǎng)間接平差數(shù)據(jù)輸出圖6 結論進行平差計算離不開矩陣計算,一般的矩陣都很大,手算起來很不方便。過去能通過高斯約化法進行計算,但過程很繁瑣,計算精度也不高,而且還容易出錯。現(xiàn)在可以借助計算機,快速進行高精度計算,只要編程正確便可以得到平差結果。這樣可以大大的提高測量人員工作效率,避免負重繁瑣的計算。本程序通過對平差理論的討論,并借助Visual Basic編程語言,編制成了平差軟件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 茶園互換合同
- 財務合同管理崗位風險
- 貝雷片租賃合同范本
- 保險合同十句話
- 山西省2024八年級物理上冊第六章質(zhì)量與密度專題訓練12.理解質(zhì)量和密度課件新版新人教版
- 深圳市中薈高級中學2024-2025學年高三上學期期中考試數(shù)學試卷
- 《船用鋼質(zhì)斜梯》
- 貴州省貴陽市觀觀山湖區(qū)美的中學2024-2025學年九年級上學期11月期中考試化學試題
- 無鹵低煙阻燃電纜料相關項目投資計劃書
- 石英玻璃管(棒)相關行業(yè)投資規(guī)劃報告
- 臨床決策分析課件
- 外科學(1)智慧樹知到答案章節(jié)測試2023年溫州醫(yī)科大學
- DBJ15302023年廣東省鋁合金門窗工程設計、施工及驗收規(guī)范
- 兒童口腔醫(yī)學課件 乳牙活髓切斷術及預成冠修復術
- 風險加權資產(chǎn)
- 涉及人血液、尿液標本采集知情同意書模板
- GB/T 9797-2022金屬及其他無機覆蓋層鎳、鎳+鉻、銅+鎳和銅+鎳+鉻電鍍層
- JJF 1183-2007溫度變送器校準規(guī)范
- 針刺傷專項測試卷含答案
- GB/T 30026-2021起重用鋼制短環(huán)鏈手動鏈式葫蘆用高精度鏈TH級
- 工程付款(含預付款)申請表
評論
0/150
提交評論