基于MATLAB的水準(zhǔn)網(wǎng)和測邊網(wǎng)平差程序設(shè)計(jì)_第1頁
基于MATLAB的水準(zhǔn)網(wǎng)和測邊網(wǎng)平差程序設(shè)計(jì)_第2頁
基于MATLAB的水準(zhǔn)網(wǎng)和測邊網(wǎng)平差程序設(shè)計(jì)_第3頁
基于MATLAB的水準(zhǔn)網(wǎng)和測邊網(wǎng)平差程序設(shè)計(jì)_第4頁
基于MATLAB的水準(zhǔn)網(wǎng)和測邊網(wǎng)平差程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、-PAGE . z.基于MATLAB的水準(zhǔn)網(wǎng)和測邊網(wǎng)平差程序設(shè)計(jì)摘 要 MATLAB是目前在研究機(jī)構(gòu)廣泛應(yīng)用的一種數(shù)值計(jì)算及圖形工具軟件,它的特點(diǎn)是語法構(gòu)造簡明、數(shù)值計(jì)算高效、圖形功能完備,特別適合非專業(yè)編程員完成數(shù)值計(jì)算、科學(xué)試驗(yàn)處理等任務(wù)。以往的測量數(shù)據(jù)處理方法需要編制特定的處理矩陣運(yùn)算程序,而且程度復(fù)雜,難度大。本文介紹一種基于MATLAB的水準(zhǔn)網(wǎng)和測邊網(wǎng)的程序設(shè)計(jì)方法,與其它算法語言相比,具有編程簡單,運(yùn)算速度快的特點(diǎn)。文中分別闡述了水準(zhǔn)網(wǎng)和測邊網(wǎng)程序的理論根底、實(shí)現(xiàn)步驟和運(yùn)行結(jié)果。通過實(shí)例的分析,總結(jié)出利用MATLAB對(duì)測量數(shù)據(jù)處理有很大的應(yīng)用價(jià)值,它縮短了編程的時(shí)間,提高工作效率。

2、關(guān)鍵詞:MATLAB; 水準(zhǔn)網(wǎng); 測邊網(wǎng); 程序設(shè)計(jì) ABSTRACTMATLAB is one species of numerical-values calculation and graphic tools software which is widely used to apply at research institutions at present. The particularities are: concise grammar-structure、highly efficient in numerical values calculating、plete function of

3、 graphs、especially it is adapted to evildoing professional programmer to acplish the tasks that are numerical-values calculating and scientific e*periments treating. The ancient methods of measured data-processing need establishing special proceedings of treating matrices operation, moreover, it is

4、ple* and greatly difficult.This article introduces one programming method dealing with leveling and measuring edge network based on MATLAB. pared with other algorithm language, it has particularities which are simply programming and quickly operating. The article separately e*patiate the theories ba

5、sics、realizing steps and running results at leveling and measuring edge network. With the analysis of e*amples, it has prodigious application value in measured data-processing by use of MATLAB. Moreover, it shortens programming time and improves working effectiveness.Key words:MATLAB;levelingnetwork

6、;measuring edge network;programming-. z.目 錄TOC o 1-3 h z uHYPERLINK l _Toc170624507緒論 PAGEREF _Toc170624507 h 4HYPERLINK l _Toc1706245081. MATLAB軟件簡介 PAGEREF _Toc170624508 h 5HYPERLINK l _Toc1706245092MATLAB 在測量平差中的應(yīng)用6HYPERLINK l _Toc1706245102.1測量平差原理的概述6HYPERLINK l _Toc1706245112.2平差程序總體方案7HYPERLI

7、NK l _Toc1706245123.1程序的功能8HYPERLINK l _Toc1706245133.2水準(zhǔn)模型網(wǎng)的間接平差8HYPERLINK l _Toc170624514“權(quán)值確實(shí)定8HYPERLINK l _Toc1706245153.2.2 水準(zhǔn)路線的平差計(jì)算9HYPERLINK l _Toc1706245163.2.3 精度評(píng)定11HYPERLINK l _Toc1706245173.3 水準(zhǔn)網(wǎng)間接平差程序信息設(shè)計(jì)11HYPERLINK l _Toc1706245183.4水準(zhǔn)網(wǎng)程序與使用說明 PAGEREF _Toc170624518 h 12HYPERLINK l _To

8、c1706245193.4.1 水準(zhǔn)網(wǎng)程序流程圖 PAGEREF _Toc170624519 h 12HYPERLINK l _Toc170624520水準(zhǔn)網(wǎng)程序的使用 PAGEREF _Toc170624520 h 12HYPERLINK l _Toc1706245213.5 案例 PAGEREF _Toc170624521 h 13HYPERLINK l _Toc1706245224. 測邊網(wǎng)平差程序設(shè)計(jì) PAGEREF _Toc170624522 h 16HYPERLINK l _Toc1706245234.1 數(shù)學(xué)模型 PAGEREF _Toc170624523 h 15HYPERLI

9、NK l _Toc1706245244.1.1 誤差方程和法方程的組成15HYPERLINK l _Toc170624525邊長觀測的權(quán) PAGEREF _Toc170624525 h 15HYPERLINK l _Toc1706245264.1.3 解算法方程16HYPERLINK l _Toc170624527精度評(píng)定19HYPERLINK l _Toc1706245284.2測邊網(wǎng)平差信息設(shè)計(jì) PAGEREF _Toc170624528 h 20HYPERLINK l _Toc1706245294.2.1 主要的技術(shù)要求 PAGEREF _Toc170624529 h 21HYPERLI

10、NK l _To用MATLAB的繪圖語句繪制網(wǎng)圖 PAGEREF _Toc170624530 h 21HYPERLINK l _Toc1706245314.4 測邊網(wǎng)程序和使用說明 PAGEREF _Toc170624531 h 22HYPERLINK l _Toc1706245324.5程序代碼說明: PAGEREF _Toc170624532 h 23HYPERLINK l _Toc1706245334.6 程序的使用算例 PAGEREF _Toc170624533 h 25HYPERLINK l _Toc170624534結(jié)論29HYPERLINK l _Toc

11、170624535致30HYPERLINK l _Toc170624536參考文獻(xiàn) PAGEREF _Toc170624536 h 31HYPERLINK l _Toc170624537附錄一 PAGEREF _Toc170624537 h 32HYPERLINK l _Toc170624538附錄二 PAGEREF _Toc170624538 h 36HYPERLINK l _Toc169661692附錄三46-. z.緒論作為一名測量技術(shù)人員,如果不掌握一門PC機(jī)編程語言與便攜計(jì)算工具,要想提高測量工作的效率幾乎寸步難行。測量需求的多樣性與復(fù)雜性,造就了測量計(jì)算鮮明的個(gè)性化特點(diǎn),這就是在商

