誤差理論與測量平差課程設(shè)計版.doc_第1頁
誤差理論與測量平差課程設(shè)計版.doc_第2頁
誤差理論與測量平差課程設(shè)計版.doc_第3頁
誤差理論與測量平差課程設(shè)計版.doc_第4頁
誤差理論與測量平差課程設(shè)計版.doc_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、誤差理論與測量平差課程設(shè)計報告 課題:水準(zhǔn)網(wǎng)嚴(yán)密平差及精度評定院校:系別:指導(dǎo)教師:班級:姓名:目錄一、目錄 -1二、序言 - 2三、設(shè)計思路 - 3四、程序流程圖 - 4五、程序及說明 - 5六、計算結(jié)果 -12七、總結(jié) - 15第二部分 序言1、 課程設(shè)計的性質(zhì)、目的和任務(wù)誤差理論與測量平差是一門理論與實(shí)踐并重的課程,其課程設(shè)計是測量數(shù)據(jù)處理理論學(xué)習(xí)的一個重要的實(shí)踐環(huán)節(jié),它是在我們學(xué)習(xí)了專業(yè)基礎(chǔ)課“誤差理論與測量平差基礎(chǔ)”課程后進(jìn)行的一門實(shí)踐課程。其目的是增強(qiáng)我們對誤差理論與測量平差基礎(chǔ)理論的理解,牢固掌握測量平差的基本原理和基本公式,熟悉測量數(shù)據(jù)處理的基本技能和計算方法,靈活準(zhǔn)確地應(yīng)用于

2、解決各類數(shù)據(jù)處理的實(shí)際問題,并能用所學(xué)的計算機(jī)理論知識,編制簡單的計算程序。2、誤差理論與測量平差課程和其它課程的聯(lián)系和分工這次課程設(shè)計中所用的數(shù)學(xué)模型和計算方法是我們在誤差理論與測量平差課程中所學(xué)的內(nèi)容,所使用的C程序語言使我們在計算機(jī)基礎(chǔ)課程中所學(xué)知識。誤差理論與測量平差課程設(shè)計是測量平差和計算機(jī)程序設(shè)計等課程的綜合實(shí)踐與應(yīng)用,同時也為我們今后步入工作崗位打下了一定基礎(chǔ)。3、 課程設(shè)計重點(diǎn)及內(nèi)容本次課程設(shè)計重點(diǎn)是培養(yǎng)我們正確應(yīng)用公式、綜合分析和解決問題的能力,以及計算機(jī)編程能力。另外它要求我們完成12個綜合性的結(jié)合生產(chǎn)實(shí)踐的題目。如目前生產(chǎn)實(shí)踐中經(jīng)常用到的水準(zhǔn)網(wǎng)嚴(yán)密平差及精度評定,邊角網(wǎng)(

3、導(dǎo)線)嚴(yán)密平差及精度評定等。此次我所選的課程設(shè)計課題是水準(zhǔn)網(wǎng)嚴(yán)密平差及精度評定,其具體內(nèi)容如下:根據(jù)題目要求,正確應(yīng)用平差模型列出觀測值條件方程、誤差方程和法方程;解算法方程,得出平差后的平差值及各待定點(diǎn)的高程平差值;評定各平差值的精度和各高程平差值的精度.具體算例為:如圖所示水準(zhǔn)網(wǎng),有2個已知點(diǎn),3個未知點(diǎn),7個測段。各已知數(shù)據(jù)及觀測值見下表(1) 已知點(diǎn)高程H1=5。016m , H2=6.016m (2)高差觀測值(m) 端點(diǎn)號高差觀測值m測段距離km序號1-31.3591。111-42。0091.722-30。3632。332-41.0122.74340.6572.453-50.238

4、1.4652-0。5952.67(3)求各待定點(diǎn)的高程;3-4點(diǎn)的高差中誤差;3號點(diǎn)、4號點(diǎn)的高程中誤差.第三部分 設(shè)計思路一、解題步驟(1)此次設(shè)計我所采用的模型為間接平差模型,根據(jù)已知條件我們可知觀測總數(shù)n=7,必要觀測數(shù)t=3(則多余觀測數(shù)r=n-t=4),因此我需先選定三個參數(shù),即3、4、5點(diǎn)的最或然高程X3、X4、X5(X=X0+x,X30=6。375、X40=7.025、X50=6.611;其中X0為參數(shù)的近似值,x為其改正值)為參數(shù).(2)列出條件方程,即將每一個觀測量的平差值分別表達(dá)成所選參數(shù)的函數(shù),H1+h1=X3、H1+h2=X4、H2+h3=X3、H2+h4=X4、X3+

