王俊鋒 賈文祥
黃河交通學院交通工程學院 河南焦作 454950
測量平差是測繪工程專業一門必修的專業基礎核心課程,為測繪類專業領域內其他課程提供數據處理的基礎。本課程是測繪學科的基礎理論,對該課程掌握的好壞直接關系到測繪人才培養的質量[1]。測量平差課程涉及高等數學、線性代數、概率論與數理統計以及測量學基礎等課程知識,是應用數學理論與計算方法在測量數據處理中的典型應用,這也導致了該課程具有理論性強、公式推導多、計算難度大的特點[2],給教學帶來了較大的困難。因此,除了對平差基本原理和方法的講授,測量平差課程教學要偏重對工程實踐能力的培養,這要求必須在知識的傳授方法上進行改革[3,4]。
隨著計算機技術不斷被引入測量領域,近幾年部分高校已經將測量平差軟件應用到測量平差課程的教學過程中,取得了一些成效。但絕大部分測量平差軟件只關注原始數據的輸入和結果的輸出,缺少平差計算過程,并不適合進行教學[5]。MatLab是一款高性能數值運算軟件[6],具有強大的矩陣運算、繪圖、數據分析和可視化、動態仿真等功能,能拓寬學生知識面,培養創新思維[7],功能強大的統計工具箱和簡單的編程語言可以方便地進行測量數據處理。將MatLab應用于教學可以節省課堂授課時間,學生在實踐過程中也易于加深理解,使測量平差課程教學達到很好的效果。
測量平差課程具有理論性強、計算量大等特點,它基于概率和數理統計方法分析測量數據,以最小二乘原理作為處理測量數據的基本原則,詳細闡述了誤差理論與測量平差的基本原理與方法。通過分析各高校測量平差教學現狀,測量平差教學中存在的問題主要表現在以下三方面。(1)對學生知識的掌握和綜合運用能力的要求較高。要求學生具備很好的數學基礎,能夠熟練應用數學知識解決平差問題,學生學習難度較大,學習積極性低。(2)課程內容多,但開設學時少,學習任務重。現階段課堂教學為了保證在規定學時內將課程內容授完,導致每次授課都會安排大量教學內容,加之測繪專業其他基礎課都有大量實踐學時,使得測量平差課程的教學時間縮短,教師在授課時只能重教學過程而兼顧不了教學效果[8]。(3)實踐教學欠缺,理論教學與實踐教學脫節[4]。理論教學由于任務重、耗時多,很難保證學生有充足的時間進行平差基本技能的實踐,這不利于學生將理論與實踐相結合,也不能提高學生的綜合素質與創新能力。
經典測量平差只討論帶有偶然誤差的觀測值,偶然誤差是隨機變量,因而概率論中隨機變量的數字特征和正態分布是誤差理論與測量平差基礎中的基本統計理論。MatLab統計工具箱作為一個強有力的統計分析工具,提供了20種概率分布,包含測量平差中常用的正態分布、χ2分布、F分布、t分布等,且每種分布都提供了五類有用的函數,即概率密度函數、累積分布函數、逆累積分布函數、隨機產生器與方差計算函數。在研究偶然誤差的規律性中,根據這些函數能夠方便地實現某種概率分布曲線的繪制。
偶然誤差Δ是服從均值為0的正態分布的隨機變量,其概率密度函數為:

舉例,根據偶然誤差Δ服從Δ~N(0,σ2),可以應用MatLab繪制出σ=2,σ2=3的正態分布概率密度函數的誤差分布曲線,具體操作如下:
x=-6:0.1:6 %定義隨機變量區間
y1=normpdf(x,0,2);
y2=normpdf(x,0,3); %密度函數值
plot(x,y1,'r',x,y2,'b') %繪制正態分布曲線
gtext('N (0, 2^2)')
gtext('N (0, 3^2)') %標注
運行結果如圖1所示,能容易地看出誤差曲線與方差之間的關系,通過課堂演示,使學生對偶然誤差的規律性有更深刻的認識,以便學生更好地理解使用方差衡量精度的依據。同時,使用命令p=normcdf(x,mu,sigma)能夠計算誤差落在(-σ2,σ2)(-2σ2,2σ)(-3σ2,3σ)的概率,也可以使用函數p=normspec(specs,mu,sigma)直接繪制出對應不同區間的誤差曲線,如運行p=normspec([-4,4],0,2)可直接畫出誤差在(-2σ2,2σ)的概率(如圖2所示)。通過變換參數得到不同的誤差分布曲線,便于學生理解掌握正態分布和極限誤差等概念。

圖1 正態分布曲線

