熊志强+肖腾飞

摘 要:对GPS高程曲面拟合的研究有很多,通常人们实现GPS高程曲面拟合都是用单一的编程语言。而文章则介绍结合两种编程语言更加方便地实现GPS高程二次曲面拟合。

关键词:GPS高程;二次曲面拟合;MATLAB;c语言

1 概述

随着GNSS技术的发展,GPS高程测量也更加受到重视,但GPS直接测出的为地面点的大地高,与水准高之间存在高程异常,因此,若想直接利用GPS测定水准高,需要拟合出当地的似大地水准面,通常采用二次曲面拟合,用编程实现。而编程语言较多,利用MATLAB和c语言各自的优势相结合实现二次曲面拟合会更加便捷。

2 GPS高程及二次曲面拟合原理

在实际应用中,地面点的高程采用正常高系统。地面点的正常高H_r是地面点沿铅垂线至似大地水准面的距离。这种高程是通过水准测量来确定的。地面点的大地高H是地面点沿铅垂线至参考椭球面的距离。这就有必要找出GPS点H与Hr的关系,并用一定的方法将H转换为Hr。似大地水准面至椭球面间的高差ζ,叫做高程异常。如果知道了各GPS点的高程异常ζ值,则可由各GPS点的大地高H求得各点的正常高Hr。

当GPS点布设成一定区域面时,可以应用数学曲面拟合法求待定点的正常高。其原理是,根据测区中已知点的平面坐标x,y和ζ值,拟合出测区似大地水准面,再内插出待求点的ζ,从而求出待求点的正常高。设点的ζ与平面坐标x,y有以下关系: ζ=f(x,y)+ ε,式中f(x,y)为ζ中趋势值,ε为误差。设

f(x,y)=a0+a1x+a2y+a3x2+a4y2+a5xy+… (1)

写成矩阵形式有:ζ=XB+ε (2)

式中ζ=[ζ1 ζ2…ζn]T,B=[a1 a2…an]T,ε=[ε1 ε2…εn]T。

X=1 x1 y1 x12 …1 x2 y2 x22 …1 xn yn xn2 … (3)

对每个已知点,都可列数以上方程,在ε的平方和最小的条件下,解出各ai,再按式(2)求出待求点的ζ,从而求出Hr。对于二次曲面拟合,由式(1)可知,只需求出六个参数即可确定函数f(x,y),便可根据坐标求出待求点的高程异常,从而求出正常高。

3 MATLAB和c语言的优势

MATLAB的基本数据单位是矩阵,它的指令表达与数学中常用的形式相似。例如,矩阵方程Ax=b在MATLAB中被写成A*x=b,若要通过A、b求x,只需写x=A\b即可,完全不需要对矩阵的乘法和求逆进行编程。因此用MATLAB解决计算问题比用其它语言简捷得多。进行GPS高程二次曲面拟合则主要为矩阵的运算,根据(2)式,在MATLAB中即可很方便地求出曲面拟合的各参数。

用MATLAB求解出拟合参数后,便可用C语言进行编程,求出各待求点的正常高。使用C语言有很大的优势。C语言使用方便灵活。比起其它许多高级语言简练,因此输入程序时工作量少。C语言用函数作为程序的模块单位,便于实现程序的模块化。利用C语言编写高程拟合程序,只需定义一个主函数和一个求高程异常的函数即可。在拟合区域改变后,只需改变拟合参数的值即可同样求出待求点的正常高,所以利用C语言求正常高十分方便。

4 流程及程序设计

为使利用MATLAB和C语言结合进行GPS高程拟合更加清晰,现写出流程图:

为验证可行性,以某一测区数据为例进行试验。选用六个已知点坐标求解出六个拟合参数,然后拟合出二次曲面。

经过编程计算,拟合出的二次曲面为(式中单位均为m):

f(x,y)=-40.880-1.285×10-3x+6.300×10-4y+1.210×10-6x2-6.760×10-7y2+1.47×10-6xy (4)

将(4)式中的拟合参数输入C语言代码中,即可求出待求点的正常高。

5 结论

结果表明,利用MATLAB结合C语言可以更加方便地实现区域GPS高程二次曲面拟合,利用MATLAB求解拟合参数不需要对矩阵的乘法和求逆进行编程。利用C语言根据拟合参数求正常高也十分简捷,对于不同的测区,只需用不同的拟合参数即可,只需更改参数值而无需更改代码。所以利用MATLAB结合C语言进行GPS高程曲面拟合在实际测量工作中会更加便捷,有很大的实用价值。

参考文献

[1]徐绍铨,张华海.GPS测量原理及应用[M].武汉:武汉大学出版社,2008.

[2]魏鑫.MATLAB R2014a从入门到精通[M].北京:电子工业出版社,2015.

[3]譚浩强.C程序设计[M].北京:清华大学出版社,2010.

[4]刘磊.用MATLAB实现GPS水准高程拟合[J].城市建设理论研究,2013(14).

[5]刘谊,汪民主,汪金花.GPS高程二次曲面拟合及其程序[J].矿山测量,2004,6(2).