5、h5=X4、X3+h6=X5、X5+h7=H2;整理后得出誤差方程,v1=x3、v2=x4、v3=x34、v4=x4-3、v5=-x3+x47、v6=-x3+x5-2、v7=x5,即v=Bxl的形式。(3)定權(quán),令每千米的觀測高差為單位權(quán)觀測,即Pi=1/Si,從而可寫出權(quán)陣P;根據(jù)誤差方程式又可得其系數(shù)矩陣B和自由項(xiàng)l,并由它們組成法方程N(yùn)BBx-W=0(其中NBB=BTPB,W=BTPl),法方程的個數(shù)等于所選參數(shù)的個數(shù)。(4)解算法方程,求出參數(shù)改正值x并計算參數(shù)的平差值X=X0+x。(5)由誤差方程計算V,并求出觀測量的平差值。為了檢查平差計算的正確性,將所求的值代入條件方程,看其是否

6、滿足方程。(6)精度評定,計算單位權(quán)中誤差,按照題設(shè)要求列出權(quán)函數(shù)式,再根據(jù)平差參數(shù)的協(xié)方差陣求出協(xié)因數(shù),最后求出某段高差中誤差,某些點(diǎn)的高程中誤差.二、程序設(shè)計思想考慮到在解題過程中一些計算的復(fù)雜性,我們需借助一些技術(shù)將計算簡單化,快捷化,因此在課程設(shè)計過程中,我們把一些C語言程序設(shè)計引入其中;通過一些簡單、明了的程序及子函數(shù)調(diào)用,我們就可以很方便快捷的求出用筆算比較繁瑣、費(fèi)時的矩陣乘積、矩陣的逆(如BTPB、BTPl)等運(yùn)算.第四部分 程序流程圖根據(jù)題目列出條件方程并寫成誤差方程的形式V=Bxl確定權(quán)陣,根據(jù)誤差方程得到矩陣B、l進(jìn)而寫出BT運(yùn)用C程序語言求出BTP,進(jìn)一步得到NBB=BT

7、PB、W=BTPl并求出NBB1用C程序求出參數(shù)的改正數(shù)x=NBB-1W根據(jù)C程序語言求Bx,進(jìn)而由V=Bx-l寫出各觀測值的改正數(shù)根據(jù)L=L+V求出各觀測值的平差值檢驗(yàn)所求各值是否正確,若無誤則往下進(jìn)行,反之檢查各步驟查出錯誤并改正由程序計算VTP進(jìn)而求出VTPV,求單位權(quán)中誤差,再根據(jù)權(quán)函數(shù)式、協(xié)因數(shù)傳播定律評定各觀測值及所求高程的精度第五部分 程序及說明一、矩陣相乘計算函數(shù)#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

8、1;j+) u=ik+j;cu=0.0; for(l=0;l<=n-1;l+) cu=cu+ain+lbl*k+j; return;1.計算BTPmain()int i,j;static double a37=BT;static double c37,b77=P;Matrixmul(a,b,3,7,7,c);printf(“n”);for(i=0;i<=2;i+)for(j=0;j<=6;j+) printf(“%8.4ft",cij; printf(“n");printf(“n”);return0;2.計算BTPB,即NBBmain()int i,j;s