12、業(yè)測量計(jì)算軟件高度興旺的今天,掌握一種實(shí)用的程序語言進(jìn)展編程計(jì)算仍有廣泛的市場需求的重要原因。當(dāng)今較流行的計(jì)算機(jī)程序語言根本上都是基于Windows的,例如Turbo Pascal,Visual Basic,Visual C,Borland C+等,這些程序語言的優(yōu)勢是基于對(duì)象及可利用Windows豐富的系統(tǒng)資源,應(yīng)用它們可以開發(fā)出界面非常豐富和友好的應(yīng)用程序,其劣勢主要有以下幾點(diǎn):1.Windows程序都非常龐大,學(xué)習(xí)并熟練掌握它們并非易事。2.雖然市場上已有的多種專用的測量平差軟件都是采用C語言開發(fā)的,但這些軟件價(jià)格都比擬貴,而且都帶有加密狗,一次只能供一個(gè)用戶使用。出于商業(yè)目的,開發(fā)商不

13、會(huì)公開程序源代碼,這為修改程序功能以適應(yīng)用戶的特殊需求帶來了不便。3.在測量生產(chǎn)中,經(jīng)常需要根據(jù)工程的實(shí)際情況進(jìn)展一些個(gè)性化的數(shù)值計(jì)算工作,這些數(shù)值計(jì)算工作無固定模式,這就需要求測量技術(shù)人員最好能熟練掌握一種適用于數(shù)值計(jì)算的程序語言,以便提高測量計(jì)算的效率。4.C語言的數(shù)值計(jì)算語句不夠豐富,例如,在測量平差計(jì)算中,經(jīng)常需要進(jìn)展的矩陣運(yùn)算,尤其是解法方程的矩陣求逆不能直接使用語句實(shí)現(xiàn),而必須應(yīng)用計(jì)算機(jī)算法編程實(shí)現(xiàn)。如果不是基于商業(yè)軟件開發(fā),只為滿足實(shí)際測量工作計(jì)算需要,則C語言的劣勢就變成了MATLAB語言的優(yōu)勢。-. z.1.MATLAB軟件簡介MATLAB是從Matri*(矩陣)和Labor

14、atory(實(shí)驗(yàn)室)各取前3個(gè)字母組成的,意思是矩陣實(shí)驗(yàn)室,是美國MathWorks公司于20世紀(jì)80年代中期推出的一種交互式、面向?qū)ο蟮目萍紤?yīng)用軟件,是一個(gè)為科學(xué)和工程計(jì)算而專門設(shè)計(jì)的高級(jí)交互式軟件包。MATLAB集成了圖示與準(zhǔn)確的數(shù)值計(jì)算,是一個(gè)可以完成各種計(jì)算和數(shù)據(jù)可視化的強(qiáng)有力工具,其優(yōu)秀的數(shù)值計(jì)算能力和卓越的數(shù)據(jù)可視化能力使其很快在數(shù)學(xué)軟件中脫穎而出,成為以矩陣運(yùn)算為主要工作方式的線性代數(shù)、概率論和數(shù)理統(tǒng)計(jì)、自動(dòng)控制、數(shù)字信號(hào)處理、動(dòng)態(tài)系統(tǒng)仿真等領(lǐng)域教學(xué)和科研工作者的有力武器。隨著該軟件自身的開展及市場的需求,其功能日趨完善,前其最高版本7.0版已經(jīng)推出,隨著版本的不斷升級(jí),它的數(shù)值

15、計(jì)算及符號(hào)計(jì)算功能得到了進(jìn)一步完善。MATLAB是以矩陣作為數(shù)據(jù)操作的根本單位,矩陣的生成、運(yùn)算、轉(zhuǎn)置、求逆等非常簡單。在MATLAB環(huán)境中,不需要對(duì)創(chuàng)立的變量對(duì)象給出類型說明和維數(shù),所有的變量都作為雙精度數(shù)來分配內(nèi)存空間,MATLAB將自動(dòng)地為每一個(gè)變量分配內(nèi)存。MATLAB語言起源于矩陣運(yùn)算,并已經(jīng)開展成為一種高度集成的計(jì)算機(jī)語言,它提供了強(qiáng)大的科學(xué)運(yùn)算、靈活的程序設(shè)計(jì)流程、高質(zhì)量的圖形可視化與界面設(shè)計(jì)、便捷的與其他程序和語言接口的功能。MATLAB系統(tǒng)主要包含5 局部的內(nèi)容:MATLAB 工作環(huán)境、Mablab 數(shù)學(xué)函數(shù)庫、MATLAB語言體系、句柄圖形、MATLAB應(yīng)用程序接口(API

16、)。MATLAB系統(tǒng)主要功能包括:數(shù)值計(jì)算功能、符號(hào)計(jì)算功能、數(shù)據(jù)分析和可視化、文字處理功能、SIMULINK動(dòng)態(tài)仿真功能。同時(shí),MATLAB又是開放的,除了內(nèi)部函數(shù)之外,所有的MATLAB 主包文件和各工具包文件都是可讀可改的源文件,用戶可以作為參考掌握其用法,并可對(duì)其修改以適應(yīng)自己的需要,也可參加自己編寫的文件構(gòu)成新的工具包。例如,隨著GPS 的廣泛應(yīng)用,Orion Dynamics and Con2t rol Corporation、Constell Inc. GPSSoft LLC、NavsysCorporation等多家公司都相應(yīng)開發(fā)出了適于GPS數(shù)據(jù)處理的MATLAB 工具箱。MA

17、TLAB是一個(gè)集數(shù)值計(jì)算、圖形管理、程序開發(fā)于一體的功能十分強(qiáng)大的系統(tǒng)。將MATLAB應(yīng)用于測量數(shù)據(jù)的處理是一件非常有意義的工作。Mo2hamed等曾成功地在MATLAB系統(tǒng)中利用白濾波技術(shù)研究動(dòng)態(tài)解算GPS載波相位信號(hào)的模糊度問題。因?yàn)闇y量數(shù)據(jù)的處理特別是測量平差主要應(yīng)用矩陣運(yùn)算,而MATLAB又特別易于做矩陣運(yùn)算,因此,研究開發(fā)基于MATLAB的測量平差方法具有極好的應(yīng)用價(jià)值。-. z.2MATLAB 在測量平差中的應(yīng)用測量平差數(shù)據(jù)處理主要是基于矩陣的運(yùn)算,常用的矩陣運(yùn)算主要是矩陣的生成、轉(zhuǎn)置、求逆和矩陣求廣義逆等。在MATLAB環(huán)境中,不需要對(duì)創(chuàng)立的變量對(duì)象給出類型說明和維數(shù),所有的變量

