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

下載本文檔

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

文檔簡介

1、第三章第三章 水準(zhǔn)網(wǎng)平差程序設(shè)計(jì)水準(zhǔn)網(wǎng)平差程序設(shè)計(jì)本章難點(diǎn):本章難點(diǎn):1、近似高程計(jì)算2、最短路線的計(jì)算3、誤差方程及法方程的構(gòu)建4、直接計(jì)算出法方程的系數(shù)矩陣BTPB和常數(shù)矩陣BTPL 該課程中所采用的平差模型為間接平差,即所選的獨(dú)立參數(shù)的個(gè)數(shù)等于必要觀測數(shù),這樣可以將每個(gè)觀測值表示成這t個(gè)參數(shù)的函數(shù),組成觀測方程。 間接平差的函數(shù)模型:1 ,1 ,1 ,nttnndXBL平差時(shí)一般對所選參數(shù)取近似值 00)(LLdBXLlxXX0代入上式并令由此可得誤差方程lxBVttnn1 ,1 ,式中l(wèi)為誤差方程常數(shù)項(xiàng)一、水準(zhǔn)網(wǎng)間接平差算法概述一、水準(zhǔn)網(wǎng)間接平差算法概述采用的平差準(zhǔn)則為最小二乘法:mi

2、nPVVT 不難看出總共有n+t個(gè)參數(shù),而所列的誤差方程只有n個(gè),故只采用誤差方程是不能解求n+t個(gè)參數(shù)的,還需尋找其他的條件。按著最小二乘法法則,對t個(gè)參數(shù)求偏導(dǎo),得出式子0PVBT0PlBxPBBTT由誤差方程和求偏導(dǎo)后得到的式子,可唯一確定n+t個(gè)待求量。并有這兩個(gè) 式子可以推出法方程,如為:PlBPBBxTT1)(從而可求得,將該式代入到誤差即可求得改正數(shù) 。 v從而平差值結(jié)果為:xXXvLL0, 本課程中以未知點(diǎn)高程值作為未知參數(shù),以高差作為觀測值,以觀測路線長度的倒數(shù)作為觀測值的權(quán),采用間接平差模型進(jìn)行平差計(jì)算。其平差的一般步驟如下:其平差的一般步驟如下:1.根據(jù)平差問題選定未知參

3、數(shù);2.根據(jù)觀測值與未知參數(shù)之間的函數(shù)關(guān)系建立誤差方程式,若誤差方程是非線性方程,還要引入?yún)?shù)近似值,將誤差方程線性化;3.由誤差方程組成法方程;4.解算法方程,求取未知參數(shù);5.精度評定。 平差程序設(shè)計(jì)不僅僅是“寫程序”,測量程序設(shè)計(jì)還包括程序功能設(shè)計(jì)、平差模型選擇、算法選擇、數(shù)據(jù)接口設(shè)計(jì)等內(nèi)容。一般應(yīng)按數(shù)據(jù)處理和計(jì)算功能的劃分,將網(wǎng)平差程序分為若干獨(dú)立函數(shù)(或過程),每個(gè)函數(shù)(或過程)完成特定的計(jì)算或操作,當(dāng)需進(jìn)行某種平差時(shí),再調(diào)用這些函數(shù)即可。 二、水準(zhǔn)二、水準(zhǔn)網(wǎng)平差程序網(wǎng)平差程序設(shè)計(jì)數(shù)據(jù)組設(shè)計(jì)數(shù)據(jù)組織及處理流織及處理流程程2.1 2.1 水準(zhǔn)網(wǎng)平差中數(shù)據(jù)的組織水準(zhǔn)網(wǎng)平差中數(shù)據(jù)的組織(

4、(數(shù)據(jù)文數(shù)據(jù)文件格式的設(shè)計(jì)件格式的設(shè)計(jì)) ) 水準(zhǔn)網(wǎng)平差程序設(shè)計(jì)中數(shù)據(jù)的組織是一個(gè)關(guān)鍵問題。文件格式的設(shè)計(jì)就是規(guī)定數(shù)據(jù)文件中包含的內(nèi)容、各類數(shù)據(jù)的先后順序以及各種數(shù)據(jù)的書寫格式。從程序設(shè)計(jì)者的角度來說,數(shù)據(jù)文件格式設(shè)計(jì)相當(dāng)于告訴用戶應(yīng)當(dāng)怎樣準(zhǔn)備數(shù)據(jù)文件,當(dāng)然,程序中也必須按照約定的格式從文件中讀取數(shù)據(jù)。數(shù)據(jù)文件由四個(gè)部分組成,其格式如下。1)基本信息部分:該部分僅占一行,其內(nèi)容為已知點(diǎn)數(shù)已知點(diǎn)數(shù)N1N1,未知點(diǎn)數(shù),未知點(diǎn)數(shù)N2N2,高差觀測值個(gè)數(shù),高差觀測值個(gè)數(shù)NSNS。2)已知點(diǎn)高程信息:該部分占N1行,每行格式為已知點(diǎn)編號,該點(diǎn)的高程已知點(diǎn)編號,該點(diǎn)的高程(單位:米)。注意:在給控制點(diǎn)編號

