[关闭]
@zy-0815 2016-12-05T01:24:55.000000Z 字数 2363 阅读 1261

计算物理第十一次作业Problem4.19


摘要

上次作业我们研究了太阳系中行星的运动轨迹,并且验证了开普勒第三定律,而此次作业我们将重点放在研究土星第七卫星Hyperion的混沌状态上。
image_1b359gt4epeo1qnd1j74t9415kt9.png-58.7kB

背景

Hyperion就是土卫七,围绕着土星运转,1848年9月16日发现,而其形状如同一个哑铃,因此我们便可以将其模拟为一个质量分布在两端中间由无质量轻杆连接的哑铃模型,重力对其中一端质点m1的作用为:


其中是土星质量,取质心坐标,可得:

同理对于形式也是相同的,作用于模型上的力矩为,故可得:

其中 为转动惯量,处理可得:

正文

1.由背景可得,主体程序为:

  1. import pylab as pl
  2. import matplotlib.pyplot as plt
  3. import math
  4. class Hyperion :
  5. def __init__(self,i=0,total_time=10, time_step=0.001, radius=1,e=0,a=1):
  6. self.x=[a*(1+e)]
  7. self.y=[0]
  8. self.vx=[0]
  9. self.vy=[2*math.pi]
  10. self.r=[radius]
  11. self.time=total_time
  12. self.dt=time_step
  13. self.beta=2
  14. self.alpha=0
  15. self.t=[0]
  16. self.theta=[0]
  17. self.w=[0]
  18. def run(self):
  19. _time=0
  20. GM=4*(math.pi**2)
  21. r=1
  22. while(_time<self.time):
  23. self.r.append(math.sqrt(pow(self.x[-1],2)+pow(self.y[-1],2)))
  24. self.vx.append(self.vx[-1]-4*pow(math.pi,2)*(1+self.alpha/pow(self.r[-1],2))*self.x[-1]/pow(self.r[-1],1+self.beta)*self.dt)
  25. self.x.append(self.x[-1]+self.vx[-1]*self.dt)
  26. self.vy.append(self.vy[-1]-4*pow(math.pi,2)*(1+self.alpha/pow(self.r[-1],2))*self.y[-1]/pow(self.r[-1],1+self.beta)*self.dt)
  27. self.y.append(self.y[-1]+self.vy[-1]*self.dt)
  28. self.w.append(self.w[-1]-3*GM/(r**5)*(self.x[-1]*math.sin(self.theta[-1])-self.y[-1]*math.cos(self.theta[-1]))*\
  29. (self.x[-1]*math.cos(self.theta[-1])+self.y[-1]*math.sin(self.theta[-1]))*self.dt)
  30. self.theta.append(self.dt*self.w[-1]+self.theta[-1])
  31. while self.theta[-1]>=1*math.pi:
  32. self.theta[-1]=self.theta[-1]-2*math.pi
  33. while self.theta[-1]<=-1*math.pi:
  34. self.theta[-1]=self.theta[-1]+2*math.pi
  35. self.t.append(_time)
  36. _time += self.dt
  37. def show_results(self):
  38. #pl.plot(self.x,self.y)
  39. plt.plot(self.t,self.w)
  40. plt.xlabel('x(AU)')
  41. plt.ylabel('y(AU)')
  42. plt.legend()
  43. plt.title('Hyperion $\\theta$ versus time')
  44. plt.show()
  45. a = Hyperion()
  46. a.run()
  47. a.show_results()

运行程序可得:
image_1b35bp57j66o2hc4sd1rbb89t1g.png-31.6kB
上运行结果为圆轨道时所示结果改变代码可得:
image_1b35bnhfs27s12km1d071dhg12bp13.png-46.9kB
由此看出运动比较规则,同时改变离心率可得椭圆轨道图像为:
image_1b35bs7t43l52rflvr7v42ff1t.png-29.7kB
image_1b35btaccvef19871rsv1kstnea2a.png-57.4kB
此时图像已经不再规则。
2.改变初始速度可得到运行图像为:
image_1b35cf93513s41o7nki4f8d16jk34.png-32kB
image_1b35cfv8i1luk1nfq1t0516be1mpn3h.png-32.1kB
image_1b35chdvdi2b144d1a981dnpb773u.png-79kB
由此看出当初始速度为2π时轨道是规则的。
3.改变的值可得:
image_1b35crjg3ntjm9518pg1dj9hca4b.png-93.5kB

结论

对于Hyperion来说,离心率变化时,当转动轨道为圆时,均有周期,但是当运行轨道变为椭圆,便会出现混沌现象。

致谢

由于个人电脑上Spyder被自己摸索崩溃,于是借用了宗玥同学的电脑,感谢宗玥同学的帮助。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注