18、都作為MATLAB中的M文件的語法與其他的高級(jí)語言類似,是一種程序化的編程語言,同時(shí)也是一種解釋性的編程語言,即逐行解釋運(yùn)行程序,使程序容易調(diào)試,計(jì)算更為簡捷,而且對(duì)于平差原理理解和掌握變得更容易。另外,MATLAB語言與數(shù)學(xué)語言比擬接近,更容易掌握和理解。2.1測量平差原理的概述 測量平差的函數(shù)模型有條件方程和觀測方程。以條件方程為函數(shù)的模型的最小二乘平差稱為條件平差;在條件方程中,根據(jù)需要如果還設(shè)有一定數(shù)量的未知數(shù),則稱為附有參數(shù)的條件平差;以觀測方程為函數(shù)模型的最小二乘平差稱為間接平差;如果觀測方程中的*些參數(shù)不獨(dú)立,則這些不獨(dú)立參數(shù)必然存在一些條件,稱這種平差模型為附有條件的間接平差。

19、本文的兩個(gè)程序都采用間接平差模型。對(duì)于一個(gè)實(shí)際平差問題,根據(jù)所選參數(shù)的個(gè)數(shù)、選什么量為參數(shù)以及參數(shù)之間是否函數(shù)獨(dú)立,經(jīng)過仔細(xì)推敲可以發(fā)現(xiàn)附有條件的間接平差模型本身就是各種經(jīng)典平差模型的概括模型,其余的經(jīng)典平差模型,如條件平差模型、間接平差模型、附有未知數(shù)的條件平差模型和附有限制條件的條件平差模型都是它的特例。間接平差的公式聚集:間接平差模型為21系數(shù)矩陣B滿秩,即rank(B)=t法方程及解為:2-22-3參數(shù)的平差值: 2-4觀測量的平差值:2-5單位權(quán)中誤差: 2-6平差參數(shù)的協(xié)方差陣:2-7 平差函數(shù)的協(xié)方差陣:2-82.2平差程序總體方案MATLAB號(hào)稱為全球工程師的共同語言,其語法和

20、C語言相似,但它有強(qiáng)大的數(shù)值計(jì)算和繪圖功能,這使之在工程應(yīng)用方面的計(jì)算更出色,本文就基于這種程序設(shè)計(jì)語言環(huán)境設(shè)計(jì)一個(gè)控制網(wǎng)平差程序。該程序包含了一個(gè)高程控制網(wǎng)平差程序和測邊網(wǎng)平差程序。本程序適用于各種等級(jí)的高程網(wǎng)和測邊網(wǎng),程序在設(shè)計(jì)過程中,始終考慮數(shù)據(jù)的儲(chǔ)存量。因而本程序不儲(chǔ)存誤差方程的系數(shù)和常數(shù)項(xiàng),對(duì)待定點(diǎn)數(shù)較多的平差網(wǎng),組成法方程的系數(shù)矩陣是個(gè)稀疏矩陣,如待定點(diǎn)的編號(hào)恰當(dāng),法方程的系數(shù)會(huì)集中在主元系數(shù)的兩側(cè)形成帶狀。為減少法方程系數(shù)的儲(chǔ)存量,只要按行儲(chǔ)存下三角陣或按列儲(chǔ)存上三角陣中第一個(gè)非零系數(shù)起的系數(shù),就是通常叫做維變帶寬儲(chǔ)存方法。-. z.3. 水準(zhǔn)網(wǎng)平差程序3.1程序的功能本程序適用

21、于二、三、四等水準(zhǔn)網(wǎng)平差計(jì)算,平差的水準(zhǔn)網(wǎng)可以是獨(dú)立的、也可以是附合網(wǎng),其主要功能是完成水準(zhǔn)網(wǎng)的平差計(jì)算和精度評(píng)定計(jì)算。平差計(jì)算采用間接平差法,以歸心的觀測值為高差,以未知點(diǎn)高程為未知參數(shù)。精度評(píng)定計(jì)算包括計(jì)算單位權(quán)中誤差和每個(gè)待定點(diǎn)的高程中誤差。3.2水準(zhǔn)模型網(wǎng)的間接平差“權(quán)值確實(shí)定當(dāng)在一樣的條件下進(jìn)展水準(zhǔn)測量時(shí),其精度是一樣的,因而觀測結(jié)果的可靠性也是同樣的。但如果在不同的條件下進(jìn)展水準(zhǔn)測量時(shí),高程的精度就有所不同,此時(shí)稱為不等精度觀測,所求出的未知量的值、高程的最或是值并對(duì)其精度進(jìn)展評(píng)定時(shí),就需要“權(quán)了。由于觀測的不等精度,因而觀測值的可靠程度不同,求未知量的最或是值時(shí),這樣的一個(gè)因素就

22、必須考慮了,這個(gè)因素是:可靠性大的*觀測值,其精度高,對(duì)測量的最后結(jié)果的影響也就越大。此時(shí)用“權(quán)值來表示觀測值的可靠程度,則,“權(quán)值愈大,觀測值的可靠程度就愈高。另外,在觀測過程中,觀測值的中誤差愈小,觀測結(jié)果愈可靠,它的“權(quán)值就愈大。因而,根據(jù)中誤差來確定“權(quán)值是非常適當(dāng)?shù)?。設(shè)以Pi 表示觀測值Li 的“權(quán),m 為中誤差,則“權(quán)值的定義為:(3-1)式中:A 為任意的正常數(shù),在一組觀測值中為一個(gè)定數(shù)。在實(shí)際測量中,通常是觀測值的中誤差事先并不知道,因而必須先確定觀測值的“權(quán),然后才能求出未知量的最或是值。此時(shí)可以利用距離(S)或測站數(shù)(N)來確定觀測值高程的“權(quán)。根據(jù)偶然誤差傳播定律,各觀測

23、點(diǎn)高程Hi的中誤差mi由測站數(shù)Ni確定時(shí),則有:(3-2)式中:m 為一組觀測值的中誤差,為一個(gè)定數(shù).由(3-2-1)、(3-2-2)兩式可得:(3-3)同樣可得出: 3-4式中:C為定數(shù),為測距.由(3-3)、3-4兩式可以得出這樣一個(gè)結(jié)論:當(dāng)測站觀測高差等精度時(shí),觀測總高差的“權(quán)與測站數(shù)或距離成反比。水準(zhǔn)路線的平差計(jì)算1附合路線的平差計(jì)算假定在圖1 示的A 、B 兩水準(zhǔn)點(diǎn)之間布設(shè)一條水準(zhǔn)路線,A 、B 兩水準(zhǔn)點(diǎn)的高程為,分別設(shè)為、C為中間水準(zhǔn)點(diǎn)。假定觀測了所有的點(diǎn)的高程,現(xiàn)擬求C點(diǎn)的高程的最或是值??捎伤疁?zhǔn)路線A C、B C分別觀測的高差、計(jì)算得出,由此而得到的觀測高程分別設(shè)為Hc1、Hc