高程拟合的matlab代码,利用MATLAB结合C语言实现GPS高程二次曲面拟合相关推荐

  1. matlab 二次曲面拟合,利用MATLAB结合C语言实现GPS高程二次曲面拟合

    最小二乘法 c语言实现线性,matlab进行拟合及 熊志强+肖腾飞 摘 要:对GPS高程曲面拟合的研究有很多,通常人们实现GPS高程曲面拟合都是用单一的编程语言.而文章则介绍结合两种编程语言更加方便地 ...

  2. Matlab:利用Matlab编程实现模拟分子布朗运动的动画展示

    Matlab:利用Matlab编程实现模拟分子布朗运动的动画展示 目录 输出结果 实现代码 输出结果 实现代码 %Brownian motion clf; n=20; s=0.02; x = rand ...

  3. Matlab:利用Matlab实现布朗运动模拟

    Matlab:利用Matlab实现布朗运动模拟 目录 输出结果 实现代码 输出结果 实现代码 n=40 s=0.04 x=rand(n,1)-0.5; y=rand(n,1)-0.5; h=plot( ...

  4. 环形网络潮流计算matlab,利用matlab编程计算任意环形网络牛拉法潮流计算程序

    环形网络潮流计算matlab,利用matlab编程计算任意环形网络牛拉法潮流计算程序,程序通用性强,通过修改参数可以得到任意节点和网络的环形网络牛拉法潮流计算. YID:696064261479453 ...

  5. rmse算法matlab代码,rmse matlab代码

    [2 4],:,index).^2); end %计算 RMSE RMS_ekf... RMSE 16 15 14 1 程序提示:将变量 x4 加进回归方程(Move ... 于是,在 Matlab ...

  6. JAVA调用Matlab代码(MATLAB 2014a)

    本人考虑到用java绘制图形以及实现一些计算效率不高,实现起来有些复杂.而利用MATLAB写好相应的计算函数,然后打包成jar包供Java调用,在某些情况下会更加方便.或者有些时候会涉及到使用Java ...

  7. 幅度调制信号 matlab,《利用MATLAB实现信号的幅度调制与解调.doc

    <利用MATLAB实现信号的幅度调制与解调 课程设计论文 姓名:姜勇 学院:机电与车辆工程学院 专业:电子信息工程2班 学号:1665090208 安徽科技学院 学年第 学期 < > ...

  8. 坎蒂雷赋权法 matlab,干货 | 利用MATLAB实现FMCW雷达中的常用角度估计方法

    其中在介绍角度估计中,通过对接收差频信号在快慢时间维度的扩展,增加了空域的信息.扩展后的接收差频信号可以表示为 其中k表示接收天线的个数,d为天线间距. 在"干货|利用MATLAB实现FMC ...

  9. matlab repmat_利用MATLAB实现KNN

    KNN是指通过测量不同特征值之间的距离进行分类. 1.它的本质是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别,其中K通常是不大于2 ...

  10. 桩基MATLAB代码,基于Matlab GUI平台桥梁桩基承载力计算系统.pdf

    2012年9月第9期 城市道桥与防洪 桥梁结构 103 基于MatlabGUI平台的桥梁桩基承载力计算系统 周玉龙 ,姚永丁,羊 东 (中国水 电顾 问集团华东勘测设计研究院,浙江杭州 310014) ...

最新文章

  1. 【Android游戏开发十五】关于Android 游戏开发中 OnTouchEvent() 触屏事件的性能优化笔记! .
  2. python【蓝桥杯vip练习题库】ADV-100第二大整数
  3. 有一次去校内的某个礼堂看电影,在门口有个长得很斯文的陌生人一脸神秘地跟我说:师弟,能不能进去之后,把电影票从厕所的气窗扔出来给我……...
  4. P1866 编号 python
  5. CSS学习笔记----选择器与字体(字系)
  6. 如何通过eclipse查看、阅读hadoop2.4源码
  7. zzbower入门教程
  8. 360 x TiDB|性能提升 10 倍,360 如何轻松抗住双十一流量
  9. 计算机桌面文件能单独设密码吗,win7文件夹设置密码_给单独一个文件夹设密码...
  10. 西北乱跑娃 --- bottle微框架从注册到应用(三)
  11. Banner大小之国际标准
  12. H2O.ai初步使用
  13. 面向2018年的设计趋势
  14. python飞机大战联网版_Python 飞机大战搞怪版本
  15. LeetCode908.最小差值
  16. 有意义的人生与学习——跟随大师感悟人生
  17. 『51单片机』串口通信配置
  18. GUI programming with wxPython 之 XRC
  19. WIFI覆盖“瓷都”景区 电信助力景德镇打造“智慧城市”
  20. STM32开发实例 基于STM32单片机的温室监测系统

热门文章

  1. 如何使用CDSN写博客
  2. Win11、Linux 双系统安装方法
  3. C语言猜数字游戏代码
  4. 贪吃蛇(C语言实现)
  5. android开发需要那些Java基础
  6. R语言入门(3)——R包的使用
  7. MySQL用命令行运行sql文件
  8. vbs代码弹计算机,如何恶搞朋友的电脑?超简单的vbs代码
  9. zul使用java_zk中zul页面中组件的id和java类中的变量绑定实现
  10. 史上最强图标下载,3124个图标专辑,超过60万免费图标提供下载