matlab高斯正反算程序6,高斯正反算MATLAB程序

时间: 2023-06-24 09:08:37 浏览: 85
以下是一个基于 MATLAB 的高斯正反算程序,其中包括高斯投影坐标的正算和反算。 高斯正算: ```matlab function [x,y]=gaussfor(l,b,L0,E0,a,f) %Bessel椭球体参数a=6377397.155m,f=1/299.1528128 %中央经度L0,中央经差E0 %WGS-84椭球体参数a=6378137m,f=1/298.2572236 %调用程序 %[x,y]=gaussfor(l,b,L0,E0,a,f) %输入:l,b,L0,E0,a,f %输出:x,y % 弧度制转换为度分秒制 d2mf=@(d)mfix(d*180/pi,0);%度转度分 mf2s=@(mf)(mf-fix(mf))*60;%度分转度秒 dms2mf=@(d,m,s)d+sign(d)*(abs(m)+abs(s)/60)/60;%度分秒转度分 % 常数 L0 = d2mf(L0); B= d2mf(b); L= d2mf(l); E= E0; % 椭球参数 e2 = f*(2-f); ee2 = e2/(1-e2); n = f/(2-f); A = a/(1+n)*(1+n^2/4+n^4/64); alpha = [1/2*n-2/3*n^2+5/16*n^3+41/180*n^4;-13/48*n^2+3/5*n^3+557/1440*n^4;61/240*n^3-103/140*n^4;49561/161280*n^4]; % 投影坐标 t = tan(B*pi/180); eta2 = ee2*cos(B*pi/180)^2; x0 = A*(1-e2)*((1+1/4*ee2+1/64*ee2^2)*B-rad(alpha,2)*sin(2*B)+1/8*rad(alpha,4)*sin(4*B)-1/256*rad(alpha,6)*sin(6*B)); x = x0 + A*t.*(rad(alpha,1)+rad(alpha,3)*cos(2*B)+rad(alpha,5)*cos(4*B)+rad(alpha,7)*cos(6*B)); y = A*(1-e2)*(rad(alpha,0)*L-rad(alpha,2)/2*sin(2*L)+rad(alpha,4)/4*sin(4*L)-rad(alpha,6)/6*sin(6*L)) + A*t.^2/2.*(cos(B*pi/180).^2.*rad(alpha,2)+1/3*rad(alpha,4)*cos(B*pi/180).^4+1/5*rad(alpha,6)*cos(B*pi/180).^6); % 转换为大地坐标系下的坐标 x = x + E; end function rad = rad(alpha,i) rad = 1; for j=1:i rad = rad*alpha(j); end end function x = mfix(x,n) if x<0 x = fix(x)-1/n; else x = fix(x); end end ``` 高斯反算: ```matlab function [l,b]=gaussinv(x,y,L0,E0,a,f) %Bessel椭球体参数a=6377397.155m,f=1/299.1528128 %中央经度L0,中央经差E0 %WGS-84椭球体参数a=6378137m,f=1/298.2572236 %调用程序 %[l,b]=gaussinv(x,y,L0,E0,a,f) %输入:x,y,L0,E0,a,f %输出:l,b % 弧度制转换为度分秒制 d2mf=@(d)mfix(d*180/pi,0);%度转度分 mf2s=@(mf)(mf-fix(mf))*60;%度分转度秒 dms2mf=@(d,m,s)d+sign(d)*(abs(m)+abs(s)/60)/60;%度分秒转度分 % 常数 L0 = d2mf(L0); E= E0; % 椭球参数 e2 = f*(2-f); ee2 = e2/(1-e2); n = f/(2-f); A = a/(1+n)*(1+n^2/4+n^4/64); alpha = [1/2*n-2/3*n^2+5/16*n^3+41/180*n^4;-13/48*n^2+3/5*n^3+557/1440*n^4;61/240*n^3-103/140*n^4;49561/161280*n^4]; % 投影坐标 y = y - E; Bf = y/A; Mf = A*((1-e2/4-3/64*e2^2-5/256*e2^3)*Bf-rad(alpha,2)/2*(sin(2*Bf)+1/2*rad(alpha,1)*sin(4*Bf)+1/4*rad(alpha,3)*sin(6*Bf)+1/6*rad(alpha,4)*sin(8*Bf))); Nf = A./sqrt(1-e2*sin(Bf*pi/180)^2); t = tan(Bf*pi/180); eta2 = ee2*cos(Bf*pi/180)^2; r = x/A; D = r./Nf; C = eta2*cos(Bf*pi/180)^2; lmd = L0+dms2mf(D-D.^3/6*(1+t^2+C+14/15*t^2*(1+C)-9/40*C^2).*cos(Bf*pi/180)); B = Bf-dms2mf((D.^2/2-t^2/2-2*t^4/3-37/96*t^6)*sin(Bf*pi/180).*cos(Bf*pi/180).*rad(alpha,2)+D.^4/24*(5-4*t^2+14*C-28/3*t^2.*C+6*C.^2-3*t^2.*C.^2-9/5*t^4).*sin(Bf*pi/180).*cos(Bf*pi/180).*rad(alpha,4)-D.^6/720*(61+662/45*t^2+1320/45*t^4+720/45*t^6).*sin(Bf*pi/180).*cos(Bf*pi/180).*rad(alpha,6)); % 转换为度分秒制 l = dms2mf(lmd); b = dms2mf(B); end function rad = rad(alpha,i) rad = 1; for j=1:i rad = rad*alpha(j); end end function x = mfix(x,n) if x<0 x = fix(x)-1/n; else x = fix(x); end end ```