5、時(shí),先給待定點(diǎn)編號,然后注意:在給控制點(diǎn)編號時(shí),先給待定點(diǎn)編號,然后給已知點(diǎn)編號。編號從給已知點(diǎn)編號。編號從1開始順序編號。開始順序編號。3)高差觀測值信息:該部分占NS行,每行格式為測段編號,測段起點(diǎn)編號,測段終點(diǎn)編號,測段觀測段編號,測段起點(diǎn)編號,測段終點(diǎn)編號,測段觀測高差(單位:米),測段長度(單位:千米)。測高差(單位:米),測段長度(單位:千米)。4)點(diǎn)名信息:該部分占N(N=N1+N2)行,每行格式為水準(zhǔn)點(diǎn)編號,該點(diǎn)名稱水準(zhǔn)點(diǎn)編號,該點(diǎn)名稱其中點(diǎn)名長度不超過8個(gè)字符,即4個(gè)漢字。但最好最好用字符串命名用字符串命名。 以下為一具有兩個(gè)已知點(diǎn)、三個(gè)待定點(diǎn)和七個(gè)測段的水準(zhǔn)網(wǎng)的示例數(shù)據(jù),打

6、開TXT文件文件后,內(nèi)容如下。2 , 3 , 7 4 , 5.016 5 , 6.016 1 , 4 , 1 , 1.359 , 1.1 2 , 4 , 2 , 2.009 , 1.7 3 , 5 , 1 , 0.363 , 2.3 4 , 5 , 2 , 1.012 , 2.7 5 , 1 , 2 , 0.657 , 2.4 6 , 1 , 3 , 0.238 , 1.4 7 , 3 , 5 ,-0.595 , 2.6 1 ,P12 ,P23 ,P34 ,A5 ,B2.2 2.2 數(shù)據(jù)存儲(chǔ)方案設(shè)計(jì)數(shù)據(jù)存儲(chǔ)方案設(shè)計(jì) 這里的數(shù)據(jù)存儲(chǔ)是指數(shù)據(jù)在內(nèi)存中的存儲(chǔ)。測量平差程序中用到的數(shù)據(jù)較多,一般先將磁

7、盤中的數(shù)據(jù)讀到內(nèi)存中,按照不同的類別有序地放在變量或數(shù)組中,然后再進(jìn)行平差計(jì)算,最后將計(jì)算結(jié)果寫到磁盤文件中。 要整潔、簡練、實(shí)用、方便有關(guān)數(shù)據(jù)的輸入或輸出,必要的話要考慮和用戶的交互,盡量不要畫蛇添足。三、水準(zhǔn)網(wǎng)平差界面設(shè)計(jì)三、水準(zhǔn)網(wǎng)平差界面設(shè)計(jì)水準(zhǔn)網(wǎng)平差輸入界面一水準(zhǔn)網(wǎng)平差輸入界面一水準(zhǔn)網(wǎng)平差輸入界面二水準(zhǔn)網(wǎng)平差輸入界面二水準(zhǔn)網(wǎng)平差輸入界面三水準(zhǔn)網(wǎng)平差輸入界面三四、高差閉合差的計(jì)算與檢查四、高差閉合差的計(jì)算與檢查 為了檢查水準(zhǔn)高差的質(zhì)量,水準(zhǔn)網(wǎng)平差前一般進(jìn)行附合水準(zhǔn)路線閉合差計(jì)算與多邊形閉合差計(jì)算,并進(jìn)行閉合差的檢核。1.附合水準(zhǔn)路線高差閉合差的計(jì)算附合水準(zhǔn)路線高差閉合差的計(jì)算 a)最短路