24、2,其值為:Hc1=+;Hc2=+當(dāng)Hc1、Hc2在不等精度條件下觀測得出時(shí),它們的“權(quán)也不同,分別設(shè)為Pc1、Pc2,這樣C點(diǎn)的高程的最或是值為:(3-5)根據(jù)A 點(diǎn)的高程,A C水準(zhǔn)路線觀測的高差以及B C水準(zhǔn)路線觀測的高差,可推算出B點(diǎn)的觀測高程為:=+-水準(zhǔn)路線A B 的高程閉合差為:=-=(3-6)由3-6)式得到: =-由3-3)式得到:、分別表示水準(zhǔn)路線AC、BC 的測站數(shù),水準(zhǔn)路線AB的測站數(shù))將上述表達(dá)式代入(3-2-5)式中,得到:(3-7)如果以水準(zhǔn)路線AC的距離、B C的距離、AB的距離()來確定高程觀測值的“權(quán)值時(shí),同樣可以得到:(3-8)圖3-1 水準(zhǔn)路線圖2閉合路

25、線的平差計(jì)算閉合路線的平差計(jì)算原理與附合路線一樣,因而(3-7)、(3-8)兩式的結(jié)論適用于閉合路線的平差計(jì)算。(3) 具有一個(gè)結(jié)點(diǎn)的水準(zhǔn)網(wǎng)的平差計(jì)算如圖2所示為具有一個(gè)結(jié)點(diǎn)的水準(zhǔn)網(wǎng),B,C,D,為高程水準(zhǔn)點(diǎn),BA,CA,D A,為水準(zhǔn)路線,則接點(diǎn)A的高程最或是值為:(3-9)式中分別為水準(zhǔn)路線BA,CA,DA,計(jì)算A的觀測高程,各高程相應(yīng)的“權(quán)值為設(shè)的算術(shù)平均值為,各高程觀測值與的差值分別為A1,A2,A3,則有:(3-10)將(3-10)式代入(3-9)式得到:(3-11)當(dāng)以測站數(shù)和距離來確定“權(quán)值時(shí),(3-11)分別可以轉(zhuǎn)化為:(3-12)(3-13)上述結(jié)論也可應(yīng)用于小三角水準(zhǔn)網(wǎng)平差

26、計(jì)算。 精度評(píng)定單位權(quán)中誤差:3-12平差參數(shù)的協(xié)方差陣:3-13 平差函數(shù)的協(xié)方差陣:3-14 3.3 水準(zhǔn)網(wǎng)間接平差程序信息設(shè)計(jì)1數(shù)據(jù)文件的組織下面給出一個(gè)水準(zhǔn)網(wǎng)輸入數(shù)據(jù)文件的例子:3 3 6點(diǎn)個(gè)數(shù)、未知點(diǎn)個(gè)數(shù)、觀測值個(gè)數(shù)101 102 103 104 105 106 點(diǎn)號(hào)34.788 35.259 37.825 點(diǎn)高程104 101 1.625 4.5起點(diǎn)點(diǎn)號(hào)、終點(diǎn)點(diǎn)號(hào)、高差觀測值、距離觀測值101 102 -0.418 3.1105 102 0.714 3.4 102 103 1.243 3.8106 103 -0.577 4.3103 101 -0.786 2.5其中編號(hào)數(shù)組未知點(diǎn)在

27、前,點(diǎn)在后2水準(zhǔn)網(wǎng)平差變量約定表3-1 變量約定表 變量名說明ed點(diǎn)個(gè)數(shù)dd未知點(diǎn)個(gè)數(shù)sd總點(diǎn)數(shù)gd觀測值個(gè)數(shù)pn點(diǎn)號(hào)h0點(diǎn)高程be起點(diǎn)點(diǎn)號(hào)en終點(diǎn)點(diǎn)號(hào)h1高差觀測值s距離觀測值水準(zhǔn)網(wǎng)程序與使用說明 水準(zhǔn)網(wǎng)程序流程圖圖3-2 水準(zhǔn)網(wǎng)流程圖程序的全部代碼見附錄一。水準(zhǔn)網(wǎng)程序的使用本程序使用MATLAB的矩陣功能計(jì)算法方程,在運(yùn)行程序前首先要有其始數(shù)據(jù)。其始數(shù)據(jù)是一文件的形式保存在磁盤中,文件的格式在上文已經(jīng)說明過,編好文件后,以后綴名為.T*T的形式保存。執(zhí)行時(shí)在MATLAB命令窗口直接鍵入文件名即可。3.5 案例如下列圖水準(zhǔn)網(wǎng),104、105、106為點(diǎn),101、102、103為待定點(diǎn),點(diǎn)的高

28、程分別為34.788,35.259 ,37.825 。觀測高差和觀測路線長度分別為: h1=1.652, h2=-0.418 ,h3=0.714 ,h4=1.243, h5=-0.577, h6=-0.786.s1=4.5, s2=3.1, s3=3.4, s4=3.8, s5=4.3, s6=2.5.圖3-3 水準(zhǔn)網(wǎng)圖 首先編數(shù)據(jù)文件,命名為data1.t*t.數(shù)據(jù)的格式如下:3 3 6 101 102 103 104 105 106 34.788 35.259 37.825 104 101 1.652 4.5 101 102 -0.418 3.1105 102 0.714 3.4 102

29、103 1.243 3.8106 103 -0.577 4.3103 101 -0.786 2.5進(jìn)入MATLAB界面,在命令窗口直接輸入level3運(yùn)行程序。彈出如下窗口圖3-4 數(shù)據(jù)讀入文件選擇data1.t*t即可運(yùn)行出如下結(jié)果:圖3-5 計(jì)算結(jié)果-. z. 在圖3-5中,分別輸出了高程的平差值及精度。結(jié)果是一文本的形式保存,用戶可對(duì)它進(jìn)展編輯。4. 測邊網(wǎng)平差程序設(shè)計(jì)4.1數(shù)學(xué)模型 誤差方程和法方程的組成控制網(wǎng)中的觀測值為邊長,誤差方程非零項(xiàng)最多為4個(gè),所以誤差方程系數(shù)矩陣采用壓縮格式進(jìn)展儲(chǔ)存??刹捎靡韵碌姆椒ǎ篈(m,n)=A(m,9)其中,m為觀測值個(gè)數(shù),n為未知點(diǎn)個(gè)數(shù)的兩倍。改良