圖2 (-2σ,2σ)誤差分布概率圖
測量平差課程的數據處理主要是基于矩陣的運算,所以在測量平差的計算中,采用MatLab進行計算是非常方便的。測量平差數據處理中常用的矩陣運算主要包括矩陣的生成、矩陣的運算、矩陣的轉置、矩陣求逆和矩陣求廣義逆等。
(1)矩陣的生成,在MatLab環境中,不需要對創建的變量對象給出類型說明和維數。因此,最簡單的創建矩陣的方法是直接輸入矩陣的元素序列,同時用load命令和fread函數輸入矩陣。
(2)矩陣的和、差、乘運算,假定有2個矩陣A和B,則可由A+B和A-B實現矩陣的和差運算,由A×B實現矩陣的乘運算;這里需滿足對矩陣維數的要求:和差的運算要求矩陣A和矩陣B的維數相同,乘的運算要求矩陣A的列數等于矩陣B的行數,否則MatLab將給出錯誤信息,提示用戶2個矩陣的維數不匹配。
(3)矩陣轉置的運算,求矩陣A的轉置矩陣B(這里令B=AT),可由B=A’實現。
(4)矩陣求逆的運算,求矩陣A的逆矩陣B(這里令B=A-1),可在命令窗口輸入語句B=inv(A)實現。
(5)矩陣求廣義逆的運算,求矩陣A的廣義逆矩陣B,可在命令窗口輸入語句B=PINV(A)實現。
在測量工作生產實踐中觀測數據普遍采用最小二乘原理進行平差以提高精度,測量平差課程教學主要講授經典測量平差的方法,包括條件平差、附有參數的條件平差、間接平差和附有限制條件的間接平差4種平差函數模型。由于間接平差具有函數模型簡單、易于計算機編程實現等優點[9],下面將采用間接平差函數模型說明MatLab在平差計算中的應用。
間接平差的函數模型為:

間接平差的隨機模型為:

平差的準則為:

間接平差是在最小二乘準則要求下求出誤差方程中的待定參數 ,在數學中是求多元函數的極值問題[10]。以文獻[1]中第136頁例7-8中水準網(如圖3所示)平差為例,進行間接平差計算和精度評定。

圖3 水準網示意圖
程序如下:
disp('-------水準網間接平差示例-------')
Ha=5.016, Hb=6.016 %已知點高程/m
n=6, t=2; % n為觀測值的個數,t為必要觀測數
L=[1.359; 2.009; 0.363; 1.012; 0.657; -0.357] %觀測高差/m
B=[1 0; 0 1;1 0; 0 1; -1 1; -1 0 ] %誤差方程系數矩陣
l=[0; 0; 4; 3; 7; 2] %誤差方程常數項
C=ones(1,6) %單位權觀測高差的線路公里數
S=[1.1, 1.7, 2.3, 2.7, 2.4, 4.0] %線路長度
P=C./S %定義觀測值的權
P=diag(P) %定義權陣
disp('參數的解')
x=inv(B'*P*B)*B'*P*l
disp('誤差V/mm, 各待定點的高程平差值L1/m')
V=B*x- l %誤差方程(mm)
L1 =L + V/1000 %觀測值的平差值
disp('精度評定')
delta=sqrt(V'*P*V/(n -t)) %單位權中誤差(mm)
程序運行后,平差結果為:各待定點的平差高程Hc=6.374 8 m,Hd=7.027 9m,He=6.612 1 m,單位權中誤差delta=2.2 mm。
通過算例容易看出,利用MatLab進行測量平差數據計算,只要在命令窗口輸入幾條語句,即可完成平差過程中復雜的計算,平差過程直觀易懂,可逐行跟蹤運行程序,使程序更易調試,計算更加簡便,使學生對于平差原理的掌握更扎實。因此既便于教師授課時例題的講解,對學生完成作業和課程設計有益,也加深了學生對測量平差過程的理解。
除此之外,MatLab在測量平差課程教學中還有很多應用,如進行誤差數據處理、平差系統的統計假設檢驗、回歸分析、曲面擬合及可視化等方面的講解演示。
測量平差課程由于理論性強、計算難度大、數學知識運用要求高,傳統的教學方法形式固定、手段單一,很難保證收到良好的教學效果。特別是在信息化測繪背景下,不斷出現和發展的測繪新技術對現代測量數據處理提出了更高的要求。將MatLab應用到測量平差課程教學中,對教學方法進行改革,鞏固和加強學生對誤差理論和現代測量數據處理方法的應用,有利于提升教學質量,提高學生動手實踐和創新能力,使該課程教學達到了預期的效果。