8、線搜索算法 “鄰接點(diǎn)”:若一個(gè)點(diǎn)借助另一個(gè)點(diǎn)與目標(biāo)點(diǎn)發(fā)生了聯(lián)系,稱另一個(gè)點(diǎn)是這個(gè)點(diǎn)的“鄰接點(diǎn)鄰接點(diǎn)”。如果一個(gè)點(diǎn)與目標(biāo)點(diǎn)有直接聯(lián)系,我們也把目標(biāo)點(diǎn)稱為這個(gè)點(diǎn)的鄰接點(diǎn)。 顯然鄰接點(diǎn)不是唯一的,但是我們規(guī)定每個(gè)點(diǎn)只有一個(gè)鄰接點(diǎn);當(dāng)網(wǎng)中每個(gè)點(diǎn)的鄰點(diǎn)都唯一確定時(shí),順著鄰接點(diǎn)又可找到鄰點(diǎn)的鄰接點(diǎn),這樣一層一層地找下去,最終找到目標(biāo)點(diǎn),每個(gè)點(diǎn)到目標(biāo)點(diǎn)的路線是唯一確定的。 根據(jù)鄰接點(diǎn)的概念可知,任何一點(diǎn)沿鄰接點(diǎn)到目標(biāo)點(diǎn)的路線長度是其鄰接點(diǎn)到目標(biāo)點(diǎn)的路線長度再加上該點(diǎn)與其鄰接點(diǎn)之間的路線長度。當(dāng)一個(gè)點(diǎn)有多個(gè)點(diǎn)可以作為鄰接點(diǎn)時(shí),只選擇路線最短的一點(diǎn)作為鄰接點(diǎn),這樣就可保證沿鄰接點(diǎn)到目標(biāo)點(diǎn)的路線是最短路線。 設(shè)p

9、1選擇p2作為鄰接點(diǎn),P2到目標(biāo)點(diǎn)的路線長度為S2, p1到p2的路線長度為S12,則p1到目標(biāo)點(diǎn)的路線長度S1為S S1 1=S=S2 2+S+S1212 若還有一點(diǎn)P3也是P1的鄰接點(diǎn),則經(jīng)由P3到目標(biāo)點(diǎn)的路線長度為 S S1 1=S=S3 3+S+S1313 為了尋求最短路線,顯然當(dāng)S1SS1 1+S+S12 12 ( (條件條件1)1)p2可作為p1的鄰接點(diǎn)的條件為:S S1 1SS2 2+S+S12 12 ( (條件條件2)2)若條件1成立時(shí),Neighbor(p2)=p1,S(p2)=S1+S12;若條件2成立時(shí),Neighbor(p1)=p2,S(p2)=S1+S12。(4)當(dāng)水

10、準(zhǔn)網(wǎng)的規(guī)模較大時(shí),在循環(huán)訪問每一個(gè)觀測值后某些點(diǎn)到目標(biāo)點(diǎn)的路線還不是最短路線,甚至有些點(diǎn)還沒有找到鄰接點(diǎn),需要轉(zhuǎn)到(3)繼續(xù)為尋找路線最短的鄰接點(diǎn),直到所有的觀測邊不再滿足條件條件1 1和條件和條件2 2,這時(shí)表明每個(gè)點(diǎn)都已經(jīng)找到了到目標(biāo)點(diǎn)最短的鄰接點(diǎn),搜素工作結(jié)束。最短路線搜索函數(shù)FindShortPath(p as integer, exclude as integer, neighbor() as integer,diff() as double, S() as double) 從一個(gè)已知點(diǎn)出發(fā),用觀測高差依次推算其從一個(gè)已知點(diǎn)出發(fā),用觀測高差依次推算其它各點(diǎn)的高程,最后閉合到另外一個(gè)已

11、知點(diǎn)上,它各點(diǎn)的高程,最后閉合到另外一個(gè)已知點(diǎn)上,閉合點(diǎn)上推算高程和已知高程值之差稱之為附合閉合點(diǎn)上推算高程和已知高程值之差稱之為附合水準(zhǔn)路線閉合差,簡稱路線閉合差水準(zhǔn)路線閉合差,簡稱路線閉合差。設(shè)k1、k2為兩個(gè)已知點(diǎn),已知高程值分別為H1、H2,兩點(diǎn)之間的推算路線由高差h1,h2hn,各測段路線長度分別為S1,S2 Sn,路線閉合差為式中,正負(fù)號取決于高差起始點(diǎn)到終點(diǎn)的方向與推算路線是否一致。b)路線閉合差計(jì)算算法路線閉合差計(jì)算算法2211HhhhHWn 閉合差的限差為:假如網(wǎng)中共有m個(gè)已知點(diǎn),將m個(gè)已知點(diǎn)兩兩組合,計(jì)算m(m+1)/2條附合路線的閉合差,每條路線按最短路線進(jìn)行計(jì)算。 差。

