
高程拟合上机报告.pdf
9页GPS 水准拟合上机实验报告班级:测绘 1202 姓名:余健学号:12016*** 2一、实验目的1.深入理解 GPS水准原理2.利用 MATLAB 实现几何内插法拟合GPS水准高程二、实验设备50 个 GPS水准数据,选择 10 个为已知点,其余点为未知点;MATLAB软件三、实验原理曲面拟合法是用于GPS 的分布在一定区域的时候, 且可以选择数学曲面拟合该区域的似大地水准面,构造适当的数学模型,计算该区域内的高程异常值,然后求出正常高具体思想是:已知测区的若干已知水准点,并且用GPS 测定这些点的高程, 利用公式求得这些点的高程异常,已知点的平面坐标是已知的,所以利用其平面坐标的(x,y)和高程异常值ξ构造出来的数学模型拟合最为接近该测区的似大地水准面,然后内插求出未知点的高程异常值,进而求出正常高详细内容如下:测站点的大地高H 和正常高 h 之间有如下关系:h = H – ξ------------ ①多项式函数拟合的基本思想是在小区域GPS 网内,将大地水准面看成曲面(或平面) ,将高程异常表示为平面坐标(dB,dL )的函数,通过网中起算点(既进行了GPS 测量又进行了几何水准联测的点)已知点的高程异常确定测区的似大地水准面形状,3求出其余各点的高程异常,然后根据式①求出其他点的正常高,其数学模型为:ξ = f(dB , dL) + ε--------------------------②式中 f(x , y) 是拟合的似大地水准面,ε是拟合误差f(dB,dL)=...****543210dLdBadLdLadBdBadLadBaa-- ----------------------- ③dB=B-0B,dL=L-LLLn10其中: n 为 GPS 网中点的数量,(B,L)为已知点的大地坐标,...,,,,,a543210aaaaa为拟合待定参数;x,y 为各 GPS点的平面坐标近似值,一般取平面坐标减去全部点平面坐标的均值。
本次试验采用二次多项式拟合,故:取③式中的一、二次项将大地水准面拟合为:f(dB,dL) =dLdBadLdLadBdBadLadBaa***543210- --------------------------------------④即得二次曲面拟合模型:ξ=[543210aaaaaa]dLdBdLdLdBdB***dLdB1+ ε --------- ⑤4每一个起算点可以组成一个上式,若共存在m 个这样的点,则可列出 m 个方程:m5242321022252242232221021115214213121101aadBdBaξmmmmmmmdLdBadLadBaLaBaLBadLadBadLadBadLadLadBadLaa---------- ⑥从而组成误差方程:V= Bx - L ----------------------------------------⑦上式中, B=mmmmmmdLdBdLdBdLdBdLdBdLdBLdBdLdLdBdLB2222222222112121111....d1dBd1,x=543210aaaaaaTL=mT...21解得PLBTxTPBB)(1------------------------------------⑧解算出ia即可求出网中其余点的高程异常,并利用式①求出各未知点的正常高h。
四、实验步骤1.打开 MATLAB ,单击菜单栏NewFunction,进入代码编辑界面5a. b. 2.程序如下% 选定 10 个已知点a=[4160726 469370 43.085 15.395; 4154896 473772 47.677 19.758; 4159270 473622 37.002 9.137; 4148735 474714 56.859 28.900; 4157177 474356 43.904 15.993; 4153413 476134 78.045 50.071; 4157949 476233 41.697 13.721; 4151556 477565 51.519 23.492; 4155573 476918 33.57 5.574; 4157027 477814 32.715 4.685]; % 求经度 B 和纬度 L 的平均值SumB=0; SumL=0; for j=1:10 SumB = SumB+a(j,1); SumL = SumL+a(j,2); end AB=SumB/10; AL=SumL/10; % 确定误差方程的系数矩阵x x=zeros(10,6); for i=1:10 x(i,1)=1.0; 6x(i,2)=a(i,1)-AB; x(i,3)=a(i,2)-AL; x(i,4)=(a(i,1)-AB)*(a(i,1)-AB); x(i,5)=(a(i,2)-AL)*(a(i,2)-AL); x(i,6)=(a(i,1)-AB)*(a(i,2)-AL); end x % 系数% 确定误差方程中的l l=zeros(10,1); for i=1:10 l(i,1)=a(i,3)-a(i,4); end % 求出未知数 a0、a1、a2、a3、a4 、a5 、a6 的值,这些值存放在矩阵A 中s=x'*x; t=inv(s); u=x'*l; A=t*u; % 确定其他未知点的正常高format long b=[4149569 479940 35.852 7.734; 4152803 479819 35.099 7.007; 4155546 479795 33.292 5.211; 4159369 479113 32.411 4.358; 4157612 479861 32.857 4.746; 4147678 482166 40.737 12.527; 4155194 482154 34.026 5.838; 4159612 482603 33.772 5.596; 4151539 482291 35.689 7.470; 4157232 483485 33.418 5.190; 4150583 485202 65.076 36.737; 4158508 485355 39.009 10.710; 4160739 485636 32.066 3.779; 4156273 486046 105.537 77.212; 4154803 487445 128.872 100.495; 4157419 488532 32.045 3.628; 4163806 488447 37.03 8.681; 4163116 490930 34.798 6.400; 74146497 486936 49.149 20.761; 4153030 487566 84.576 56.159; 4143589 488117 44.983 16.582; 4148280 487969 58.323 29.881; 4150278 488166 86.432 57.977; 4156103 490412 36.14 7.665; 4146715 490503 59.754 31.249; 4149128 490823 88.67 60.139; 4154168 491023 100.893 72.352; 4155429 491935 76.64 48.093; 4144712 492338 49.964 21.421; 4148524 494523 39.018 10.372; 4150861 494172 52.246 23.604; 4154013 493828 71.39 42.776; 4146430 495124 33.804 5.158; 4145664 498357 32.367 3.633; 4148161 497419 32.36 3.630; 4143343 500731 64.272 35.468; 4145375 500943 58.95 30.142; 4144379 504035 31.911 3.044; 4142039 504085 37.269 8.389; 4139017 504544 37.935 9.068;] y=zeros(40,6); for i=1:40 y(i,1)=1.0; y(i,2)=b(i,1)-AB; y(i,3)=b(i,2)-AL; y(i,4)=(b(i,1)-AB)*(b(i,1)-AL); y(i,5)=(b(i,2)-AL)*(b(i,2)-AL); y(i,6)=(b(i,1)-AB)*(b(i,2)-AL); end N=y*A; v=zeros(40,1); for i=1:40 v(i,1)=N(i,1)-b(i,4)-b(i,3); end v 2. 结果如下v = 8.009856529119695 3.755104594858473 80.130847681703031 -4.944092169033343 -2.637729064516080 10.459648457575462 0.572133290109377 -5.239739479221257 5.368969245265220 -2.108366285281019 6.590176539675184 -3.781851677697794 -6.696553673154273 -0.837413587839492 1.096102518306822 -2.325603346542781 -10.645678926353902 -9.644241677259835 11.933274058498142 3.382783639838920 15.734162783980658 9.577986152066323 6.962823616087121 -0.577744052430560 11.619612347244008 8.467881062239499 1.906271080788926 0.296903445373658 14.223631437249381 9.254853761135784 6.224165191483714 2.153594985813669 11.976460579137409 12.971437073612442 9.737668211508407 15.941165849675812 13.349526012323309 14.661229576546468 17.620352917555202 21.474294417506947 9五、实验心得MATLAB确实是一个很强大的软件, 很多功能它都能实现, 所以要经常学习,以便掌握这个强大的软件。
做实验前弄清楚原理再写程序就会容易很多。












