[关闭]
@zy-0815 2016-11-27T19:19:39.000000Z 字数 8828 阅读 1715

张梓桐计算物理第十次作业

1 Problem

4.10

2 Abstract

From the prsent chapter we will consider several problems that arises in the study of plantery motion.We firstly begin with the simplest situation where a sun and a single planet get moved with interaction.We investigate a few of the properities of this model solar system.The very firts thing that we would like to investigate is the Kepler' laws of motion.Additionally,the inverse-square law and the stability of plantery orbits will be discussed.In the end,we will study the precession of the perihelion of Mercury.
Ecliptic_plane_3d_view.gif-1320.5kB Solarsystem3DJupiter.gif-666kB

3 Background

3.1 Kepler's Laws

There is only one planet which we will refer to as earth,which is in the orbit of sun.It's also the so-called two-body problem.According to Newton's law of gravitation the magnitude of this force is given by


What we aimed to do is to calculate the position of earth as a function of time.From the Newton's Laws of motion we obtain:

Note that :

We obtain:


Worth mentioning,the selection of is of great importance.We here chooe the distance between earth and sun to be .And the time unit to be .Thus we obtain:
.
We next convert the equations of motion into difference equations in preparation of contructing a computational solution:

At each time step calculate the position and the velocity for time step using the Euler-Cromer method.

Kepler-second-law.gif-355.2kB

3.2 The inverse-square law and the stability of plantery orbits

Here we are going to begin with a quick review of a few analytical results concerning the trajectory of a body in a solar system assumed to contain only the Sun and the body.

Kepler's laws tell us that the orientation of such an orbit does not change with time.More precisely,if we have a solar system consisting of a sun and one planet,and that one planet,and that follows an elliptical orbit,it is predicted that the orientation of the axes of the ellipse does not change with time.

Now let us suppose that the force law deviates slightly from an inverse-square dependence.To be specific,suppose that the gravational force is of the form:


On the condition of we obtain the inverse-square law.Nevertheless we also want to conisder the motion of our planet for values of not equal to 2.The elleptical orbits with this force law can be simulated with the planteary motion program given above by simply changing the exponent of in the equations for the velocity.

3.3 The precession of the perihelion of Mercury

Gyroscope_precession.gif-223.6kB

Perhaps you may be impressed with a simple superficial situation that all the precise movemet of planet can be calclated by the previous program precisely.Nevertheless,there are deviations from these laws.These deviations come from a number of sources,including the effects of the planets on each other.It turns out that this is a problem for which very few exact results are known.

Of most importance is the precession of the perihelion of Mercury.The planets whose orbits deviate the most from circular are Mercury and Pluto.

For Mercury it was known by the early part of the 19th century that the oreientation of the axes of the ellipse that describes its orbit rotate with time.
Precessing_Kepler_orbit_280frames_e0.6_smaller.gif-729.9kB

percession.gif-7021.2kB

Discrepancies between the observed perihelion precession rate of the planet Mercury and that predicted by classical mechanics were prominent among the forms of experimental evidence leading to the acceptance of Einstein's Theory of Relativity (in particular, his General Theory of Relativity), which accurately predicted the anomalies. Deviating from Newton's law, Einstein's theory of gravitation predicts an extra term of , which accurately gives the observed excess turning rate of 43″ every 100 years.

This was one of the first triumph of the theory of relativity.
The precession due to general relativity can be calculated analytically,allthough to do si is fairly complicated.However,it's actually very strightforward to deal with this problem computationally.
All we have to do is simulate the orbital motion using the force law predicted by the general relativity and measure the rate of precession of the orbit.

4 Main Body

Source code

5 Discussion

5.1 Basic proprities

Here we plot the general movement trajectory of a Mercury of 1 period.Consequently,no further precession can be seen as a result of one period only.

1.png-44.5kB

Next ,let us see the behave of the Mercury of different eccentricity.We shall see with bigger eccentricity,the trajecory becomes more elletical,as suggested by the definition of eccentricity.

2.png-70.4kB

Here we shall the progress of the precession of Mercury but giving differnet duration of time.It's evidently that the trajectory is gradually turnning the orientatino as predicted.

3.png-62.3kB

Details

4.png-112.1kB

It is clearer to plot them in just one plot.

5.png-80.4kB

As illustrated before,the intial velocity required for a closed orbital movement is precisely required for .The misbehave of the blue line in following plot suggests a intial velocity .As displayed,it will be ejected from the solar system with sufficint time.

6.png-57.3kB

Here we set different intial velocity to investigate the behavior of Mercury.As the increment of the Mercury will at last went away from the solar system with the second universal velocity.

7.png-67.7kB

Details

8.png-70.6kB

5.2 Characteristic of various

Illustrated before,we expect the law to be inverse-square law.But what if we change the not equal to 2 ?The following plot gives varous values of .We shall see,except the situation where ,the trajectory is not closed.

9.png-81.1kB

With longer period it becomes:

12.png-121.3kB

A more precise situation where .Obviously,the path is not closed.

11.png-65.7kB

Different time duration of

13.png-61.8kB

5.3 The precession calculation.

Here we plot the plot of versus time with