12、為每千米觀測高差中誤限其中,SSSWn212 在水準(zhǔn)網(wǎng)中,由觀測高差相連接可以形成閉合多邊形,理論上構(gòu)成閉合多邊形的各觀測高差之和應(yīng)該為0,由于觀測誤差的存在,高差之和一般不等于0,閉合多邊形的觀測之和稱為環(huán)閉合多邊形的觀測之和稱為環(huán)閉合差。閉合差。 一般情況下,設(shè)構(gòu)成閉合環(huán)的觀測高差h1,h2hn,環(huán)閉合差為 式中,正負(fù)號取決于高差起點(diǎn)到終點(diǎn)的方向與推算路線的方向一致。c)環(huán)閉合差計(jì)算算法環(huán)閉合差計(jì)算算法nhhhW21環(huán)閉合差的限差為實(shí)際計(jì)算時(shí),一般只計(jì)算最小獨(dú)立環(huán)的閉合差。最小閉合環(huán)應(yīng)該滿足如下條件:(1)多邊形環(huán)應(yīng)該是相互獨(dú)立(線性無關(guān))的,即任何一個(gè)多變邊不能由其它多邊形線性組合而得到

13、。滿足獨(dú)立條件可以避免重復(fù)計(jì)算,也滿足獨(dú)立條件可以避免重復(fù)計(jì)算,也可以避免遺漏。可以避免遺漏。設(shè)水準(zhǔn)網(wǎng)中有n個(gè)觀測高差、t個(gè)高程點(diǎn),那么獨(dú)立閉合環(huán)的個(gè)數(shù)為r=n-t+1保證閉合環(huán)獨(dú)立的方法是,每個(gè)新環(huán)找到的閉合環(huán)都有前面找到的閉合環(huán)中不曾使用的觀測值。差。為每千米觀測高差中誤限其中,SSSWn212 (2)在多邊形環(huán)獨(dú)立的情況下,閉合環(huán)的邊長最短。 關(guān)于最小環(huán)問題可以用最短路徑的方法解決。若僅通過一個(gè)觀測值即可將兩個(gè)點(diǎn)p1到p2連接起來,構(gòu)成一條路線,可把這種路線稱為p1到p2的直接路線。如果直接路線能同別的觀測值構(gòu)成閉合環(huán),那么從p1到p2應(yīng)有兩條或兩條以上的路線。 如果選定一條直接路線,再

14、從非直接路線中找到p1到p2的最短路線,把這條最短路線與直接路線連接起來一定是包含直接路線的最小環(huán)。為保證找到的閉合環(huán)是獨(dú)立的,只能將未參加過前面環(huán)閉合差計(jì)算的觀測作為直接路線。五、待定點(diǎn)近似高程計(jì)算五、待定點(diǎn)近似高程計(jì)算 待定點(diǎn)高程計(jì)算是為了得到未知點(diǎn)的高程近似值,在求取未知點(diǎn)近似高程的時(shí)候,要注意測段的方向及相關(guān)正負(fù)號。既可以進(jìn)行人工計(jì)算后輸入到程序中,也可以直接將原始數(shù)據(jù)直接讀入到程序中,根據(jù)相關(guān)算法讓程序自動(dòng)計(jì)算。計(jì)算原理如下式:測段已知近似hHH水網(wǎng)觀測數(shù)據(jù)(測段)的組織:水網(wǎng)觀測數(shù)據(jù)(測段)的組織:測段號測段號 起點(diǎn)起點(diǎn) 終點(diǎn)終點(diǎn) 測段高差測段高差(m) 測段長測段長(km) 測站

15、數(shù)測站數(shù)1 A B 5.835 1.52 E C 1.006 0.83 D C 7.384 2.14 B C 3.782 3.25 A D 2.270 1.76 A C 9.64 1.37 A F 0.003 4.1水準(zhǔn)網(wǎng)近似高程計(jì)算算法水準(zhǔn)網(wǎng)近似高程計(jì)算算法1、定義存儲(chǔ)水準(zhǔn)網(wǎng)高程的數(shù)組H(),將已已知點(diǎn)(原有高程和計(jì)算出的近似高程都可知點(diǎn)(原有高程和計(jì)算出的近似高程都可視為已知點(diǎn))視為已知點(diǎn))存到H()數(shù)組中;2、遍歷所有測段(即從第一個(gè)測段到最后一個(gè)測段); a)判斷測段中起點(diǎn)為已知點(diǎn),判斷終點(diǎn)為未知點(diǎn),若同時(shí)成立,則利用公式計(jì)算該測段中未知點(diǎn)的高程,并存儲(chǔ)到H()中; b)再次遍歷測段,

