用MATLAB模拟近地行星的视运动
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程结业论文
课程名称: 院系专业: 学 姓 号: 名: 计算物理基础 物理学系 物理学 201211141928 马宏志
用 MATLAB 模拟近地行星的视运动
作者:马宏志(201211141928) 单位:北京师范大学物理系
【摘要】
地球和其他行星围绕太阳近似做圆周运动,在地球上观察行星运行的轨迹,行星的轨迹有什么 特点?本文用 MATLAB 模拟的方法表现行星相对太阳的的视运动,做出在地球上观察行星视运动的动 画,发现行星的视运动轨迹是有规律的螺旋线,行星视运动具有周期性。行星大部分时间在天球上自 西向东运动, 与太阳在天球上周年视运动方向一致, 称为顺行, 小部分时间自东向西运动, 称为逆行。 由于不同行星距离太阳的远近和运行速度的不同,它们的视运动曲线相差较大。
drawnow end
%刷新屏幕 %结束循环
【图像】
a
b
c
d
e
甲
乙
图 a、b、c、d、e 分别是水星、金星、火星、木星和土星视运动的轨迹图,图甲和图乙分别是地 内行星(水星、金星、火星)和地外行星(木星、土星等行星)相对地球和太阳位置变化图像。地内 行星,即地球轨道以内的水星和金星,由于它们运行速度比地球大,所以在地球上看到他们总是在太 阳附近来回摆动, 角距离有一定范围, 水星的角距离一般为28度, 金星的为45~48度之间; 地外行星, 即地球轨道以外的火星、木星、土星等行星,由于他们的运行速度小于地球,所以它们和太阳的角距 离不受任何限制。
X* = (1 + r*)cosθ,Y* = (1 + r*)sinθ
【程序】
(9*)
%行星相对地球运行的动画 clear %清除变量 i=input('Please choose a planet:1( 水 星 )2( 金 星 )3( 火 星 )4( 木 星 )5( 土 星):');%键盘输入行星编号 if i<1|i>5 return,end %非编号则返回 r=[0.579,1.0810,2.28,7.78,14.294]*1e11; %行星到太阳的距离向量 r=r(i); %取半径 planet={'水星','金星','火星','木星','土星'}; %行星名称元胞 MS=1.99e30; %太阳质量 G=6.67e-11; %引力常数 k=G*MS/4/pi^2; %太阳常数 T=sqrt(r^3/k); %行星绕太阳的周期 w=2*pi/T; %行星绕太阳的角速度 rE=1.496e11; %地球到太阳的距离 TE=sqrt(rE^3/k); %地球绕太阳周期 wE=2*pi/TE; %地球绕太阳的角速度 (太阳绕地球的角速 度) r=r/rE; %距离化为天文单位 R=1+r; %穹顶半径 th=linspace(0,2*pi); %角度向量 fg=figure; %创建图形窗口并取句柄 plot(0,0,'g.','markersize',15) %画地球 plot(cos(th),sin(th),'r--') %画太阳轨迹 hold on %保持图像
GM S r3 k 2 T 4π2
其中 k 为太阳常数。可见:行星轨道半径的三次方与周期的平方成正 比。这是开普勒第三定律的特殊情况。行星运动的周期为 A图
T r3 / k
角速度由(1)式决定。
(3)
地球 E 绕太阳 S 运行的半径为 rE = 1.5×1011m,其周期为
TE rE2 / k
(6*)
其中,r* = r/rE。行星在地球坐标系中的坐标可表示为
xP*= x'* + x*,yP* = y'* + y*
行星的视角可表示为
(7*)
arctan
y* y* x* x*
(8*)
由于行星在四个象限中运行,因此要用第二个反正切函数求角度 atan2。行星在穹顶投影的坐标可表 示为
【参考文献】
[1]《探索宇宙奥秘》 [2] 《亲近宇宙》 李良 主编 河南科学技术出版社 2002-10-1 2004-2
【结论】
行星相对恒星的视运动特点有: (1)行星有时向着赤经增加方向运动,与太阳周年视运动方向一致,叫做"顺行",而有时又向着赤 经减少的方向运动,称为"逆行"。 (2)顺行的时间长,而逆行的时间短。 (3)由顺行转为逆行或由逆行转为顺行,要经过"留",行星在视运动路线上的运动不是均匀的,在 留的前后移动较慢,似乎是相对静止不动的。 (4)行星视运动的不同特点的出现都具有周期性,各行星的周期长短不等,所以视运动轨迹也各不 相同。
x' = rEcosωEt,y' = rEsinωEt
行星在太阳坐标系中的坐标为
(5) (6) (7)
O' E
x = rcosωt, y = rsinωt
由此可确定行星在地球坐标系中的坐标
xP = x' + x,yP = y' + y
沿着 EP 方向,行星投影在穹顶上,地球上的人观察 的就是行星在穹顶上的轨迹。行星的视角为 B图
【理论分析】
如 A 图所示,设行星 P 绕太阳 S 运动的半径为 r、周期为 T,其角速度为 ω = 2π/T (1)
30
பைடு நூலகம்
行星绕太阳运行的向心力来源于的万有引力,太阳的质量为 MS = 1.99×10 kg,设行星的质量为 m, 则得
mr 2
-11 2 2
GMSm r2
r S (2)
P
其中 G = 6.67×10 N•m /kg 是万有引力常量,因此
【计算方法】 取地球到太阳的距离为一个天文单位,则太阳在地球坐标系中的坐标可表示为
(9)
x*
行星在太阳坐标系中的坐标可表示为
x y cos Et , y* sin Et rE rE
(5*)
x*
x y r* cos t , y* r* sin t rE rE
plot(R*cos(th),R*sin(th),'k--') %画天穹 s=plot(1,0,'r.','markersize',20,'erasemode','xor');%画太阳并取句柄 p=plot(R,0,'*','markersize',16,'erasemode','xor');%画行星并取句柄 xs=r*cos(th);ys=r*sin(th); %行星绕太阳圆的坐标 ps=plot(1+xs,ys,'--','markersize',2,'erasemode','xor');% 画 行 星 绕 太 阳的轨迹并取句柄 x0=R;y0=0; %行星初始坐标 pl=plot([0,x0],[0,0],'-m.','erasemode','xor');% 画地球和天穹的连线并取 句柄 axis equal %坐标刻度相等 grid on %加网格 fs=16; %字体大小 xlabel('\itx/r\rm_E','fontsize',fs) %加横坐标标签 ylabel('\ity/r\rm_E','fontsize',fs) %加纵坐标标签 title('在地球上观察行星绕地球太阳的运行的轨迹','fontsize',fs)%加标题 text(0,0,'地球','fontsize',fs) %显示地球文本 text(-1-r,(1+r)/2,'穹顶','fontsize',fs)%显示穹顶文本 stext=text(1,0,'太阳','fontsize',fs); %显示太阳文本并取句柄 ptext=text(x0,0,planet{i},'fontsize',fs);%显示行星文本并取句柄 text(-r-1,0,['\itr/r\rm_E=' num2str(r)],'fontsize',fs)% 显示行星到太 阳的距离 pause %暂停 t=0; %时间清零 dt=TE/200; %时间间隔 if i>2 dt=dt*2;end %外行星的时间间隔加倍 while get(fg,'CurrentCharacter')~=char(27)% 不 按 ESC 键 循 环 char(27) 是 esc键的sck码 %while %If get(gcf,'CurrentCharacter')==char(27),break,end (6.5 版本 ) % 按 ESC键循环 t=t+dt; %下一时刻 xE=cos(wE*t);yE=sin(wE*t); %太阳坐标 x=r*cos(w*t); y=r*sin(w*t); %行星相对太阳的坐标 set(s,'xdata',xE,'ydata',yE); %设置太阳的位置 set(p,'xdata',xE+x,'ydata',yE+y); %设置行星的位置 set(ps,'xdata',xE+xs,'ydata',yE+ys);%设置行星绕太阳的轨迹 th=atan2(y+yE,x+xE); %行星的角度 X=R*cos(th);Y=R*sin(th); %行星在穹顶上投影的坐标 set(pl,'xdata',[0,X],'ydata',[0,Y])% 画地球与行星在穹顶上的投影的连 线 set(stext,'position',[xE,yE]); %设置太阳文本 set(ptext,'position',[xE+x,yE+y]); %设置行星文本 plot([x0,xE+x],[y0,yE+y]) %画行星绕地球的轨迹 x0=xE+x;y0=yE+y; %保留坐标
arctan
yp xp
arctan
y y x x
(8)
穹顶本意是无穷远处的天顶, 对于行星来说, 它到地球的距离永远不可能大于太阳到地球的距离加上 行星到太阳的距离,所以不妨取 R = rE + r 为穹顶半径,行星在穹顶上投影的坐标为
X = Rcosθ = (rE + r)cosθ,Y = Rsinθ = (rE + r)sinθ
【关键词】近地行星、视运动、MATLAB 模拟
【引言】
人类很早就发现行星在天空中的视运动轨迹是螺旋曲线。 “地心说”认为行星一方面以“均轮” ---圆形轨道,绕地球转动,又在此基础上,以此时刻在“均轮”上所处的位置为中心做小半径转动, 叫做“本轮” ,行星的运动轨迹是二者的叠加,所以是螺旋线。 “日心说”认为地球和其他行星均绕着 太阳做近似的圆周运动, 所以行星的视运动轨迹是由于行星、 地球和太阳之间的相对运动导致的。 行 星的视运动是地球和行星绕太阳公转而出现的表面现象,哥白尼的日心体系揭示了行星视运动的实 质,行星的视运动为哥白尼等人的“日心说”理论提供了有力的证据。为了对行星的运动做出更加直 观详尽的描述,本文通过运用物理学和天文学的相应理论,并结合作者所学的 MATLAB 的相关知识, 对行星的运动进行了详细的数学表达和客观的图像描述, 简洁而深刻。 希望能为读者提供一条认识行 星运行规律的捷径。
【理论解释】
(1)地内行星相对恒星的视运动
地内行星离太阳比地球离太阳近,它们的轨道比地球的轨道小。按照开普勒定律,行星运动的平 均角速度 ω =360°/ T,所以地内行星公转的角速度比地球的公转角速度大,在地内行星绕太阳公 转一周的时间内,地球只走过一段弧。从地球上看去,由于地内行星和地球都在绕太阳公转,并且轨 道面有一定的夹角,地内行星在天球上恒星中间就走了一个打圈的路线,出现了顺行、留、逆行、留、 又顺行的视运动现象,而且,地内行星逆行发生在下合前后。 (2)地外行星相对恒星的视运动 地外行星比地球离太阳更远, 它们的轨道在地球轨道的外面按照开普勒定律, 地外行星的公转周 期比地球长,当地球在轨道上公转一周时,地外行星只在轨道上走一段弧。由于地球比地外行星公转 周期短,地球轨道速度比地外行星轨道速度大,所以从地球上看去在冲前后地外行星逆行,顺行与逆 行之间转变阶段称为"留",这样地外行星的视运动就出现了顺行、留、逆行、留、又顺行的有规律的 现象。
(4)
以地球为中心,这也是太阳绕地球的运行的周期,角速度用ωE 表示。 如 B 图所示,以地球为中心,太阳绕着地球转, 行星绕着太阳转,角速度为ω。假设开始时地球、太 阳和和行星在一条直线上,经过时间 t,太阳在地球 坐标系中的坐标为 θ R rE ωEt S y' y (X,Y) P ωt S O x P x'
课程名称: 院系专业: 学 姓 号: 名: 计算物理基础 物理学系 物理学 201211141928 马宏志
用 MATLAB 模拟近地行星的视运动
作者:马宏志(201211141928) 单位:北京师范大学物理系
【摘要】
地球和其他行星围绕太阳近似做圆周运动,在地球上观察行星运行的轨迹,行星的轨迹有什么 特点?本文用 MATLAB 模拟的方法表现行星相对太阳的的视运动,做出在地球上观察行星视运动的动 画,发现行星的视运动轨迹是有规律的螺旋线,行星视运动具有周期性。行星大部分时间在天球上自 西向东运动, 与太阳在天球上周年视运动方向一致, 称为顺行, 小部分时间自东向西运动, 称为逆行。 由于不同行星距离太阳的远近和运行速度的不同,它们的视运动曲线相差较大。
drawnow end
%刷新屏幕 %结束循环
【图像】
a
b
c
d
e
甲
乙
图 a、b、c、d、e 分别是水星、金星、火星、木星和土星视运动的轨迹图,图甲和图乙分别是地 内行星(水星、金星、火星)和地外行星(木星、土星等行星)相对地球和太阳位置变化图像。地内 行星,即地球轨道以内的水星和金星,由于它们运行速度比地球大,所以在地球上看到他们总是在太 阳附近来回摆动, 角距离有一定范围, 水星的角距离一般为28度, 金星的为45~48度之间; 地外行星, 即地球轨道以外的火星、木星、土星等行星,由于他们的运行速度小于地球,所以它们和太阳的角距 离不受任何限制。
X* = (1 + r*)cosθ,Y* = (1 + r*)sinθ
【程序】
(9*)
%行星相对地球运行的动画 clear %清除变量 i=input('Please choose a planet:1( 水 星 )2( 金 星 )3( 火 星 )4( 木 星 )5( 土 星):');%键盘输入行星编号 if i<1|i>5 return,end %非编号则返回 r=[0.579,1.0810,2.28,7.78,14.294]*1e11; %行星到太阳的距离向量 r=r(i); %取半径 planet={'水星','金星','火星','木星','土星'}; %行星名称元胞 MS=1.99e30; %太阳质量 G=6.67e-11; %引力常数 k=G*MS/4/pi^2; %太阳常数 T=sqrt(r^3/k); %行星绕太阳的周期 w=2*pi/T; %行星绕太阳的角速度 rE=1.496e11; %地球到太阳的距离 TE=sqrt(rE^3/k); %地球绕太阳周期 wE=2*pi/TE; %地球绕太阳的角速度 (太阳绕地球的角速 度) r=r/rE; %距离化为天文单位 R=1+r; %穹顶半径 th=linspace(0,2*pi); %角度向量 fg=figure; %创建图形窗口并取句柄 plot(0,0,'g.','markersize',15) %画地球 plot(cos(th),sin(th),'r--') %画太阳轨迹 hold on %保持图像
GM S r3 k 2 T 4π2
其中 k 为太阳常数。可见:行星轨道半径的三次方与周期的平方成正 比。这是开普勒第三定律的特殊情况。行星运动的周期为 A图
T r3 / k
角速度由(1)式决定。
(3)
地球 E 绕太阳 S 运行的半径为 rE = 1.5×1011m,其周期为
TE rE2 / k
(6*)
其中,r* = r/rE。行星在地球坐标系中的坐标可表示为
xP*= x'* + x*,yP* = y'* + y*
行星的视角可表示为
(7*)
arctan
y* y* x* x*
(8*)
由于行星在四个象限中运行,因此要用第二个反正切函数求角度 atan2。行星在穹顶投影的坐标可表 示为
【参考文献】
[1]《探索宇宙奥秘》 [2] 《亲近宇宙》 李良 主编 河南科学技术出版社 2002-10-1 2004-2
【结论】
行星相对恒星的视运动特点有: (1)行星有时向着赤经增加方向运动,与太阳周年视运动方向一致,叫做"顺行",而有时又向着赤 经减少的方向运动,称为"逆行"。 (2)顺行的时间长,而逆行的时间短。 (3)由顺行转为逆行或由逆行转为顺行,要经过"留",行星在视运动路线上的运动不是均匀的,在 留的前后移动较慢,似乎是相对静止不动的。 (4)行星视运动的不同特点的出现都具有周期性,各行星的周期长短不等,所以视运动轨迹也各不 相同。
x' = rEcosωEt,y' = rEsinωEt
行星在太阳坐标系中的坐标为
(5) (6) (7)
O' E
x = rcosωt, y = rsinωt
由此可确定行星在地球坐标系中的坐标
xP = x' + x,yP = y' + y
沿着 EP 方向,行星投影在穹顶上,地球上的人观察 的就是行星在穹顶上的轨迹。行星的视角为 B图
【理论分析】
如 A 图所示,设行星 P 绕太阳 S 运动的半径为 r、周期为 T,其角速度为 ω = 2π/T (1)
30
பைடு நூலகம்
行星绕太阳运行的向心力来源于的万有引力,太阳的质量为 MS = 1.99×10 kg,设行星的质量为 m, 则得
mr 2
-11 2 2
GMSm r2
r S (2)
P
其中 G = 6.67×10 N•m /kg 是万有引力常量,因此
【计算方法】 取地球到太阳的距离为一个天文单位,则太阳在地球坐标系中的坐标可表示为
(9)
x*
行星在太阳坐标系中的坐标可表示为
x y cos Et , y* sin Et rE rE
(5*)
x*
x y r* cos t , y* r* sin t rE rE
plot(R*cos(th),R*sin(th),'k--') %画天穹 s=plot(1,0,'r.','markersize',20,'erasemode','xor');%画太阳并取句柄 p=plot(R,0,'*','markersize',16,'erasemode','xor');%画行星并取句柄 xs=r*cos(th);ys=r*sin(th); %行星绕太阳圆的坐标 ps=plot(1+xs,ys,'--','markersize',2,'erasemode','xor');% 画 行 星 绕 太 阳的轨迹并取句柄 x0=R;y0=0; %行星初始坐标 pl=plot([0,x0],[0,0],'-m.','erasemode','xor');% 画地球和天穹的连线并取 句柄 axis equal %坐标刻度相等 grid on %加网格 fs=16; %字体大小 xlabel('\itx/r\rm_E','fontsize',fs) %加横坐标标签 ylabel('\ity/r\rm_E','fontsize',fs) %加纵坐标标签 title('在地球上观察行星绕地球太阳的运行的轨迹','fontsize',fs)%加标题 text(0,0,'地球','fontsize',fs) %显示地球文本 text(-1-r,(1+r)/2,'穹顶','fontsize',fs)%显示穹顶文本 stext=text(1,0,'太阳','fontsize',fs); %显示太阳文本并取句柄 ptext=text(x0,0,planet{i},'fontsize',fs);%显示行星文本并取句柄 text(-r-1,0,['\itr/r\rm_E=' num2str(r)],'fontsize',fs)% 显示行星到太 阳的距离 pause %暂停 t=0; %时间清零 dt=TE/200; %时间间隔 if i>2 dt=dt*2;end %外行星的时间间隔加倍 while get(fg,'CurrentCharacter')~=char(27)% 不 按 ESC 键 循 环 char(27) 是 esc键的sck码 %while %If get(gcf,'CurrentCharacter')==char(27),break,end (6.5 版本 ) % 按 ESC键循环 t=t+dt; %下一时刻 xE=cos(wE*t);yE=sin(wE*t); %太阳坐标 x=r*cos(w*t); y=r*sin(w*t); %行星相对太阳的坐标 set(s,'xdata',xE,'ydata',yE); %设置太阳的位置 set(p,'xdata',xE+x,'ydata',yE+y); %设置行星的位置 set(ps,'xdata',xE+xs,'ydata',yE+ys);%设置行星绕太阳的轨迹 th=atan2(y+yE,x+xE); %行星的角度 X=R*cos(th);Y=R*sin(th); %行星在穹顶上投影的坐标 set(pl,'xdata',[0,X],'ydata',[0,Y])% 画地球与行星在穹顶上的投影的连 线 set(stext,'position',[xE,yE]); %设置太阳文本 set(ptext,'position',[xE+x,yE+y]); %设置行星文本 plot([x0,xE+x],[y0,yE+y]) %画行星绕地球的轨迹 x0=xE+x;y0=yE+y; %保留坐标
arctan
yp xp
arctan
y y x x
(8)
穹顶本意是无穷远处的天顶, 对于行星来说, 它到地球的距离永远不可能大于太阳到地球的距离加上 行星到太阳的距离,所以不妨取 R = rE + r 为穹顶半径,行星在穹顶上投影的坐标为
X = Rcosθ = (rE + r)cosθ,Y = Rsinθ = (rE + r)sinθ
【关键词】近地行星、视运动、MATLAB 模拟
【引言】
人类很早就发现行星在天空中的视运动轨迹是螺旋曲线。 “地心说”认为行星一方面以“均轮” ---圆形轨道,绕地球转动,又在此基础上,以此时刻在“均轮”上所处的位置为中心做小半径转动, 叫做“本轮” ,行星的运动轨迹是二者的叠加,所以是螺旋线。 “日心说”认为地球和其他行星均绕着 太阳做近似的圆周运动, 所以行星的视运动轨迹是由于行星、 地球和太阳之间的相对运动导致的。 行 星的视运动是地球和行星绕太阳公转而出现的表面现象,哥白尼的日心体系揭示了行星视运动的实 质,行星的视运动为哥白尼等人的“日心说”理论提供了有力的证据。为了对行星的运动做出更加直 观详尽的描述,本文通过运用物理学和天文学的相应理论,并结合作者所学的 MATLAB 的相关知识, 对行星的运动进行了详细的数学表达和客观的图像描述, 简洁而深刻。 希望能为读者提供一条认识行 星运行规律的捷径。
【理论解释】
(1)地内行星相对恒星的视运动
地内行星离太阳比地球离太阳近,它们的轨道比地球的轨道小。按照开普勒定律,行星运动的平 均角速度 ω =360°/ T,所以地内行星公转的角速度比地球的公转角速度大,在地内行星绕太阳公 转一周的时间内,地球只走过一段弧。从地球上看去,由于地内行星和地球都在绕太阳公转,并且轨 道面有一定的夹角,地内行星在天球上恒星中间就走了一个打圈的路线,出现了顺行、留、逆行、留、 又顺行的视运动现象,而且,地内行星逆行发生在下合前后。 (2)地外行星相对恒星的视运动 地外行星比地球离太阳更远, 它们的轨道在地球轨道的外面按照开普勒定律, 地外行星的公转周 期比地球长,当地球在轨道上公转一周时,地外行星只在轨道上走一段弧。由于地球比地外行星公转 周期短,地球轨道速度比地外行星轨道速度大,所以从地球上看去在冲前后地外行星逆行,顺行与逆 行之间转变阶段称为"留",这样地外行星的视运动就出现了顺行、留、逆行、留、又顺行的有规律的 现象。
(4)
以地球为中心,这也是太阳绕地球的运行的周期,角速度用ωE 表示。 如 B 图所示,以地球为中心,太阳绕着地球转, 行星绕着太阳转,角速度为ω。假设开始时地球、太 阳和和行星在一条直线上,经过时间 t,太阳在地球 坐标系中的坐标为 θ R rE ωEt S y' y (X,Y) P ωt S O x P x'