15.png-33.7kB

Having changed the value of we observe some misbehave of the curves.

16.png-65.5kB

Let us return to the precession of the perihelion of Mercury.We shall see the slope of the lines remains constant as predicted.

6 Vpython Part

6.1 Souce code

Adapted fromVpython Contributed Program

  1. from visual import *
  2. #from Numeric import *
  3. print '''
  4. Simple solar system model showing the orbits of the planets
  5. Note: In this version the orbits are not tilted so
  6. the longitude of the ascending node is not correct.
  7. created by Lensyl Urbano, Jan. 2006.
  8. '''
  9. class orbit:
  10. def __init__(self,e=0.0,rad=1.0, mu=10.0, planet_size=1.0, period=365,
  11. inclination=0.0, lap=0.0, frate=10000000):
  12. self.orbit_path = curve(color=color.green,radius=0.075)
  13. self.planet = sphere(color=color.yellow,radius=planet_size)
  14. if e >= 1.0:
  15. e = 0.99
  16. if e < 0.0:
  17. e = 0.0
  18. fx = 2.0 - 2.0*min(abs((1-e*e)/(1-e)), abs(-(1-e*e)/(1+e)))
  19. self.fx = fx
  20. self.e = e
  21. self.rad = rad
  22. self.dangle = 360./period
  23. self.inclination = inclination
  24. self.lap = lap
  25. for i in range(int(period)+1):
  26. rate(frate)
  27. theta = radians(float(360.*i/period))
  28. #h_sq = a*(1-e*e)*mu
  29. r = (1-e*e)/(1-e*cos(theta))
  30. nx = rad*(r*cos(theta) - fx)
  31. ny = rad*r*sin(theta)
  32. #print i, f, r, cos(theta), sin(theta), nx, ny
  33. #nz = rotate(vector(nx,ny,0.0), angle=inclination,
  34. posi = rotate(vector(nx,ny,0.0), angle=radians(inclination), axis=(0,1,0))
  35. posi = rotate(posi, angle=radians(lap), axis=(0,0,1))
  36. self.orbit_path.append(pos=posi)
  37. self.planet.pos=posi
  38. self.angle = 0.0
  39. def re_draw(self,e=0.0,rad=1.0,mu=10.0, frate=10000000):
  40. #redraw last path
  41. if e >= 1.0:
  42. e = 0.99
  43. if e < 0.0:
  44. e = 0.0
  45. fx = 2.0 - 2.0*min(abs((1-e*e)/(1-e)), abs(-(1-e*e)/(1+e)))
  46. self.fx = fx
  47. self.e = e
  48. self.rad = rad
  49. for i in range(361):
  50. rate(frate)
  51. theta = radians(float(i))
  52. #h_sq = a*(1-e*e)*mu
  53. r = (1-e*e)/(1-e*cos(theta))
  54. nx = rad*(r*cos(theta) - fx)
  55. ny = rad*r*sin(theta)
  56. self.orbit_path.pos[i]=vector(nx, ny, 0.0)
  57. def move_planet(self):
  58. self.angle = self.angle + self.dangle
  59. #to show the planet orbiting the Sun
  60. theta = radians(float(self.angle))
  61. r = (1-self.e*self.e)/(1-self.e*cos(theta))
  62. nx = self.rad*(r*cos(theta) - self.fx)
  63. ny = self.rad*r*sin(theta)
  64. posi=rotate(vector(nx,ny,0.0), angle=radians(self.inclination), axis=(0,1,0))
  65. posi = rotate(posi, angle=radians(self.lap), axis=(0,0,1))
  66. self.planet.pos = posi
  67. #class proton:
  68. origx = 0
  69. origy = 0
  70. w = 704 #+4+4
  71. h = 576 #+24+4
  72. scene.width=w
  73. scene.height=h
  74. scene.x = origx
  75. scene.y = origy
  76. mu = 10.0 #gravitational acceleration
  77. #e = 0.6 #eccentricity
  78. #a = 10.0 #distance of sun from center of elipse
  79. # to draw an elipse
  80. nucleus = frame()
  81. p1 = sphere(color=color.white, frame=nucleus)
  82. #orbitor = sphere()
  83. e1 = orbit(e=0.50, rad=15.0, mu=mu,
  84. planet_size=0.5, period=365,
  85. lap=90)
  86. ##e2 = orbit(e=0.0, rad=15.0, mu=mu,
  87. ## planet_size=1.0, period=365,
  88. ## lap=0, inclination=90)
  89. runtime = 0.0
  90. framerate = 60
  91. pick = None
  92. while 1:
  93. rate(framerate)
  94. runtime += 1.0/framerate
  95. e1.move_planet()
  96. ## e2.move_planet()

6.2 Results with single elleptical orbit

2016-11-27 18_38_16.gif-259.8kB
2016-11-27 18_36_40.gif-251.9kB

6.3 The Solar System(Parts of solar system)

2016-11-27 19_08_31.gif-309.9kB
2016-11-27 19_15_37.gif-231.4kB

7 Acknowledgement

1.Wikipideia.The free encyclopedia
2.SHIXING WANG.
3.ZONG YUE

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