@zhongwei1234
2017-11-08T16:07:12.000000Z
字数 2846
阅读 32
钟伟 2015301020164
一. 题目
Consider a hypothetical solar system consisting of a sun and one planet in which the mass Of the sun is nott much greater than the m ass of the planet, Now you must allow for the motion of both the planet and the sun. Extend your planetary motion progratn to include this effect. You will have to deal with a set of equations such as those in (4.7) for both objects. Investigate the possible types of orbital motion found in such a system. Begin with a double star system in which the two objects are of equal mass. Then explore the behavior when the unequal. Hint: in order to obtain the simplest orbits, it is best to pick initial conditions are such that, the total linear is zero. While this problem can be handled with a stationary sun together with thc concept of a reduced mass, this calculation is all ecessary prelude to the study of orbits of planets in binary star systems, which we Will sonsider in a later exercise.
理论基础:
万有引力定律:万有引力定律是艾萨克·牛顿在1687年于《自然哲学的数学原理》上发表的。牛顿的普适的万有引力定律表示如下
任意两个质点有通过连心线方向上的力相互吸引。该引力大小与它们质量的乘积成正比与它们距离的平方成反比,与两物体的化学组成和其间介质种类无关。
*当中心天体的质量不可看做足够大应采用约化质量:
并可将轨道运动表示为如下形式:
使用类的写法 定义一个class A
class Two_Star:def __init__(self,m1,m2):self.m1=m1self.m2=m2self.x1=[2,]self.y1=[0]self.x2=[-1]self.y2=[0]self.vx1=[0,]self.vy1=[v1]self.vx2=[0]self.vy2=[v2]self.t=[0,]def update(self):current_x1=self.x1[-1]current_y1=self.y1[-1]current_x2=self.x2[-1]current_y2=self.y2[-1]current_vx1=self.vx1[-1]current_vy1=self.vy1[-1]current_vx2=self.vx2[-1]current_vy2=self.vy2[-1]r=np.sqrt((current_x1-current_x2)**2+(current_y1-current_y2)**2)self.next_vx1=current_vx1-G*(current_x1-current_x2)*dt*self.m2/r**3self.next_vy1=current_vy1-G*(current_y1-current_y2)*dt*self.m2/r**3self.next_vx2=current_vx2-G*(current_x2-current_x1)*dt*self.m1/r**3self.next_vy2=current_vy2-G*(current_y2-current_y1)*dt*self.m1/r**3self.next_x1=current_x1+self.next_vx1*dtself.next_y1=current_y1+self.next_vy1*dtself.next_x2=current_x2+self.next_vx2*dtself.next_y2=current_y2+self.next_vy2*dtself.next_t=self.t[-1]+dtdef fire(self):while (self.t[-1]<=15):self.update()self.vx1.append(self.next_vx1)self.vy1.append(self.next_vy1)self.vx2.append(self.next_vx2)self.vy2.append(self.next_vy2)self.x1.append(self.next_x1)self.y1.append(self.next_y1)self.x2.append(self.next_x2)self.y2.append(self.next_y2)self.t.append(self.next_t)
这样方便我对不同G值与质量比
(1)G值变化从0到250
我使用循环体画出25张图
plt.plot(self.x1,self.y1,color='r')plt.plot(self.x2,self.y2,color='g')G=0*np.pi**2dG=10*np.pi**2while G<250*np.pi**2:plt.figure(figsize=(10,10))A=Two_Star(1,2)A.fire()plt.title("binary star systems m1/m2=1 G= "+str(G))plt.show()G=G+dG
初值v1=4π,v2=-2π 及step dt=0.0001 次初速度设定使体系无平动
























结论
1.当万有引力系数G变大轨道开始出现变化,虽然轨道每次闭合但有非常多非常密的轨道束,虽然轨道数都在两个点汇合。同时也说明周期变小,转速变快
2.当G相当大时,轨道形状变得稳定,区别只在于轨道束变宽。这是因为大相互作用使轨道束缚住了,在各自位置很稳定,但微小扰动变大了
3.小引力时,随G增大,大,小质量星体逐渐被拉回去,轨道范围变小
4.我们宇宙的那个G值质量比1:2的刚好可以小的包大的,并且轨道闭合不分束,以免我们出现三体星那种情况
(2)







两体有一个平动动量
(3)v1=2π v2=-0.02π 好玩的















出混沌啦