16、找到滿足這些條件的測段 (其起點(diǎn)未知點(diǎn),終點(diǎn)是已知點(diǎn)),若同時(shí)滿足,則進(jìn)行起點(diǎn)近似高程的計(jì)算,把計(jì)算出的近似高程存到H()數(shù)組中;3、判斷計(jì)算出近似高程的個(gè)數(shù)是否小于未計(jì)算出近似高程的個(gè)數(shù)是否小于未知點(diǎn)高程點(diǎn)的個(gè)數(shù)知點(diǎn)高程點(diǎn)的個(gè)數(shù),若是再次進(jìn)行循環(huán),若否,計(jì)算完畢(即水準(zhǔn)網(wǎng)中未知高程點(diǎn)的近似高程已全部計(jì)算出來),水準(zhǔn)網(wǎng)中所有未知點(diǎn)的高程存放到H()數(shù)組中了。六、六、誤差方程的組成誤差方程的組成 對于水準(zhǔn)網(wǎng)平差,關(guān)鍵就是誤差方程的構(gòu)建,即相關(guān)矩陣的生成,這里所指的矩陣是誤差方程系數(shù)矩陣B和常數(shù)矩陣L。如何來組成這兩個(gè)矩陣呢?還是一個(gè)方程一個(gè)方程的建立,最后將相應(yīng)值存儲(chǔ)到矩陣B和L的對應(yīng)元素中。系

17、數(shù)矩陣系數(shù)矩陣B B構(gòu)建算法描述:構(gòu)建算法描述:1、定義一個(gè)存儲(chǔ)系數(shù)B的數(shù)組B(),其行數(shù)為觀測測段數(shù),列數(shù)為所選必要參數(shù)個(gè)數(shù);定義一個(gè)存儲(chǔ)常數(shù)陣L的數(shù)組L(),其行數(shù)為測段個(gè)數(shù),列數(shù)為1;2、取出第j個(gè)測段(測段數(shù)據(jù)存儲(chǔ)在測段信息數(shù)組中的),首先判斷該測段起點(diǎn)是否為已知點(diǎn)(也即其在已知點(diǎn)數(shù)組H()中的下標(biāo)位于起算高程點(diǎn)個(gè)數(shù)內(nèi),如:起算高程點(diǎn)個(gè)數(shù)為5,起點(diǎn)在已知數(shù)組中的下標(biāo)為i,當(dāng)i小于等于5時(shí),說明該起點(diǎn)為已知點(diǎn),若i大于5,則說明該起點(diǎn)為未知點(diǎn),同樣終點(diǎn)是什么類型的點(diǎn)也通過該方法判斷),記下其在a()中的下標(biāo)i1(原始已知點(diǎn)數(shù)為i0);判斷該測段終點(diǎn)是什么類型的點(diǎn)記下其在a()中的下標(biāo)i2

18、; a)、若該測段的起點(diǎn)為未知點(diǎn),且終點(diǎn)也為未知點(diǎn),則矩陣B的第j行、第(i1-i0)列的元素為-1,第j行、第(i2 i0)列的元素為1;那么第j行其它元素都為 0; b)、若該測段的起點(diǎn)為已知點(diǎn),且終點(diǎn)為未知點(diǎn),則矩陣B的第j行、第(i2-i0)列的元素為1,該行其它元素都為0; c)、若該測段的起點(diǎn)為未知點(diǎn),且終點(diǎn)為已知點(diǎn),則矩陣B的第j行、第(i1-i0)列的元素為-1,該行其它元素都為0;3、根據(jù)每測段起點(diǎn)和終點(diǎn)點(diǎn)的類型,就可以計(jì)算出這個(gè)誤差方程的常數(shù)項(xiàng),把計(jì)算出的數(shù)值放到L()中去就可以了;4、遍歷完所有的測段,即可構(gòu)建出矩陣B和常數(shù)項(xiàng)矩陣L,即其所有的元素都存儲(chǔ)到數(shù)組B()和L(

19、)中了。七、法方程的組建七、法方程的組建有了B和L,基于最小二乘原理,對所選參數(shù)求偏導(dǎo)后的式子,推出法方程,即:0PlBxPBBTT直接計(jì)算法方程系數(shù)陣和常數(shù)陣(累加法)直接計(jì)算法方程系數(shù)陣和常數(shù)陣(累加法) 組成法方程是間接平差的關(guān)鍵步驟,由間接平差模型可知,在誤差方程系數(shù)矩陣B,誤差方程常數(shù)項(xiàng)以及觀測值的權(quán)P確定時(shí),法方程系數(shù)矩陣和自由項(xiàng)向量分別為BTPB和BTPL,組成法方程就是矩陣的乘積。但在水準(zhǔn)網(wǎng)平差程序設(shè)計(jì)時(shí),為了節(jié)省存儲(chǔ)單元,可不必為誤差方程矩陣B開辟存儲(chǔ)數(shù)組,權(quán)陣也只保存對角線上的元素,組成法方程的計(jì)算就不是矩陣乘積運(yùn)算了,而是根據(jù)觀測值的起始點(diǎn)號、終點(diǎn)號、高差值和觀測值的權(quán)直

