版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 誤差理論與測量平差</b></p><p><b> 課</b></p><p><b> 程</b></p><p><b> 設(shè)</b></p><p><b> 計</b></p>
2、;<p><b> 報</b></p><p><b> 告</b></p><p> 課題:水準網(wǎng)嚴密平差及精度評定</p><p><b> 院校:</b></p><p><b> 系別:</b></p><
3、;p><b> 指導(dǎo)教師:</b></p><p><b> 班級:</b></p><p><b> 姓名:</b></p><p><b> 目錄</b></p><p> 一、目錄 --------------------------
4、--1</p><p> 二、序言 ---------------------------- 2</p><p> 三、設(shè)計思路 ------------------------ 3</p><p> 四、程序流程圖 ---------------------- 4</p><p> 五、程序及說明 -----------------
5、----- 5</p><p> 六、計算結(jié)果 -----------------------12</p><p> 七、總結(jié) --------------------------- 15</p><p><b> 第二部分 序言</b></p><p> 1、 課程設(shè)計的性質(zhì)、目的和任務(wù)</p>
6、<p> 誤差理論與測量平差是一門理論與實踐并重的課程,其課程設(shè)計是測量數(shù)據(jù)處理理論學(xué)習(xí)的一個重要的實踐環(huán)節(jié),它是在我們學(xué)習(xí)了專業(yè)基礎(chǔ)課“誤差理論與測量平差基礎(chǔ)”課程后進行的一門實踐課程。其目的是增強我們對誤差理論與測量平差基礎(chǔ)理論的理解,牢固掌握測量平差的基本原理和基本公式,熟悉測量數(shù)據(jù)處理的基本技能和計算方法,靈活準確地應(yīng)用于解決各類數(shù)據(jù)處理的實際問題,并能用所學(xué)的計算機理論知識,編制簡單的計算程序。</p>
7、<p> 2、誤差理論與測量平差課程和其它課程的聯(lián)系和分工</p><p> 這次課程設(shè)計中所用的數(shù)學(xué)模型和計算方法是我們在誤差理論與測量平差課程中所學(xué)的內(nèi)容,所使用的C程序語言使我們在計算機基礎(chǔ)課程中所學(xué)知識。誤差理論與測量平差課程設(shè)計是測量平差和計算機程序設(shè)計等課程的綜合實踐與應(yīng)用,同時也為我們今后步入工作崗位打下了一定基礎(chǔ)。</p><p> 3、 課程設(shè)計重點及
8、內(nèi)容</p><p> 本次課程設(shè)計重點是培養(yǎng)我們正確應(yīng)用公式、綜合分析和解決問題的能力,以及計算機編程能力。另外它要求我們完成1-2個綜合性的結(jié)合生產(chǎn)實踐的題目。如目前生產(chǎn)實踐中經(jīng)常用到的水準網(wǎng)嚴密平差及精度評定,邊角網(wǎng)(導(dǎo)線)嚴密平差及精度評定等。此次我所選的課程設(shè)計課題是水準網(wǎng)嚴密平差及精度評定,其具體內(nèi)容如下:</p><p> 根據(jù)題目要求,正確應(yīng)用平差模型列出觀測值條件方程
9、、誤差方程和法方程;解算法方程,得出平差后的平差值及各待定點的高程平差值;評定各平差值的精度和各高程平差值的精度。</p><p><b> 具體算例為:</b></p><p> 如圖所示水準網(wǎng),有2個已知點,3個未知點,7個測段。各已知數(shù)據(jù)及觀測值見下表</p><p> 已知點高程H1=5.016m , H2=6.016m (
10、2)高差觀測值(m)</p><p> ?。?)求各待定點的高程;3-4點的高差中誤差;3號點、4號點的高程中誤差。</p><p><b> 第三部分 設(shè)計思路</b></p><p><b> 一、解題步驟</b></p><p> ?。?)此次設(shè)計我所采用的模型為間接平差模型,根據(jù)已知條件
11、我們可知觀測總數(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ù)。</p><p> (2)列出條件方程,即將每一個觀測量的平差值分別表達成所選參數(shù)的函數(shù),H1+h1=X3、H1+h2=X4、H2+h3=X3、H2+h4
12、=X4、X3+h5=X4、X3+h6=X5、X5+h7=H2;整理后得出誤差方程,v1=x3、v2=x4、v3=x3-4、v4=x4-3、v5=-x3+x4-7、v6=-x3+x5-2、v7=-x5,即v=Bx-l的形式。</p><p> ?。?)定權(quán),令每千米的觀測高差為單位權(quán)觀測,即Pi=1/Si,從而可寫出權(quán)陣P;根據(jù)誤差方程式又可得其系數(shù)矩陣B和自由項l,并由它們組成法方程NBBx-W=0(其中NBB=
13、BTPB,W=BTPl),法方程的個數(shù)等于所選參數(shù)的個數(shù)。</p><p> ?。?)解算法方程,求出參數(shù)改正值x并計算參數(shù)的平差值X=X0+x。</p><p> (5)由誤差方程計算V,并求出觀測量的平差值。為了檢查平差計算的正確性,將所求的值代入條件方程,看其是否滿足方程。</p><p> ?。?)精度評定,計算單位權(quán)中誤差,按照題設(shè)要求列出權(quán)函數(shù)式,再根
14、據(jù)平差參數(shù)的協(xié)方差陣求出協(xié)因數(shù),最后求出某段高差中誤差,某些點的高程中誤差。</p><p><b> 二、程序設(shè)計思想</b></p><p> 考慮到在解題過程中一些計算的復(fù)雜性,我們需借助一些技術(shù)將計算簡單化,快捷化,因此在課程設(shè)計過程中,我們把一些C語言程序設(shè)計引入其中;通過一些簡單、明了的程序及子函數(shù)調(diào)用,我們就可以很方便快捷的求出用筆算比較繁瑣、費時的
15、矩陣乘積、矩陣的逆(如BTPB、BTPl)等運算。</p><p> 第四部分 程序流程圖</p><p><b> ↓</b></p><p><b> ↓</b></p><p><b> ↓</b></p><p><b> ↓
16、</b></p><p><b> ↓</b></p><p><b> ↓</b></p><p><b> ↓</b></p><p> 第五部分 程序及說明</p><p> 一、矩陣相乘計算函數(shù)</p><
17、;p> #include “stdio.h”</p><p> void Matrix(a,b,m,n,k,c)</p><p> int m,n,k;</p><p> double a[],b[],c[];</p><p><b> {</b></p><p> int i,
18、j,l,u;</p><p> for(i=0;i<=m-1;i++)</p><p> for(j=0;j<=k-1;j++)</p><p><b> {</b></p><p> u=i*k+j;c[u]=0.0;</p><p> for(l=0;l<=n-1;
19、l++)</p><p> c[u]=c[u]+a[i*n+l]*b[l*k+j];</p><p><b> }</b></p><p><b> return;</b></p><p><b> }</b></p><p><b>
20、 1.計算BTP</b></p><p><b> main()</b></p><p><b> {</b></p><p><b> int i,j;</b></p><p> static double a[3][7]=BT;</p>
21、<p> static double c[3][7],b[7][7]=P;</p><p> Matrixmul(a,b,3,7,7,c);</p><p> printf(“\n”);</p><p> for(i=0;i<=2;i++)</p><p><b> {</b></p>
22、;<p> for(j=0;j<=6;j++)</p><p> printf(“%8.4f\t”,c[i][j];</p><p> printf(“\n”);</p><p><b> }</b></p><p> printf(“\n”);</p><p>&l
23、t;b> return0;</b></p><p><b> }</b></p><p> 2.計算BTPB,即NBB</p><p><b> main()</b></p><p><b> {</b></p><p>&l
24、t;b> int i,j;</b></p><p> static double a[3][7]=BTP;</p><p> static double c[3][3],b[7][3]=B;</p><p> Matrixmul(a,b,3,7,3,c);</p><p> printf(“\n”);</p&
25、gt;<p> for(i=0;i<=2;i++)</p><p><b> {</b></p><p> for(j=0;j<=2;j++)</p><p> printf(“%8.4f\t”,c[i][j];</p><p> printf(“\n”);</p>&l
26、t;p><b> }</b></p><p> printf(“\n”);</p><p><b> return0;</b></p><p><b> }</b></p><p> 3.計算BTPl,即W</p><p><b&g
27、t; main()</b></p><p><b> {</b></p><p><b> int i,j;</b></p><p> static double a[3][7]=BTP;</p><p> static double c[3][1],b[7][1]=l;<
28、;/p><p> Matrixmul(a,b,3,7,1,c);</p><p> printf(“\n”);</p><p> for(i=0;i<=2;i++)</p><p><b> {</b></p><p> for(j=0;j<=0;j++)</p>
29、<p> printf(“%8.4f\t”,c[i][j];</p><p> printf(“\n”);</p><p><b> }</b></p><p> printf(“\n”);</p><p><b> return0;</b></p><p&g
30、t;<b> }</b></p><p> 二、矩陣的逆計算函數(shù)(求NBB-1)</p><p> #include "stdio.h" </p><p> #define M 3 </p><p> void main() </p><p><b> {
31、 </b></p><p> float MAT[M][2*M]; </p><p> float MAT1[M][M]; </p><p><b> float t; </b></p><p> int i,j,k,l; </p><p> /***************
32、********************************/ </p><p> /*對矩陣進行初始化*/ </p><p> for(i=0;i<M;i++) </p><p> for(j=0;j<2*M;j++) </p><p> MAT1[j]='\0'; </p><p
33、> /*對MAT1矩陣賦初值 */ </p><p> for(i=0;i<M;i++) </p><p> for (j=0;j<M;j++) </p><p> scanf("%f",&MAT1[j]); </p><p> /*打印目標矩陣?*/ </p><p
34、> printf("原矩陣為:\n"); </p><p> for (i=0;i<M;i++) </p><p><b> { </b></p><p> for (j=0;j<M;j++) </p><p> printf("%13.7f",MA
35、T1[j]); </p><p> printf("\n"); </p><p> } /********************************************/ </p><p> /*對MAT1矩陣進行擴展,MAT1矩陣添加單位陣,由M*M變成2M*2M矩陣 */ </p><p> for(
36、i=0;i<M;i++) </p><p> for(j=0;j<2*M;j++) </p><p> if (j<M) MAT[j]=MAT1[j]; </p><p> else if (j==M+i) MAT[j]=1; </p><p> else MAT[j]=0; </p><p>
37、; /*對M矩陣進行變換,使得前半部分矩陣成為單位陣,則 */ </p><p> /*后半部分矩陣即為所求矩陣逆陣 */ </p><p> for(i=0;i<M;i++) </p><p><b> { </b></p><p> /*對第i行進行歸一化 */ </p><p
38、> for (j=0;j<2*M;j++) </p><p> for(k=i+1;k<M;k++) </p><p> MAT[j]=MAT[j]+MAT[k][j]; </p><p><b> t=MAT; </b></p><p> for(j=i;j<2*M;j++) <
39、/p><p> MAT[j]=MAT[j]/t; </p><p> /*對矩陣進行行變換,使得第i 列只有一個元素不為零,且為1*/ </p><p> for(k=0;k<M;k++) </p><p><b> if(k!=i) </b></p><p><b> {
40、</b></p><p> t=MAT[k]; </p><p> for (l=i;l<2*M;l++) </p><p> MAT[k][l]=MAT[k][l]-MAT[l]*t; </p><p><b> } </b></p><p><b> }
41、</b></p><p> /*將后半部分矩陣即所求矩陣逆陣存入MAT2矩陣。*/ </p><p> for(i=0;i<M;i++) </p><p><b> { </b></p><p> for(j=0;j<M;j++) </p><p> MAT1[j
42、]=MAT[j+M]; </p><p> printf("\n"); </p><p><b> } </b></p><p> /*********************************************/ </p><p> /*輸出所求的逆陣*/ </p>
43、<p> printf("逆陣為:\n"); </p><p> for(i=0;i<M;i++) </p><p><b> { </b></p><p> for(j=0;j<M;j++) </p><p> printf("%8.4f",MA
44、T1[j]); </p><p> printf("\n"); </p><p><b> } </b></p><p><b> }</b></p><p> 4.求NBB-1W,即改正數(shù)x</p><p><b> main()&l
45、t;/b></p><p><b> {</b></p><p><b> int i,j;</b></p><p> static double a[3][3]=NBB-1;</p><p> static double c[3][1],b[3][1]=W;</p>&
46、lt;p> Matrixmul(a,b,3,3,1,c);</p><p> printf(“\n”);</p><p> for(i=0;i<=2;i++)</p><p><b> {</b></p><p> for(j=0;j<=0;j++)</p><p>
47、 printf(“%8.4f\t”,c[i][j];</p><p> printf(“\n”);</p><p><b> }</b></p><p> printf(“\n”);</p><p><b> return0;</b></p><p><b>
48、; }</b></p><p><b> 5.計算Bx</b></p><p><b> main()</b></p><p><b> {</b></p><p><b> int i,j;</b></p><p
49、> static double a[7][3]=B;</p><p> static double c[7][1],b[3][1]=x;</p><p> Matrixmul(a,b,7,3,1,c);</p><p> printf(“\n”);</p><p> for(i=0;i<=6;i++)</p>
50、<p><b> {</b></p><p> for(j=0;j<=0;j++)</p><p> printf(“%8.4f\t”,c[i][j];</p><p> printf(“\n”);</p><p><b> }</b></p><p
51、> printf(“\n”);</p><p><b> return0;</b></p><p><b> }</b></p><p><b> 6.計算VTP</b></p><p><b> main()</b></p>
52、<p><b> {</b></p><p><b> int i,j;</b></p><p> static double a[1][7]=VT;</p><p> static double c[1][7],b[7][7]=P;</p><p> Matrixmul(a,
53、b,1,7,7,c);</p><p> printf(“\n”);</p><p> for(i=0;i<=0;i++)</p><p><b> {</b></p><p> for(j=0;j<=6;j++)</p><p> printf(“%8.4f\t”,c[i]
54、[j];</p><p> printf(“\n”);</p><p><b> }</b></p><p> printf(“\n”);</p><p><b> return0;</b></p><p><b> }</b></p&g
55、t;<p><b> 7.計算VTPV</b></p><p><b> main()</b></p><p><b> {</b></p><p><b> int i,j;</b></p><p> static double
56、a[1][7]=VTP;</p><p> static double c[1][1],b[7][1]=V;</p><p> Matrixmul(a,b,1,7,1,c);</p><p> printf(“\n”);</p><p> for(i=0;i<=0;i++)</p><p><b&g
57、t; {</b></p><p> for(j=0;j<=0;j++)</p><p> printf(“%8.4f\t”,c[i][j];</p><p> printf(“\n”);</p><p><b> }</b></p><p> printf(“\n”)
58、;</p><p><b> return0;</b></p><p> 注:程序中有下劃線部分在C語言環(huán)境中運行時,需根據(jù)已知條件及所求結(jié)果進行替換!</p><p><b> 第六部分 計算結(jié)果</b></p><p> 根據(jù)條件方程及定權(quán)原則寫出B、l、P及BT</p>
59、<p> B={{1.0,0.0,0.0},</p><p> {0.0,1.0,0.0},</p><p> {1.0,0.0,0.0},</p><p> {0.0,1.0,0.0},</p><p> {-1.0,1.0,0.0},</p><p> {-1.0,0.0,1.0},</
60、p><p> {0.0,0.0,-1.0}}</p><p><b> l={{0.0},</b></p><p><b> {0.0},</b></p><p><b> {4.0},</b></p><p><b> {3.0},&l
61、t;/b></p><p><b> {7.0},</b></p><p><b> {2.0},</b></p><p><b> {0.0}}</b></p><p> P={{0.9091,0.0,0.0,0.0,0.0,0.0,0.0},</p>
62、;<p> {0.0,0.5882,0.0,0.0,0.0,0.0,0.0},</p><p> {0.0,0.0,0.4348,0.0,0.0,0.0,0.0},</p><p> {0.0,0.0,0.0,0.3704,0.0,0.0,0.0},</p><p> {0.0,0.0,0.0,0.0,0.4167,0.0,0.0},</
63、p><p> {0.0,0.0,0.0,0.0,0.0,0.7143,0.0},</p><p> {0.0,0.0,0.0,0.0,0.0,0.0,0.3846}}</p><p> BT={{1.0,0.0,1.0,0.0,-1.0,-1.0,0.0},</p><p> {0.0,1.0,0.0,1.0,1.0,0.0,0.0},&
64、lt;/p><p> {0.0,0.0,0.0,0.0,0.0,1.0,-1.0}}</p><p> 一、在矩陣相乘計算函數(shù)的程序前提下,進行以下子程序的調(diào)用</p><p> 1.替換第1個程序中的BT 、P并運行程序得到BTP </p><p> BTP={{0.9091,0.0,0.4348,0.0,-0.4167,-0.7143
65、,0.0},</p><p> {0.0,0.5882,0.0,0.374,0.4167,0.0,0.0},</p><p> {0.0,0.0,0.0,0.0,0.0,0.7143,-0.3846}}</p><p> 2.替換第2個程序中的BTP、B并運行程序得到BTPB,即NBB</p><p> NBB={{2.4748,-0
66、.4167,-0.7143},</p><p> {-0.4167,1.3753,0.0},</p><p> {-0.7143,0.0,1.0989}}</p><p> 3.替換第3個程序中的BTP、l并運行程序得到BTPl,即W</p><p> W={{-2.6063},</p><p><b&g
67、t; {4.0281},</b></p><p><b> {1.4286}}</b></p><p> 二、在矩陣的逆計算函數(shù)程序中進行以下操作</p><p> 運行程序,按照提示及以上運算得到的矩陣NBB輸入其元素,運行的結(jié)果即為NBB-1 NBB-1={{0.5307,0.1608,0.3450},</p>
68、;<p> {0.1608,0.7758,0.1045},</p><p> {0.3450,0.1045,1.1342}}</p><p> 三、再次在矩陣相乘計算函數(shù)的程序前提下,進行以下子程序的調(diào)用</p><p> 1.替換第4個程序中的NBB-1、W并運行程序得到NBB-1W,即所選參數(shù)的改正數(shù)x</p><p&g
69、t; x={{-0.2426},</p><p><b> {2.8552},</b></p><p><b> {1.1421}}</b></p><p> 2.替換第5個程序中的B、x并運行程序得到Bx</p><p> Bx={{-0.2426},</p><p&
70、gt;<b> {2.8552},</b></p><p> {-0.2464},</p><p><b> {2.8552},</b></p><p><b> {3.0978},</b></p><p><b> {1.3847},</b>&
71、lt;/p><p> {-1.1421}}</p><p> 3.根據(jù)V=Bx-l求出各觀測值的改正數(shù)V,并寫出VT,然后替換第6個程序中的VT、P并運行程序得到VTP</p><p> V={{-0.2426},</p><p><b> {2.8552},</b></p><p> {-
72、4.2426},</p><p> {-0.1448},</p><p> {-3.9022},</p><p> {-0.6153},</p><p> {-1.1421}}</p><p> VT={{-0.2426,2.8552,-4.2426,-0.1448,-3.9022,-0.6153,-1.14
73、21}}</p><p> VTP={{-0.2205,1.6794,-1.8447,-0.0536,1.6260,-0.4395,-0.4393}}</p><p> 4.替換第7個程序中的VTP、V并運行程序得到VTPV</p><p> VTPV=19.7997</p><p> 四、求出各個觀測值平差值并按要求平定精度<
74、/p><p> X3=6.3748 m X4=7.0279 m X5=6.6122 m</p><p> h1=1.3588m h2=2.0119m h3=0.3588m h4=1.0119m h5=0.6531m h6=0.2374m h7=-0.5961m</p><p> 根據(jù)公式可求得單位權(quán)中誤差為 2.225mm</p>
75、<p> h34= X3- X4 Q34=[1 -1 0] NBB-1[1 -1 0]T=0.9849</p><p> H3=X3 Q34=[1 0 0] NBB-1[1 0 0]T=0.5307</p><p> H4= X4 Q34=[0 1 0] NBB-1[0 1 0]T=0.7758</p><p> 3、4點高差中誤差為 2.
76、208mm</p><p> 3號點高程中誤差為 1.621mm</p><p> 4號點高程中誤差為 1.96mm</p><p><b> 第七部分 總結(jié)</b></p><p> 通過這次誤差理論與測量平差的課程設(shè)計,我又對整本書有了一個更深的理解。其實課程設(shè)計就是將我們所學(xué)的理論知識應(yīng)用于實踐的過程,在這
77、一過程中,進一步掌握測量平差的基本原理和基本公式,并熟悉測量數(shù)據(jù)處理的基本技能和計算方法。</p><p> 或許我們已對《誤差理論與測量平差》這本書的理論知識有了一定了解,但將它應(yīng)用于實踐依然是我們的一個難點,尤其是將這門課程與計算機程序完美地結(jié)合。這便要求我們在原有的解題思路中加入C語言程序,并讓它來幫助我們解決矩陣的復(fù)雜運算。既然用到了程序,我們就必須保證其運算的簡潔性、正確性,尤其是在編寫過程中要認真檢
78、查,為程序順利運行打下基礎(chǔ)。另外在各個子程序調(diào)用過程中,我們要充分考慮其順序性并反復(fù)調(diào)試,以便得到理想結(jié)果。</p><p> 盡管在這次課程設(shè)計中遇到了很多困難,但我卻得到了不少收獲,并培養(yǎng)了自己正確應(yīng)用公式、綜合分析和解決問題的能力,同時也為今后步入社會打下了一定的基礎(chǔ)。另外,我們還要學(xué)會綜合利用自身所學(xué)的知識,并將它們聯(lián)系起來幫助自己有效地解決實際中的問題。</p><p> 總
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 誤差理論與測量平差課程設(shè)計--水準網(wǎng)嚴密平差及精度評定
- 誤差理論與測量平差課程設(shè)計報告
- 誤差理論與測量平差基礎(chǔ)課程設(shè)計報告
- 測量平差課程設(shè)計
- 《誤差理論與測量平差基礎(chǔ)》課程試卷及答案
- 測量平差課程設(shè)計報告
- 誤差理論與測量平差基礎(chǔ)試卷
- 水準網(wǎng)測量平差軟件設(shè)計與開發(fā).pdf
- 測量平差課程設(shè)計實習(xí)報告
- 誤差理論與測量平差基礎(chǔ)習(xí)題集
- 平差課程設(shè)計報告
- 中南大學(xué)控制網(wǎng)平差課程設(shè)計
- 水準網(wǎng)按間接平差算例
- 符合導(dǎo)線嚴密平差計算
- 誤差理論與測量平差基礎(chǔ)習(xí)題集1
- 測量平差中模型誤差處理理論.pdf
- 水準網(wǎng)條件平差程序設(shè)計-畢業(yè)設(shè)計
- 水準網(wǎng)平差軟件快速使用指南
- 畢業(yè)設(shè)計-- 水準網(wǎng)條件平差程序設(shè)計
- 水準路線 平 差 報 1
評論
0/150
提交評論