相关推荐

最新推荐

recommend-type

使用matlab高斯消去法、列主元高斯消去法计算n阶线性方程组

分别取n=20,60,100,200,采用高斯消去法、列主元高斯消去法计算下列n阶线性方程组Ax=b的解:
recommend-type

均匀线阵方向图Matlab程序.docx

由许多相同的单个天线(如对称天线)按一定规律排列组成的天线系统,也称天线阵。俗称天线阵的独立单元称为阵元或天线单元。如果阵元排列在一直线或一平面上,则成为直线阵列或平面阵
recommend-type

传输矩阵对应的MATLAB仿真程序.docx

MATLAB程序对一维光子晶体模型的仿真在光子晶体研究方法上主要采用特性传输矩阵法,平面波展开法,球面波展开法、有限时域差分方程法和N阶(Order-N)法等。这些方法各有优缺点。 传输矩阵法简单实用,但是传统的传输...
recommend-type

短时傅里叶变换matlab程序.doc

通过汉明窗将一串信号进行分解得到不同频率的信号,合成信号验证,主要是在MATLAB中实现,DTFT,可通过控制窗函数的长度和移动幅度来控制频率的分段
recommend-type

牛顿迭代法的MATLAB程序.pdf

牛顿-拉夫逊法潮流计算 一、 基本原理 设有单变量非线性方程 f ( x) 0 (11 29) 求解此方程时,先给出解的近似值 (0) x ,它与真解的误差为 (0) x ,则满足方程 (11-29),即 (0) (0) f ( x x ) 0 ...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

SPDK_NVMF_DISCOVERY_NQN是什么 有什么作用

SPDK_NVMF_DISCOVERY_NQN 是 SPDK (Storage Performance Development Kit) 中用于查询 NVMf (Non-Volatile Memory express over Fabrics) 存储设备名称的协议。NVMf 是一种基于网络的存储协议,可用于连接远程非易失性内存存储器。 SPDK_NVMF_DISCOVERY_NQN 的作用是让存储应用程序能够通过 SPDK 查询 NVMf 存储设备的名称,以便能够访问这些存储设备。通过查询 NVMf 存储设备名称,存储应用程序可以获取必要的信息,例如存储设备的IP地址、端口号、名称等,以便能
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。