9、tatic double a37=BTP;static double c33,b73=B;Matrixmul(a,b,3,7,3,c);printf(“n”);for(i=0;i=2;i+)for(j=0;j<=2;j+) printf(“%8.4ft”,cij; printf(“n”);printf(“n”);return0;3.計算BTPl,即Wmain()int i,j;static double a37=BTP;static double c31,b71=l;Matrixmul(a,b,3,7,1,c);printf(“n”);for(i=0;i=2;i+)for(j=0;j&l

10、t;=0;j+) printf(“8。4ft”,cij; printf(“n”);printf(“n”);return0;二、矩陣的逆計算函數(shù)(求NBB-1)#include "stdio。h” define M 3 void main() float MATM2M; float MAT1MM; float t; int i,j,k,l; /*/ /*對矩陣進(jìn)行初始化*/ for(i=0;i<M;i+) for(j=0;j<2M;j+) MAT1j=0'; /對MAT1矩陣賦初值 / for(i=0;iM;i+) for (j=0;j<M;j+) scanf

11、("f",MAT1j); /*打印目標(biāo)矩陣?/ printf(”原矩陣為:n”); for (i=0;i<M;i+) for (j=0;jM;j+) printf(”13。7f”,MAT1j); printf("n”); /*/ /對MAT1矩陣進(jìn)行擴(kuò)展,MAT1矩陣添加單位陣,由M*M變成2M2M矩陣 */ for(i=0;iM;i+) for(j=0;j<2M;j+) if (j<M) MATj=MAT1j; else if (j=M+i) MATj=1; else MATj=0; /對M矩陣進(jìn)行變換,使得前半部分矩陣成為單位陣,則 / /*

12、后半部分矩陣即為所求矩陣逆陣 */ for(i=0;iM;i+) /*對第i行進(jìn)行歸一化 / for (j=0;j2*M;j+) for(k=i+1;k<M;k+) MATj=MATj+MATkj; t=MAT; for(j=i;j<2*M;j+) MATj=MATj/t; /對矩陣進(jìn)行行變換,使得第i 列只有一個元素不為零,且為1/ for(k=0;kM;k+) if(k!=i) t=MATk; for (l=i;l2M;l+) MATkl=MATkl-MATlt; /*將后半部分矩陣即所求矩陣逆陣存入MAT2矩陣./ for(i=0;i<M;i+) for(j=0;jM;

13、j+) MAT1j=MATj+M; printf(”n"); /*/ /*輸出所求的逆陣/ printf("逆陣為:n"); for(i=0;iM;i+) for(j=0;jM;j+) printf(”8.4f”,MAT1j); printf(”n”); 4。求NBB1W,即改正數(shù)xmain()int i,j;static double a33=NBB-1;static double c31,b31=W;Matrixmul(a,b,3,3,1,c);printf(“n”);for(i=0;i=2;i+)for(j=0;j=0;j+) printf(“8.4ft&q

14、uot;,cij; printf(“n”);printf(“n”);return0;5。計算Bxmain()int i,j;static double a73=B;static double c71,b31=x;Matrixmul(a,b,7,3,1,c);printf(“n");for(i=0;i=6;i+)for(j=0;j=0;j+) printf(“8.4ft”,cij; printf(“n”);printf(“n");return0;6。計算VTPmain()int i,j;static double a17=VT;static double c17,b77=P;

15、Matrixmul(a,b,1,7,7,c);printf(“n");for(i=0;i=0;i+)for(j=0;j<=6;j+) printf(“%8。4ft”,cij; printf(“n”);printf(“n”);return0;7.計算VTPVmain()int i,j;static double a17=VTP;static double c11,b71=V;Matrixmul(a,b,1,7,1,c);printf(“n”);for(i=0;i<=0;i+)for(j=0;j=0;j+) printf(“%8。4ft”,cij; printf(“n”);p

16、rintf(“n");return0;注:程序中有下劃線部分在C語言環(huán)境中運(yùn)行時,需根據(jù)已知條件及所求結(jié)果進(jìn)行替換!第六部分 計算結(jié)果根據(jù)條件方程及定權(quán)原則寫出B、l、P及BTB=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.0l=0.0, 0.0, 4。0, 3.0, 7。0, 2.0, 0.0P=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.43

17、48,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.3846BT=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一、在矩陣相乘計算函數(shù)的程序前提下,進(jìn)行以下子程序的調(diào)用1。替換第1個程序中的BT 、P并運(yùn)行程序得到BTP BTP=0。9091,

18、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。38462.替換第2個程序中的BTP、B并運(yùn)行程序得到BTPB,即NBBNBB=2.4748,-0.4167,-0。7143,0.4167,1.3753,0。0,0.7143,0.0,1.09893.替換第3個程序中的BTP、l并運(yùn)行程序得到BTPl,即WW=2。6063,4.0281,1。4286二、在矩陣的逆計算函數(shù)程序中進(jìn)行以下操作 運(yùn)行程序,按照提示及以上運(yùn)算得到的矩陣NBB輸入其元素,運(yùn)行

19、的結(jié)果即為NBB1 NBB1=0。5307,0.1608,0。3450,0。1608,0.7758,0.1045,0。3450,0。1045,1.1342三、再次在矩陣相乘計算函數(shù)的程序前提下,進(jìn)行以下子程序的調(diào)用1。替換第4個程序中的NBB1、W并運(yùn)行程序得到NBB-1W,即所選參數(shù)的改正數(shù)xx=0.2426,2.8552,1。14212.替換第5個程序中的B、x并運(yùn)行程序得到BxBx=-0.2426, 2.8552, 0。2464, 2。8552, 3.0978, 1。3847, 1。14213。根據(jù)V=Bx-l求出各觀測值的改正數(shù)V,并寫出VT,然后替換第6個程序中的VT、P并運(yùn)行程序得

20、到VTPV=-0.2426, 2。8552, 4.2426, 0.1448, 3.9022, 0.6153, -1.1421VT=0。2426,2.8552,4.2426,0.1448,3.9022,-0.6153,1.1421VTP=0.2205,1.6794,-1。8447,0.0536,1。6260,-0.4395,-0。43934.替換第7個程序中的VTP、V并運(yùn)行程序得到VTPVVTPV=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

溫馨提示

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

評論

0/150

提交評論