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

下載本文檔

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

文檔簡介

1、目錄一、目錄 -1二、序言 - 2三、設(shè)計思路 - 3四、程序流程圖 - 4五、程序及說明 - 5六、計算結(jié)果 -12七、總結(jié) - 15第二部分 序言1、 本課程設(shè)計的性質(zhì)、目的和任務(wù)誤差理論與測量平差是一門理論與實踐并重的課程,其課程設(shè)計是測量數(shù)據(jù)處理理論學習的一個重要的實踐環(huán)節(jié),它是在我們學習了專業(yè)基礎(chǔ)課“誤差理論與測量平差基礎(chǔ)”課程后進行的一門實踐課程。其目的是增強我們對誤差理論與測量平差基礎(chǔ)理論的理解,牢固掌握測量平差的基本原理和基本公式,熟悉測量數(shù)據(jù)處理的基本技能和計算方法,靈活準確地應用于解決各類數(shù)據(jù)處理的實際問題,并能用所學的計算機理論知識,編制簡單的計算程序。2、誤差理論與測量

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

3、:根據(jù)題目要求,正確應用平差模型列出觀測值條件方程、誤差方程和法方程;解算法方程,得出平差后的平差值及各待定點的高程平差值;評定各平差值的精度和各高程平差值的精度。具體算例為:如圖所示水準網(wǎng),有2個已知點,3個未知點,7個測段。各已知數(shù)據(jù)及觀測值見下表(1) 已知點高程H1=5.016m , H2=6.016m (2)高差觀測值(m) 端點號高差觀測值m測段距離km序號1-31.3591.111-42.0091.722-30.3632.332-41.0122.743-40.6572.453-50.2381.465-2-0.5952.67(3)求各待定點的高程;3-4點的高差中誤差;3號點、4號

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

5、、v3=x3-4、v4=x4-3、v5=-x3+x4-7、v6=-x3+x5-2、v7=-x5,即v=Bx-l的形式。(3)定權(quán),令每千米的觀測高差為單位權(quán)觀測,即Pi=1/Si,從而可寫出權(quán)陣P;根據(jù)誤差方程式又可得其系數(shù)矩陣B和自由項l,并由它們組成法方程NBBx-W=0(其中NBB=BTPB,W=BTPl),法方程的個數(shù)等于所選參數(shù)的個數(shù)。(4)解算法方程,求出參數(shù)改正值x并計算參數(shù)的平差值X=X0+x。(5)由誤差方程計算V,并求出觀測量的平差值。為了檢查平差計算的正確性,將所求的值代入條件方程,看其是否滿足方程。(6)精度評定,計算單位權(quán)中誤差,按照題設(shè)要求列出權(quán)函數(shù)式,再根據(jù)平差參

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

7、程序語言求Bx,進而由V=Bx-l寫出各觀測值的改正數(shù)根據(jù)L=L+V求出各觀測值的平差值檢驗所求各值是否正確,若無誤則往下進行,反之檢查各步驟查出錯誤并改正由程序計算VTP進而求出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-1;j+) u=i*k+j;cu=0.0; for(l=0;l<

8、;=n-1;l+) cu=cu+ai*n+l*bl*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;static double a37=BTP;static double c33,b7

9、3=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<=0;j+) printf(“%8.4ft”,cij; pri

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

11、;,&MAT1j); /*打印目標矩陣?*/ printf("原矩陣為:n"); for (i=0;i<M;i+) for (j=0;j<M;j+) printf("%13.7f",MAT1j); printf("n"); /*/ /*對MAT1矩陣進行擴展,MAT1矩陣添加單位陣,由M*M變成2M*2M矩陣 */ for(i=0;i<M;i+) for(j=0;j<2*M;j+) if (j<M) MATj=MAT1j; else if (j=M+i) MATj=1; else MATj=0;

12、/*對M矩陣進行變換,使得前半部分矩陣成為單位陣,則 */ /*后半部分矩陣即為所求矩陣逆陣 */ for(i=0;i<M;i+) /*對第i行進行歸一化 */ for (j=0;j<2*M;j+) for(k=i+1;k<M;k+) MATj=MATj+MATkj; t=MAT; for(j=i;j<2*M;j+) MATj=MATj/t; /*對矩陣進行行變換,使得第i 列只有一個元素不為零,且為1*/ for(k=0;k<M;k+) if(k!=i) t=MATk; for (l=i;l<2*M;l+) MATkl=MATkl-MATl*t; /*將后

13、半部分矩陣即所求矩陣逆陣存入MAT2矩陣。*/ for(i=0;i<M;i+) for(j=0;j<M;j+) MAT1j=MATj+M; printf("n"); /*/ /*輸出所求的逆陣*/ printf("逆陣為:n"); for(i=0;i<M;i+) for(j=0;j<M;j+) printf("%8.4f",MAT1j); printf("n"); 4.求NBB-1W,即改正數(shù)xmain()int i,j;static double a33=NBB-1;static doub

14、le 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”,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; p

15、rintf(“n”);printf(“n”);return0;6.計算VTPmain()int i,j;static double a17=VT;static double c17,b77=P;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;Matrixmu

16、l(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”);printf(“n”);return0;注:程序中有下劃線部分在C語言環(huán)境中運行時,需根據(jù)已知條件及所求結(jié)果進行替換!第六部分 計算結(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

17、.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.4348,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.

18、0,0.0,0.0,0.0,0.0,0.0,1.0,-1.0一、在矩陣相乘計算函數(shù)的程序前提下,進行以下子程序的調(diào)用1.替換第1個程序中的BT 、P并運行程序得到BTP BTP=0.9091,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并運行程序得到BTPB,即NBBNBB=2.4748,-0.4167,-0.7143,-0.4167,1.3753,0.0,-0.7143,0.0,1.09893.替

19、換第3個程序中的BTP、l并運行程序得到BTPl,即WW=-2.6063,4.0281,1.4286二、在矩陣的逆計算函數(shù)程序中進行以下操作 運行程序,按照提示及以上運算得到的矩陣NBB輸入其元素,運行的結(jié)果即為NBB-1 NBB-1=0.5307,0.1608,0.3450,0.1608,0.7758,0.1045,0.3450,0.1045,1.1342三、再次在矩陣相乘計算函數(shù)的程序前提下,進行以下子程序的調(diào)用1.替換第4個程序中的NBB-1、W并運行程序得到NBB-1W,即所選參數(shù)的改正數(shù)xx=-0.2426,2.8552,1.14212.替換第5個程序中的B、x并運行程序得到BxBx

20、=-0.2426, 2.8552, -0.2464, 2.8552, 3.0978, 1.3847, -1.14213.根據(jù)V=Bx-l求出各觀測值的改正數(shù)V,并寫出VT,然后替換第6個程序中的VT、P并運行程序得到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并運行程序得到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

溫馨提示

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

評論

0/150

提交評論