30、后的A陣格式為=編號(hào)1,系數(shù)1,編號(hào)2,系數(shù)2,編號(hào)4,系數(shù)4,常數(shù)項(xiàng) 共9列。即只存儲(chǔ)誤差方程的4個(gè)非零參數(shù)系數(shù)。法方程系數(shù)陣為對(duì)稱陣,在存儲(chǔ)時(shí),只需要存其上三角局部就可以了。其占用的空間為:現(xiàn)有A陣: A=編號(hào)1,系數(shù)1,編號(hào)2,系數(shù)2,編號(hào)4,系數(shù)4,常數(shù)項(xiàng)其中偶數(shù)項(xiàng)為系數(shù),加上最后的A9為常數(shù)項(xiàng),在組成法方程時(shí),從A2開場分別與剩下的偶數(shù)項(xiàng)以及常數(shù)項(xiàng)相乘,然后再用A4與剩余的項(xiàng)相乘,一直到A8為止,這樣就完成了的過程。需要注意的是:假設(shè)A1,A3,A5,A7小于零,則表示該點(diǎn)點(diǎn),不參與法方程的組成。邊長觀測的權(quán)邊長觀測的精度一般與其長度有關(guān),定權(quán)公式為式中為所測邊長的方差,為任意選定的

31、單位權(quán)方差。為了定權(quán)必須測邊的先驗(yàn)方差,但準(zhǔn)確的是十分困難的,一般采用廠方給定的測距儀精度,即式中,a為固定誤差單位mm,b為比例誤差單位:ppm,為邊長單位km。 解算法方程由于法方程是對(duì)稱正定陣,因此,可采用改良的平方根法進(jìn)展解算。平方根法是對(duì)稱正定矩陣非常有效的三角分解方法,設(shè)A為n階方陣,如果其所有順序主子式均不為零,則其存在唯一的分解式: A=LDR其中 L =,D=,R =由于此住A對(duì)稱性,得,又根據(jù)A陣正定的性質(zhì),可證明D均為正數(shù)?,F(xiàn)在設(shè) D=即 則 為方便,記為稱為Cholesky分解,即正定對(duì)稱矩陣的平方根分解法。解等階于求解兩個(gè)三角方程組:和在用平方根分解法計(jì)算時(shí),需要進(jìn)展

32、n次開方運(yùn)算。為了防止開方,可以直接采用對(duì)稱正定的分解式對(duì)平方根法進(jìn)展改良。從而解方程組可以按如下步驟進(jìn)展:把A分解成,則變成,即等價(jià)于由此可以解出*和Y。這稱為改良的平方根法,在計(jì)算中防止了開方運(yùn)算。平方根法和改良的平方根法的計(jì)算量和存儲(chǔ)量比消去法節(jié)約近一半,而且不需要選主元,能得到比擬準(zhǔn)確的數(shù)值解。法方程用改良平方根法解算的過程如下:(1)分解:其中 純量計(jì)算公式為2求逆由RS=I得純量計(jì)算公式:通式為 3求積精度評(píng)定坐標(biāo)改正數(shù)以及單位權(quán)中誤差的計(jì)算使用上三角一維數(shù)組形式存儲(chǔ)坐標(biāo)改正數(shù)的公式為:其中,n=2dd,的單位是cm.平差值:寫成分量的形式,為如果近似坐標(biāo)的誤差較大,或網(wǎng)形較大,平

33、差的結(jié)果不會(huì)準(zhǔn)確,這時(shí),就需要進(jìn)展迭代平差,直到兩次平差間互差在允許值內(nèi)。由測量平差理論:同樣可得到單位權(quán)中誤差:其中,m-n觀測個(gè)數(shù)減去未知點(diǎn)個(gè)數(shù);2點(diǎn)位誤差橢圓 誤差橢圓表示了網(wǎng)中點(diǎn)或點(diǎn)與點(diǎn)之間的誤差分布情況如圖。在測量工作中,常用的誤差橢圓對(duì)布網(wǎng)方案作精度分析。繪制誤差橢圓只需要三個(gè)數(shù)據(jù):橢圓長半軸a,短半軸b和主軸方向,其求法為圖4-1 誤差橢圓的表達(dá)顧及方差與權(quán)倒數(shù)的關(guān)系,得 根據(jù)上述的理論,我們實(shí)際要求的是、。只要得到了這些元素,就能依照上面的公式來求得橢圓的元素了。測邊網(wǎng)平差信息設(shè)計(jì)外業(yè)測量的數(shù)據(jù)首先應(yīng)進(jìn)展預(yù)處理,包括測站平差、歸心計(jì)算、觀測值歸化到橢球面的改正、橢球面歸化到高斯

34、平面的改正等,然后將預(yù)處理后的數(shù)據(jù)輸入到以后綴名為T*T的文本文件中,該數(shù)據(jù)文件的組織格式如下所列:表4-1 數(shù)據(jù)組織格式 次序內(nèi)容1點(diǎn)個(gè)數(shù)ed,未知點(diǎn)個(gè)數(shù)dd,控制參數(shù)2點(diǎn)號(hào)pn。先輸入點(diǎn)編號(hào),各點(diǎn)輸入順序無要求3點(diǎn)坐標(biāo),*0,y0,*1,y1,*2,y24測量邊的個(gè)數(shù)m15邊長的固定誤差ms,邊長的比例誤差pp。單位分別是:cm和0.0000016邊長的起始點(diǎn)號(hào)e,終點(diǎn)點(diǎn)號(hào)d,邊長sid。每一條邊一行,依次列出7推算近似坐標(biāo)的路線經(jīng)過的邊數(shù)8推算近似坐標(biāo)的起算點(diǎn)坐標(biāo)按順時(shí)針9推算近似坐標(biāo)的路線經(jīng)過的邊的邊號(hào) 主要的技術(shù)要求表4-2 測邊網(wǎng)的技術(shù)要求等級(jí)平均邊長km測距中誤差mm測距相對(duì)中誤

35、差二等930 130萬三等530116萬四等216 112萬一級(jí)小三角11616萬二級(jí)小三角0.516 13萬43利用MATLAB的繪圖語句繪制網(wǎng)圖1. 網(wǎng)形的繪制由于網(wǎng)形圖與誤差橢圓繪制在同一個(gè)圖形上,因此必須對(duì)誤差橢圓進(jìn)展放大,在本文的程序中,使用了inputdlg對(duì)話框輸入語句,其中,確省的放大倍數(shù)為100。在程序中,使用了ed dd pn m1 * y e d sid ai bi fi 等變量,其意義與前面的變量一樣。對(duì)繪制的網(wǎng)圖有效放大和縮小功能,即點(diǎn)擊鼠標(biāo)左鍵放大圖形,點(diǎn)擊右鍵縮小圖形,利用MATLAB菜單本身的功能,可以將該圖形輸出為各種圖形文件格式。2誤差橢圓的繪制無論多么復(fù)雜

36、的圖形,其根本單元還是點(diǎn)和線。換句話說,只需要利用根本元素的點(diǎn)或線,通過各種組合,也能畫出復(fù)雜的圖形。MATLAB中沒有提供直接繪制橢圓的命令,因此可以直接利用連線來畫橢圓。測量中描述誤差橢圓用長半軸A,短半軸B和方位角FI三個(gè)量。在如圖4-1的*Oy中直角坐標(biāo)系中,橢圓的標(biāo)準(zhǔn)方程為4-1如果以角度i為變量,則橢圓的標(biāo)準(zhǔn)參數(shù)方程為4-2設(shè)在測量坐標(biāo)系*Oy中橢圓長半軸的方位角為,則有4-3 用參數(shù)方程代入,得到4-4測量坐標(biāo)系與MATLAB或AUTOCAD繪制的數(shù)學(xué)坐標(biāo)系的*,y坐標(biāo)軸不同,繪圖時(shí),需要調(diào)換*,y坐標(biāo)。在上式中,i取不同的值,就有一組*,y,只需要將這些點(diǎn)連接起來,就可以繪出一