20、接計(jì)算出法方程的系數(shù)陣BTPB和自由項(xiàng)向量BTPL。000000kkkkkKTkkkkkkKTklplplPBPpppBPB 應(yīng)將應(yīng)將p pk k、- -p pk k累加到法方程系數(shù)矩陣的什么位累加到法方程系數(shù)矩陣的什么位置?若第置?若第K K個(gè)觀測高差的起點(diǎn)點(diǎn)號和終點(diǎn)點(diǎn)號分個(gè)觀測高差的起點(diǎn)點(diǎn)號和終點(diǎn)點(diǎn)號分別為別為i i、j j,則需將,則需將p pk k累加到法方程系數(shù)矩陣的第累加到法方程系數(shù)矩陣的第i i行第行第i i列和第列和第j j行第行第j j列,將列,將- -p pk k累加到法方程系累加到法方程系數(shù)矩陣的第數(shù)矩陣的第j j行和第行和第i i列。同理,應(yīng)將列。同理,應(yīng)將p pk k

21、l lk k和和- -p pk kl lk k分別累加到法方程常數(shù)項(xiàng)的第分別累加到法方程常數(shù)項(xiàng)的第j j行和第行和第i i行中。行中。 組成法方程的過程就是以觀測值總數(shù)為循環(huán)組成法方程的過程就是以觀測值總數(shù)為循環(huán)界,逐個(gè)觀測值計(jì)算累加項(xiàng)的過程,在第界,逐個(gè)觀測值計(jì)算累加項(xiàng)的過程,在第k 個(gè)循個(gè)循環(huán)中,所做的工作如下:環(huán)中,所做的工作如下:(1)獲得高差的起點(diǎn)點(diǎn)號)獲得高差的起點(diǎn)點(diǎn)號i和終點(diǎn)號和終點(diǎn)號j;(2)獲得起點(diǎn)和終點(diǎn)的高程值)獲得起點(diǎn)和終點(diǎn)的高程值Hi和和Hj;(3)計(jì)算誤差方程的自由項(xiàng))計(jì)算誤差方程的自由項(xiàng)lk=Hj-Hi-hk;(4)將)將pk、pklk累加到法方程系數(shù)陣和法方程自累

22、加到法方程系數(shù)陣和法方程自由項(xiàng)的相應(yīng)單元中。由項(xiàng)的相應(yīng)單元中。 可以將法方程系數(shù)矩陣和法方程常數(shù)項(xiàng)矩陣的可以將法方程系數(shù)矩陣和法方程常數(shù)項(xiàng)矩陣的計(jì)算定義成一個(gè)函數(shù)計(jì)算定義成一個(gè)函數(shù)Ca_ATPA()。void CLevelingAdjust:ca_ATPA() int t=m_Pnumber; for(int i=0; it*(t+1)/2; i+) ATPAi=0.0; for(i=0; it; i+) ATPLi=0.0;for(int k=0; km_Lnumber; k+) int i=StartPk;int j=EndPk; double Pk=Pk; double Lk=Lk-(H

23、eightj-Heighti); ATPLi-=Pk*Lk;ATPLj+=Pk*Lk;ATPAij(i,i)+=Pk;ATPAij(j,j)+=Pk;ATPAij(i,j)-=Pk; 八、水準(zhǔn)網(wǎng)平差定權(quán)八、水準(zhǔn)網(wǎng)平差定權(quán) 水準(zhǔn)網(wǎng)平差中還有涉及到權(quán)陣P的確定,有了權(quán)陣P ,和我們上面所構(gòu)建出來的B和l ,就可以很容易的進(jìn)行參數(shù)改正值和觀測值改正值的解算了。 我們一般怎樣來定權(quán)?設(shè)有觀測值Li(i=1,2,n)它們的方差 為若選定一常數(shù) , 定義 ,并稱P為觀測值Li的權(quán)。對于一組觀測值,其權(quán)之比等于相應(yīng)方差的倒數(shù)之比。這表明,方差越小,其權(quán)越大;或者說精度越高,其權(quán)越大。因此權(quán)可以作為比較觀測值

