- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
???本科实验报告?????学号姓 名 专业实验名称大圆航程计算实验一、摘要大圆航程计算实验,本实验主要描述了两地之间的飞行路线最短问题,可以找到最短的飞行路线,解决飞机航行问题。本实验给出了大圆航程计算实验的matlab实现,只要给出两地的经度及纬度,则可以计算出航点之间的距离,从而得出它们之间的最短飞行路线。二、实验目的及要求根据地球的模型,利用数学原理,找出一条两地的最短航线路程,给出matlab程序的实现,用于计算求出任意两地之间最短的大圆航程问题。 三、实验仪器设备计算机四、实验方案设计(一)原理描述 1、大远航程线在半径为 R的球面上给定两点 P1、P2,由 P1 到 P2长度最短的球面曲线称为大圆航程线。 大圆航程线在球心O以及P1、P2所定平面上;大圆航程线位于过球心的平面与球面相交的大圆弧上。 大圆航程线长度计算公式 L = R×其中,是OP1与OP2之间夹角(单位:弧度)球心到P1(x1,y1,z1)和球心到P2(x2,y2,z2), 两向量所张成夹角的计算方法2、经纬度转换为直角坐标公式θ是P点处球面法线和赤道面的夹角(– 90o ~ +90o).向北取正为北纬,向南取负为南纬. φ是P点与地球自转轴所在平面与起始子午面的夹角(– 180o ~ +180o).由起始子午线起算,向东取正为东经,向西取负为西经。 x = R cosθ cosφy = R cosθ sinφz = R sinθ(二)实验过程设计首先查找到自己所在城市的经纬度,然后北京、上海、东京、旧金山、纽约任意选定一个城市根据经纬度计算出相应的数据,然后进行处理Matlab程序编写。利用给出的两地的经度和纬度,可以近似计算两地的飞行的航线的最短路程。(三)实验假设条件本实验的假设条件:两地之间的球面距离最短。(即通过两地(点)及球心的的大圆中两地的弧长距离最短)五、实验内容及步骤 (一)实验调试步骤1、地球图形绘制:(必要的原理介绍和程序)地球图形绘制程序如下:clc;R=6400; %圆半径theta=(-9:0.5:9)*pi/18;%theta角度范围fai=(-18:0.5:18)*pi/18;%fai角度范围X=R*cos(theta)*cos(fai);Y=R*cos(theta)*sin(fai);Z=R*sin(theta)*ones(size(fai));colormap([0 0 1])%颜色调整,RGB配色,参数小于1即可调出各种颜色mesh(X,Y,Z)title(大圆航迹线计算);hold on;%保持图像2、大圆航程计算问题的matlab实现(必要的原理介绍和程序)【问题】从自己家乡飞往以下任一城市(北京—上海—东京—旧金山—纽约)的大圆航线。航点纬度经度北京北纬40o东经116o上海北纬31o东经122 o东京北纬36o东经140 o旧金山北纬37o西经123 o纽约北纬41o西经76o3、球面上大圆航程图形绘制(必要的原理介绍和程序)我家乡山东烟台的经纬度为:北纬37o,东经121o实验过程中用到的m文件如下:airline.m %用来画圆跟大圆航程,显示航程distance.m %用来计算两个点之间的大圆航程line0.m%在圆上画出大圆航程transform.m %将经纬度转化成直角坐标drawsphere.m%用来画球面airline.mclc;drawsphere();hold on;p1=[37 121] %山东烟台 东经:121 北纬:37p2=[41 -76] %New Yorkd=distance(p1,p2)op1=transform(p1);op2=transform(p2);format shortgline0(op1,op2)distance.mfunction d=distance(p1,p2)R=6400+10; theta=p1(1)*pi/180;fai=p1(2)*pi/180;x1=R*cos(theta)*cos(fai); y1=R*cos(theta)*sin(fai);z1=R*sin(theta);pp1=[x1,y1,z1];theta=p2(1)*pi/180;fai=p2(2)*pi/180;x2=R*cos(theta)*cos(fai); y2=R*cos(theta)*sin(fai);z2=R*sin(theta);pp2=[x2,y2,z2];d=R*acos(pp1*pp2/R^2);line0.mfunction d=line0(p1,p2)p=[p1;p2];n=2;r=norm(p1);for k=1:7 q1=p(1:n-1,:); q2=p(2:n,:); e=0.5*(q1+q2); for
文档评论(0)