37、個(gè)橢圓。圖4-2 誤差橢圓的參數(shù)方程4.4 測邊網(wǎng)程序和使用說明使用本程序的全部數(shù)據(jù)都按規(guī)定的格式編輯成數(shù)據(jù)文件儲(chǔ)存在磁盤上。數(shù)據(jù)文件的編輯取決于平差網(wǎng)型和觀測值的編號(hào),為此,先繪制平差網(wǎng)的略圖,在圖上標(biāo)明各項(xiàng)數(shù)據(jù)的信息。以下就測邊網(wǎng)的點(diǎn)號(hào),邊編號(hào),輸入數(shù)據(jù),輸出成果,運(yùn)行程序等問題作簡明說明。1 點(diǎn)號(hào)和觀測邊的編號(hào)點(diǎn)和待定點(diǎn)的編號(hào)為pn取三為數(shù),點(diǎn)在前,未知點(diǎn)在后,其順序無要求。但為了減小法方程系數(shù)的帶寬,應(yīng)使相臨的待定點(diǎn)編號(hào)的差數(shù)盡可能小。平差網(wǎng)的編號(hào)見圖4-3。2.推算近似坐標(biāo)的路線近似坐標(biāo)的路線是用戶在測邊網(wǎng)略圖上指定出來的。如圖4-3的箭頭,就是表示推算路線。路線的兩個(gè)起算點(diǎn)必須為點(diǎn)

38、,從兩個(gè)推算出的第一個(gè)未知點(diǎn)開場,選擇觀測邊,由觀測邊和已求得的近似坐標(biāo)或坐標(biāo)推算出觀測邊所對(duì)的未知點(diǎn)。本程序是按推算的三個(gè)點(diǎn)A、B、P順序?yàn)轫槙r(shí)針。圖4-3 測邊網(wǎng)略圖2 數(shù)據(jù)的輸入1簡單變量 為了在程序運(yùn)行中數(shù)據(jù)的傳遞,定義了一些全局變量,參見4-1表。2數(shù)據(jù)文件外業(yè)測量的數(shù)據(jù)首先應(yīng)進(jìn)展預(yù)處理,包括測站平差、歸心計(jì)算、觀測值歸化到橢球面的改正、橢球面歸化到高斯平面的改正等,然后將預(yù)處理后的數(shù)據(jù)輸入到以后綴名為T*T的文本文件中,該數(shù)據(jù)文件的組織格式如表4-1。3 輸出成果本程序的計(jì)算成果是以文件的形式輸出到文本文件中,用戶可以在文本中查看和編輯。程序代碼說明:程序的總體框架圖4-4測邊網(wǎng)總

39、體流程圖1數(shù)據(jù)讀入塊本模塊的功能是翻開一個(gè)*.t*t的數(shù)據(jù)文件,同時(shí)生成一個(gè)*out.t*t的文本文件,記錄用戶數(shù)據(jù)和輸出成果用。程序調(diào)用fscanf函數(shù)把文件中的數(shù)據(jù)賦值給相應(yīng)的變量,這些變量是后面計(jì)算的數(shù)據(jù)依據(jù)。近似坐標(biāo)的計(jì)算測邊網(wǎng)的觀測數(shù)據(jù)是邊長,所以在近似坐標(biāo)的計(jì)算時(shí)只能用測邊交會(huì)計(jì)算。以及A、B兩點(diǎn)坐標(biāo)及A、B到P點(diǎn)的距離b、a,c為A、B兩點(diǎn)的距離,A、B、P三點(diǎn)按順時(shí)針排列。則P點(diǎn)的坐標(biāo)計(jì)算公式如下:計(jì)算近似坐標(biāo)的流程圖入圖4-5。圖4-5 計(jì)算近似坐標(biāo)流程圖誤差方程和法方程的形成程序中,用數(shù)組a來存儲(chǔ)誤差方程的編號(hào)和系數(shù),a(i,9)存儲(chǔ)常數(shù)項(xiàng),w和c分別存儲(chǔ)法方程系數(shù)和法方程

40、常數(shù)。4解算法方程。 函數(shù)流程圖如圖4-6。函數(shù)的代碼見附錄三。5精度評(píng)定 本模塊包括坐標(biāo)改正數(shù)、單位權(quán)中誤差和誤差橢圓的計(jì)算。程序中定義了d*y坐標(biāo)改正數(shù)、pvv即存儲(chǔ)、uw0(單位權(quán)中誤差)等。同時(shí)計(jì)算出誤差橢圓的三個(gè)參數(shù)長半軸ai,短半軸bi和主軸方向fi。圖4-6 平方根法求逆程序框架圖控制網(wǎng)的繪制程序中調(diào)用inputdlg函數(shù)來翻開一個(gè)對(duì)話框來輸入誤差橢圓的參數(shù);用te*t函數(shù)來對(duì)點(diǎn)號(hào)標(biāo)注;用ploth函數(shù)及控制參數(shù)繪制線和誤差橢圓。程序的完全代碼見附錄二。4.6 程序的使用算例 有測邊網(wǎng)如圖4-3所示。網(wǎng)中A、B、C、C點(diǎn),其余為未知點(diǎn),現(xiàn)用*測距儀觀測了13條邊長,測距精度。起算

41、數(shù)據(jù)和觀測數(shù)據(jù)如下:表4-3 點(diǎn)坐標(biāo)點(diǎn)名*Y點(diǎn)名*YA53743.13661003.826C40049.22953782.79B47943.00266225.854D36924.72861027.086表4-4 觀測值編號(hào)邊觀測值編號(hào)邊觀測值編號(hào)邊觀測值15760.70668720.162115487.07325187.34275598.57128884.58737838.8887494.881137228.36745483.15897493.32355731.788105438.3821.編輯數(shù)據(jù)文本文件如下列圖圖4-7 數(shù)據(jù)文件 2.在MATLAB命令窗口鍵入nnbb執(zhí)行程序,運(yùn)行中會(huì)彈出