24、之間的精度高低的一種指標(biāo)。), 2 , 1(2nii0220iip結(jié)論:(1) 選擇了一個(gè) ,即對應(yīng)一組權(quán);(2) 一組觀測值的權(quán),其大小是隨 的不同而異,但不論選何值,權(quán)之間的比例關(guān)系始終不變;(3)為了使全能夠起到比較精度的作用,在同一問題中只能選取一個(gè) 值,不能同時(shí)選取幾個(gè) ,否則就破壞了權(quán)之間的比例關(guān)系;(4)只要給出了一定的觀測條件,不一定要知道每公里觀測高差精度的具體數(shù)值,就可以確定出權(quán)的數(shù)值。0000 水準(zhǔn)網(wǎng)平差中定權(quán),一般二種方式,即以距離距離定權(quán)定權(quán)和測站數(shù)測站數(shù)定權(quán)。 一般觀測量之間是相互獨(dú)立的,故在構(gòu)建權(quán)矩陣P時(shí),只有對角線上的元素 非零,非對角元素都為零。 注意采用以上

25、方法定權(quán)時(shí),必須滿足“每測每測站觀測高差精度相等站觀測高差精度相等”或者“每公里觀測高差每公里觀測高差精度相等精度相等”這一前提條件。九、精度的評定九、精度的評定 間接平差采用了與條件平差不同的數(shù)學(xué)模型,但它們是在相同的平差原理下進(jìn)行的,所以這兩種方法的計(jì)算出的結(jié)果是相同的。中誤差的估值為: 而對于 的計(jì)算,將誤差方程代入即可。平差參數(shù)的協(xié)方差陣 ,而對于平差函數(shù),其權(quán)函數(shù)式為: ,協(xié)因數(shù) 方差為:tnPVVT0PVVT12020BBXXXXNQDxFdTFNFFQFQBBTXXT1QD20水準(zhǔn)網(wǎng)如圖水準(zhǔn)網(wǎng)如圖1 1所示,共所示,共7 7個(gè)高程點(diǎn)、個(gè)高程點(diǎn)、1010個(gè)測段觀個(gè)測段觀測高差,觀測

26、值的每千米觀測中誤差為測高差,觀測值的每千米觀測中誤差為0.001m0.001m,已知高程和觀測高差分別見表,已知高程和觀測高差分別見表1 1及表及表2 2。水準(zhǔn)網(wǎng)平差程序設(shè)計(jì)實(shí)驗(yàn)中用例水準(zhǔn)網(wǎng)平差程序設(shè)計(jì)實(shí)驗(yàn)中用例水準(zhǔn)網(wǎng)路線水準(zhǔn)網(wǎng)路線 已知數(shù)據(jù)和觀測數(shù)據(jù)已知數(shù)據(jù)和觀測數(shù)據(jù)點(diǎn)名點(diǎn)名高程高程/m/mA0.000F11.414表表1 1 已知高程點(diǎn)已知高程點(diǎn)表表2 2 觀測高差與路線長度觀測高差與路線長度編號編號起點(diǎn)點(diǎn)號起點(diǎn)點(diǎn)號終點(diǎn)點(diǎn)號終點(diǎn)點(diǎn)號觀測高差觀測高差/m/m距離距離/m/m1AB73.79520.42AD14.00518.83AG14.16715.44CB71.9498.95DB59.78

27、014.26CD12.15912.87CE15.3649.88FE5.79719.69GE3.04415.110DG0.16910.0該水準(zhǔn)網(wǎng)平差數(shù)據(jù)文件(該水準(zhǔn)網(wǎng)平差數(shù)據(jù)文件(data.txtdata.txt)如下:)如下:10,7,2,0.00110,7,2,0.001A,0.000A,0.000F,11.414F,11.414A,B,73.795,20.4A,B,73.795,20.4A,D,14.005,18.8A,D,14.005,18.8A,G,14.167,15.4A,G,14.167,15.4C,B,71.949,8.9C,B,71.949,8.9D,B,59.780,14.2

28、D,B,59.780,14.2C,D,12.159,12.8C,D,12.159,12.8C,E,15.364,9.8C,E,15.364,9.8F,E,5.797,19.6F,E,5.797,19.6G,E,3.044,15.1G,E,3.044,15.1D,G,0.169,10.0D,G,0.169,10.01 1、水準(zhǔn)網(wǎng)程序設(shè)計(jì)中變量及數(shù)組說明、水準(zhǔn)網(wǎng)程序設(shè)計(jì)中變量及數(shù)組說明 n網(wǎng)中已知點(diǎn)數(shù):m_knPnumberm_knPnumbern網(wǎng)中總點(diǎn)數(shù):m_Pnumberm_Pnumbern先驗(yàn)權(quán)中誤差:M Mn單位權(quán)中誤:m_mum_mun存儲(chǔ)網(wǎng)中觀測測段高差個(gè)數(shù):m_GaochaNm_G

29、aochaNn存儲(chǔ)測段高差數(shù)組:gaocha()gaocha()n測段起點(diǎn)編號數(shù)組:StartP()StartP()n測段終點(diǎn)編號數(shù)組:EndP()EndP()n測段長度數(shù)組:Li()Li()n存儲(chǔ)已知高程與近似高程值數(shù)組:H()n誤差方程系數(shù)矩陣數(shù)組:B()n誤差方程常數(shù)項(xiàng)數(shù)組:L()n權(quán)陣數(shù)組:P()n存儲(chǔ)值的數(shù)組:p_vvn高程改正值數(shù)組:dx()n法方程系數(shù)矩陣數(shù)組:Q()n觀測高差改正值數(shù)組:v()2、數(shù)據(jù)文件讀入數(shù)據(jù)文件讀入 為了從數(shù)據(jù)文件中讀取數(shù)據(jù),首先利用VB6.0中的Open函數(shù)打開該數(shù)據(jù)文件,接著,按著數(shù)據(jù)文件中數(shù)據(jù)內(nèi)容的順序和格式順序和格式,先讀取網(wǎng)的概況信息數(shù)據(jù),再讀取

30、已知高程數(shù)據(jù),最后讀取觀測數(shù)據(jù)。1)讀取網(wǎng)的概況數(shù)據(jù),將總點(diǎn)數(shù)、已知點(diǎn)數(shù)、觀測值總數(shù)分別存儲(chǔ)到變量m_knPnumberm_knPnumber、 m_Pnumberm_Pnumber及及m_GaochaNm_GaochaN中。中。2)動(dòng)態(tài)定義數(shù)組。觀測高差起點(diǎn)點(diǎn)號數(shù)組StartP()、高差終點(diǎn)數(shù)組EndP()、觀測高程數(shù)組gaocha()、殘差數(shù)組v()、觀測值權(quán)P()與觀測高差數(shù)有關(guān);高程數(shù)組H()注意:動(dòng)態(tài)數(shù)組是先聲明,再動(dòng)態(tài)定義其大小。注意:動(dòng)態(tài)數(shù)組是先聲明,再動(dòng)態(tài)定義其大小。3 3、近似高程的推算(、近似高程的推算(ca_Hca_H()()近似高程的計(jì)算算法可參照該章節(jié)前面的內(nèi)容。在編

31、寫程序過程中,最好完成特有任務(wù)和功能的語句,定義成函數(shù)(或過程),以方便其調(diào)用。Sub ca_H() 水準(zhǔn)網(wǎng)中待定點(diǎn)近似高程計(jì)算水準(zhǔn)網(wǎng)中待定點(diǎn)近似高程計(jì)算Dim k1 As Integer, H_N As Integer H_N為計(jì)算出近似高程點(diǎn)個(gè)數(shù)為計(jì)算出近似高程點(diǎn)個(gè)數(shù)Dim c1 As Integer, c2 As IntegerH_N = 0Do While H_N (m_Pnumber - m_knPnumber) For k1 = 1 To m_GaochaN c1 = StartP(k1) 觀測高差起點(diǎn)觀測高差起點(diǎn) c2 = EndP(k1) 觀測高差終點(diǎn)觀測高差終點(diǎn) If H(c

32、1) = 0 And H(c2) 0 Then H(c1) = H(c2) - gaocha(k1) H_N = H_N + 1 End If If H(c1) 0 And H(c2) = 0 Then H(c2) = H(c1) + gaocha(k1) H_N = H_N + 1 End If NextLoopEnd Sub4 4、誤差方程系數(shù)矩陣、誤差方程系數(shù)矩陣B B和常數(shù)項(xiàng)矩陣和常數(shù)項(xiàng)矩陣L L的生成的生成Sub GouJianBL(H() As Double, StartP() As Integer, EndP() As Integer) 構(gòu)建誤差方程系數(shù)矩陣構(gòu)建誤差方程系數(shù)矩陣B B與與L L * * * * * * * * * * * * * * * * * * * * * * *H()H()為近似高程數(shù)組,為近似高程數(shù)組, StatPStatP()()為起點(diǎn)點(diǎn)號數(shù)組,為起點(diǎn)點(diǎn)號數(shù)組,EndPEndP()()為終點(diǎn)點(diǎn)號數(shù)組為終點(diǎn)點(diǎn)號數(shù)組 * * * * * * * * * * * * * * * * * * * * * * *Dim k1 As Integer, k2 As Integer, k3 As Integer, c1 As

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論