基于matlab的控制网平差程序设计,基于Matlab的水准网间接平差程序设计
基于 Matlab 的水準網間接平差程序設計① 趙亞紅② 周文國 ( 華北科技學院土木工程系,北京 東燕郊 101601) 摘 要: 設計水準網數據結構,存儲在文本中,按照水準網的起點、終點、觀測數據相對應關系建立矩陣,利用 Matlab 強大的矩陣運算功能,通過間接平差方法,按照最小二乘原理,求得任意水準網的未知點的最或然高程值,對平差結果輸出存儲,程序直觀、簡便。并用實例驗證了其正確性及通用性。 關鍵詞: 水準網; 間接平差; Matlab 中圖分類號:P207 + . 2 文獻標識碼: A 文章編號: 1672 -7169( 2011) 03 -0058 -03 水準網間接平差的的具體過程是: ( 1) 根據水準網形進行分析,列誤差方程; ( 2) 根據誤差方程系數列法方程; ( 3) 解算法方程,求參數 X 及V; ( 4) 求最或然值、精度評定。其中重點是誤差方程的列立及誤差方程系數矩陣的確定,在大多數利用 Matlab 計算水準網平差問題的文獻中,誤差方程的系數矩陣均為手動輸入,不適用于任何網形,而且對于輸出結果沒有一定的存儲文件,針對以上存在的缺陷,本文利用 Matlab 強大的矩陣運算且易學易懂等優點,通過程序設計,利用. mat 文件,根據水準網自身數據結構的特點,自動生成系數矩陣 B,進行平差計算,最終以文本的格式輸出最終結果,簡便快捷,減少了工作量。 1 水準網數據結構的設計 水準網根據其網形可分為附合、閉合和支水準。其中應用最廣的為附合和閉合水準網。不管何種網形,一條水準路線包括四個數據: 起始點、高差、距離、終點,且 H起 + h高差 = H終 ,因此在進行數據結構的設計中,必須體現出終點、起點從而判斷其與高差關系。在本程序設計中,利用 QD [],ZD[],hc[],S[],DD[]分別表示起點點號、終點點號、高差、距離、所有點點號所組成的矩陣。在進行程序設計時,為了簡便快捷,利用讀入數據形式,讀取所有已知數據,格式如下: 已知點個數 未知點個數 觀測值個數已知點點號 已知點高程起點點號 終點點號 觀測高差 距離值 利用 Matlab 的函數 fopen 語句打開文本文件。針對不同的網形,只需修改已知數據文件即可。 2 水準網程序設計 根據水準網平差的計算過程,本程序設計的流程如圖 1 圖 1 水準網間接平差程序流程圖 2. 1 水準網所有點高程確定 在水準網間接平差計算過程中,按照已知點的個數確定參數個數,有已知點時,參數個數等于未知點個數,沒有已知點時參數個數等于未知點個數減 1,但是在進行方程列立時,為了計算方便首先要求得參數 X 的近似值,但是對于用程序實 85 第 8 卷 第 3 期 華北科技學院學報 2011 年 7 月 ① ② 收稿日期:2011 -03 -14 作者簡介: 趙亞紅( 1982 - ) ,女,河北衡水人,碩士,華北科技學院土木工程系講師,研究方向: 測繪工程教學、遙感圖像及數據 處理。 現其自動求取近似值比較麻煩,為了 Matlab 實現運算簡單,因此在本程序中,所有未知點的高程起始值均為 0,通過以下代碼實現。 HHH = HH; % HH 為讀取文件中已知點高程矩陣,HHH 為未知點高程 %zd 總點數,wz 未知點數,fori =1: b HHH( zd - wz + i) = 0; % 給未知高程點添加高程零生成 HHH,b 為未知點個數 end 2. 2 水準網誤差方程系數矩陣生成 對于水準網間接平差而言,最重要的計算步驟不外乎誤差方程的列立,而對于程序設計重點和難點就是自動生成
總結
以上是生活随笔為你收集整理的基于matlab的控制网平差程序设计,基于Matlab的水准网间接平差程序设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ACM 动态规划(简称dp) 分类
- 下一篇: matlab牛顿拉夫逊算法,牛顿拉夫逊法