42、一個(gè)對(duì)話匡提示用戶輸入誤差橢圓的放大比例,默認(rèn)為100,本例選擇500。如下列圖圖4-8a 對(duì)話框圖4-8b 對(duì)話框 3.計(jì)算出的結(jié)果如下:在圖4-9a中,第1、2行分別是點(diǎn)和未知的個(gè)數(shù);第4行是點(diǎn)的編號(hào);第5至第8行是點(diǎn)的坐標(biāo);第10行是觀測值的個(gè)數(shù);第12行是測距的固定誤差和比例誤差;13至25行是觀測邊的起點(diǎn)號(hào)、終點(diǎn)號(hào)和觀測邊長;27至39行接到圖4-9b是點(diǎn)號(hào)轉(zhuǎn)換為計(jì)算機(jī)順序后的觀測邊起點(diǎn)號(hào)、終點(diǎn)號(hào)和觀測邊長。接圖4-9a,在圖4-9b中,第42至49行是推算的近似坐標(biāo);第52至64行是計(jì)算的誤差方程系數(shù)和常數(shù)。在圖4-9中,第67至70行是法方程的系數(shù)上三角一維存儲(chǔ);第73至76行是

43、求逆后的法方程系數(shù);第79至86是坐標(biāo)改正數(shù)和坐標(biāo)平差值;第89至92行是誤差橢圓的參數(shù);第95行是單位權(quán)中誤差。圖4-9a計(jì)算結(jié)果圖4-9b 計(jì)算結(jié)果圖4-9c計(jì)算結(jié)果-. z.4.輸出的控制網(wǎng)圖和誤差橢圓圖如下:圖4-10 控制網(wǎng)圖結(jié)論由本論文的兩個(gè)程序例子解算過程不難發(fā)現(xiàn),程序的平原理和其它高級(jí)語言編寫的程序大致一樣的。但MATLAB語言本身就有獨(dú)特的數(shù)值計(jì)算功能和圖形繪制功能,這使它不用編寫專門的函數(shù)而直接處理和計(jì)算測量的數(shù)據(jù),這就大大縮短了編程的時(shí)間。MATLAB軟件將人們從乏味的Fortran、C編程中解放出來,使他們真正的把精力放在科學(xué)研究的核心問題上。但用MATLAB語言編程本

44、身也有它的缺乏之處:1.由于MATLAB是一個(gè)解釋器,會(huì)逐行對(duì)程序代碼進(jìn)展解釋后執(zhí)行,當(dāng)要處理的數(shù)據(jù)量很大時(shí),計(jì)算機(jī)的運(yùn)行速度明顯變慢了好多。2.用MATLAB進(jìn)展界面開發(fā)時(shí)沒有像其他面向?qū)ο笳Z言方便。針對(duì)上面的問題,提出一些見解:1.為了提高整體程序的執(zhí)行效率,應(yīng)盡量多使用向量化的運(yùn)算,而防止或少用for循環(huán)、while循環(huán)。事實(shí)上,如果程序是純粹的數(shù)值運(yùn)算、而沒有使用for循環(huán)或while循環(huán),則其執(zhí)行速度將會(huì)接近于純粹用C語言來寫的程序代碼。2.雖然MATLAB是一個(gè)完整的科學(xué)計(jì)算與可視化環(huán)境,但在多數(shù)情況下,如MATLAB編程的代碼執(zhí)行效率不佳、你希望隱藏你的程序代碼以保護(hù)產(chǎn)權(quán)、或您想

45、要進(jìn)展任何只有在*些高級(jí)語言程序才能做到的事,這時(shí)就需要用MATLAB所提供的應(yīng)用程序接口。-. z.致 本論文是在導(dǎo)師吳良才教授的熱忱關(guān)心和細(xì)心指導(dǎo)下完成的。從論文選題到最后的成文,無不凝結(jié)著導(dǎo)師的心血。導(dǎo)師開拓創(chuàng)新的精神、嚴(yán)謹(jǐn)踏實(shí)的治學(xué)態(tài)度以及寬厚的為人都使我深受熏陶,并將使我終身受益。在此謹(jǐn)向?qū)熤乱灾孕牡母兄x和誠摯的敬意。此外,也感謝測繪專業(yè)的全體教師,正因?yàn)橛辛怂麄兊奶撔慕陶d,使我的知識(shí)得到一點(diǎn)一滴的積累,才沉著的完成今天的畢業(yè)設(shè)計(jì)。-. z.參考文獻(xiàn)1 *明理. 控制測量手冊(cè). : *科學(xué)技術(shù), 1999.1.2 吳俊昶. 控制網(wǎng)測量平差2版. : 測繪, 1998.1.3 譚 輝

46、. 測量程序與新型全站儀的應(yīng)用. : 機(jī)械工業(yè), 2006.4 孔祥元, 梅是義. 控制測量學(xué)下冊(cè)2版. : *大學(xué), 2002.2.5 *大學(xué)測繪學(xué)院測量平差學(xué)科組. 誤差理論與測量平差根底. : *大學(xué), 2003.1.6 *智星. MATLAB程序設(shè)計(jì)與應(yīng)用. : 清華大學(xué), 2002.4.7 郭九訓(xùn). 控制網(wǎng)平差程序設(shè)計(jì). : 原子能, 2004.8.8 姚連壁, 周小平. 基于MATLAB的控制網(wǎng)平差程序設(shè)計(jì). : 同濟(jì)大學(xué), 2006.6.9 清源計(jì)算機(jī)工作室. MATLAB 根底及其應(yīng)用M. :機(jī)械工業(yè), 2000.10 程衛(wèi)國,峰,東, 徐昕, 等. MATLAB 5.3 應(yīng)用

47、指南M . : 人民郵電, 1999.11 CHAI Yan2jun , et al . Quasi2accurate Detection Methodsof Gross Errors with MATLAB Language J . Journal ofShandong University of Science and Technology (NatureScience) , 2000 , (3)12 NIE Gui2gen. Application of MATLAB to Surveying Da2ta Processing J . Bulletin of Surveying andM

