Due stelle – 1

G = 6.7\cdot 10^{-11}
\displaystyle \vec{r} = \vec{r}_1-\vec{r}_2
\displaystyle \vec{F}_1 = -\frac{G m_1 m_2}{r^2} (\vec{r})\displaystyle \vec{p}_1 = m_1\cdot \vec{v}_1\displaystyle \Delta \vec{p}_1 = \vec{F}_1\cdot \Delta t
\displaystyle \vec{F}_2 = \frac{G m_1 m_2}{r^2} (\vec{r})\displaystyle \vec{p}_2 = m_2\cdot \vec{v}_2\displaystyle \Delta \vec{p}_2 = \vec{F}_2\cdot \Delta t
\displaystyle \vec{p} = \vec{p}_1 + \vec{p}_2\displaystyle \Delta \vec{p} = \Delta \vec{p}_1 + \Delta \vec{p}_2
from vpython import *

G = 6.7e-11

stella_1 = sphere(pos = vector(-2e11, 0, 0), radius = 2e10, color = color.white , make_trail = True)
stella_2 = sphere(pos = vector(+2e11, 0, 0), radius = 1e10, color = color.yellow, make_trail = True)

stella_1.massa = 2.5e30
stella_2.massa = 1.0e30

stella_1.p = stella_1.massa*vector(0, +1e3, 0)
stella_2.p = stella_2.massa*vector(0, -1e4, 0)

dt = 1e4
while(True):
    rate(500)

    r = stella_1.pos - stella_2.pos
    F = G*stella_1.massa*stella_2.massa/mag2(r)*r.hat

    stella_1.p   += -F*dt
    stella_2.p   += +F*dt
    stella_1.pos += stella_1.p/stella_1.massa*dt
    stella_2.pos += stella_2.p/stella_2.massa*dt

Lascia un commento