48、apping ,2001 , (2)-. z.附錄一水準(zhǔn)網(wǎng)平差程序代碼:function level3ed,dd,sd,gd,pn,h0,k1,k2,h1,s=readlevelnetdata;global pathname net_name s_datafile a1_datafile;global ed dd sd pn gd h0 k1 k2 h1 s dh;dh,h,V,L,uw0,uwh,uw1=calculatelevelnet(ed,dd,sd,pn,gd,h0,k1,k2,h1,s);writelevelnetdata(pn,k1,k2,h1,V,L,h0,dh,h,uwh,u

49、w0); %輸出水準(zhǔn)網(wǎng)計(jì)算結(jié)果returnfunctiondh,h,V,L,uw0,uwh,uw1=calculatelevelnet(ed,dd,sd,pn,h0,be,en,hd,distance);% 水準(zhǔn)平差網(wǎng)A=sparse(zeros(sd,gd); %求解系數(shù)陣b=(0:(gd-1)*sd);A(be+b)=-1;A(en+b)=1;A=A;A=A(:,1:dd);l=zeros(gd,1); %求解常數(shù)項(xiàng)l=h0(be)-h0(en)+hd;p=diag(1./distance); %權(quán)陣dh=inv(A*p*A)*A*p*1; %高程改正數(shù)h00=h0(dd+1:sd);h0

50、=h0(1:dd); %待定點(diǎn)高程近似值h=h0+dh; %待定點(diǎn)高程平差值V=A*dh-1; %高差觀測值改正數(shù)L=hd+V; %高差觀測值平差值%精度評(píng)定uw0=sqrt(V*p*V/(gd-dd); %單位權(quán)中誤差Q*=inv(A*p*A);uwh=uw0*sqrt(diag(Q*); %待定點(diǎn)高程平差值中誤差uwh(dd+1:ed+dd)=0.0;Qff=A*Q*A;uwh=uw0*sqrt(diag(Qff); %高差平差值中誤差h=h;h00; %所有點(diǎn)高程h0=h0;h00;dh=dh;zeros(ed,1);returnfunction ed,dd,sd,gd,pn,h0,k1

51、,k2,h1,s=readlevelnetdata;global pathname net_name s_datafile b_datafile;global ed dd sd pn gd h0 k1 k2 h1 s k11 k12;k1=;k2=;h=;s=;if(isempty(pathname)|isempty(net_name) filename,pathname=uigetfile(*.t*t,Input filename); i=find(.=filename); net_name=filename(1:i-1);endfid1=fopen(strcat(pathname,net_

52、name,s_datafile),rt);if(fid1=-1) msgbo*(Input File or Path is not correct,Warning,warn); return;end %open afile to read%open afile to readed=fscanf(fid1,%f,1); %點(diǎn)個(gè)數(shù)dd=fscanf(fid1,%f,1); %未知點(diǎn)個(gè)數(shù)sd=ed+dd; %總點(diǎn)數(shù)gd=fscanf(fid1,%f,1); %觀測點(diǎn)個(gè)數(shù)pn=fscanf(fid1,%f,sd); %點(diǎn)號(hào)%known datah0=fscanf(fid1,%f,ed); %點(diǎn)高程h0

53、(dd+1:ed+dd)=h0(1:ed)heightdiff=fscanf(fid1,%f,4,gd);heightdiff=heightdiff;k1=heightdiff(:,1); %起點(diǎn)k2=heightdiff(:,2); %終點(diǎn)k11=heightdiff(:,1); %起點(diǎn)k12=heightdiff(:,2); %終點(diǎn)h1=heightdiff(:,3); %高差s=heightdiff(:,4); %距離fclose(all);%點(diǎn)號(hào)轉(zhuǎn)換k1,k01=chkdat(sd,pn,k1);k2,k02=chkdat(sd,pn,k2);h0(1:dd)=20000.;ie=0;

54、while(1)%計(jì)算近似高程 for k=1:gd i=k1(k); j=k2(k); if(h0(i)le4) h0(j)=h0(i)+h1(k); ie=ie+1; end if(h0(i)le4&h0(j)0) fprintf(fit2,siden); a=fscanf(fit1,%f,2); ms=a(1); pp=a(2); fprintf(fit2,%6.2f %6.2fn,ms,pp); a=fscanf(fit1,%d %d %f,3*m1); for i=1:m1 e(i)=a(3*i-2);d(i)=a(3*i-1);sid(i)=a(3*i); fprintf(fit2

55、,%5d %5d %15.3fn,e(i),d(i),sid(i); end e,i1=chkdat(sd,pn,e); d,i2=chkdat(sd,pn,d); i3=0; for i=1:m1; if(e(i)=d(i) i3=1; fprintf(fit2,* * %5d %5d %5d * *n,i,e(i),d(i); end fprintf(fit2,%5d %5d %15.3fn,e(i),d(i),sid(i); end isid=i1+i2+i3;endidir=0;kk=isid if(kk0) msgbo*(Error by function rddat1,Warnin

56、g,warn); return;end%近似坐標(biāo)計(jì)算*yknow(1:ed)=pn1(1:ed);*yunknow(1:dd)=pn1(ed+1:sd); aa=fscanf(fit1,%d,2); A=aa(1);B=aa(2); mn=fscanf(fit1,%d,1); bb=fscanf(fit1,%d,mn); m=bb; for i=1:length(m) if i=1 if e(m(i)=A|e(m(i)=B P=d(m(i); else P=e(m(i); end else if e(m(i-1)=A|d(m(i-1)=A B=P; else A=P; end if e(m(i

57、)=A|e(m(i)=B P=d(m(i); else P=e(m(i); end end for j=1:m1 if (e(j)=P|d(j)=P)&(d(j)=A|e(j)=A) s1=sid(j); end if (e(j)=P|d(j)=P)&(d(j)=B|e(j)=B) s2=sid(j); end end delt*=*0(B)-*0(A); delty=y0(B)-y0(A); alfaAB=alfa(delt*,delty) ; ss=sqrt(delt*delt*+delty*delty); ee=(s1*s1+ss*ss-s2*s2)/(2*ss);ff=sqrt(s1*

58、s1-ee*ee); *0(P)=*0(A)+ee*cos(alfaAB)-ff*sin(alfaAB); y0(P)=y0(A)+ee*sin(alfaAB)+ff*cos(alfaAB); end fprintf(fit2,n); fprintf(fit2,計(jì)算的近似坐標(biāo)n); for i=1:sd fprintf(fit2,%15.3f %15.3f n,*0(i),y0(i); end% k=1;while(k) lo=2062.4; n=2*dd; sum=n*(n+1)/2.0; sd=ed+dd; a=; a(1:m1,1:9)=0.0; c(1:sum)=0.0; w(1:n)

59、=0.0;fprintf(fit2,誤差方程系數(shù)和常數(shù)項(xiàng) n); for i=1:m1 %邊長觀測誤差方程 d*=*0(d(i)-*0(e(i); dy=y0(d(i)-y0(e(i); ss=sqrt(d*d*+dy*dy); cosa=d*/ss; sina=dy/ss; a(i,1)=2*e(i)-1-2*ed+1.0e-9; a(i,2)=-cosa; a(i,3)=a(i,1)+1; a(i,4)=-sina; a(i,5)=2*d(i)-1-2*ed+1.0e-9; a(i,6)=cosa; a(i,7)=a(i,5)+1; a(i,8)=sina; a(i,9)=10.0*(ss

60、-sid(i); %ql(i)=(ms2+(ss*pp*0.0001)2); ql(i)=(ms+ss*pp*0.001); ql(i)=100/ql(i)2; fprintf(fit2,%15.3f %15.3f %15.3f %15.3f %15.3f %15.3f %15.3f %15.3f %15.3f n,a(i,:); end% fprintf(fit2,%15.3f n,ql); for i=1:m1 %形成法方程 for j=1:4 jj=fi*(a(i,2*j-1); if(jj=0) continue; end w(jj)=w(jj)+a(i,2*j)*a(i,9)*ql(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論