1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| #!usr/bin/python
from pylab import *
from scipy import *
from scipy .integrate import odeint # Pour resoudre les equations differentielles
import numpy as np
import math as m
import matplotlib .pyplot as plt # Pour tracer des graphiques
##################################################
# ORBITES AUTOUR D'UN TROU NOIR DE SCHWARZSCHILD #
##################################################
# Definition des variables :
#---------------------------
Rs = 1.0 # Rayon de Swharzschild
r = 20.0*Rs # Rayon r
E = 10.0 # Energie particule = mc**2
L = 0.0 # Moment cinetique de la particule
# Implicitement on a :
m = 1.0 # Masse quelconque d'une particule
c = 1.0 # Vitesse lumiere
V0 = 0.0
# Definition du systeme d'equations :
#------------------------------------
t_point = 1/(1-(Rs/r)) * E # Equation differentielle (3a) du sujet / t_point = dt/dtau
phi_point = L/(m*r**2) # Equation differentielle (3b) du sujet / phi_point = dphi/dtau
V0**2 == E**2 - (1-(Rs/r))*(1+(L**2/r**2)) # Equation differentielle (3c) du sujet
A0 = (Rs/(2*r**2)) + (3/2)*((Rs*L**2 - r*L**2)/(r**4)) # Equation differentielle (3c) du sujet
print ' '
print 't_point vaut :' ,t_point
print 'phi_point vaut :' ,phi_point
print 'V0**2 vaut :' ,V0**2
print 'A0 vaut :' ,A0
print ' '
# ----------------------------------------------------------------- #
# Methode d'Euler explicite pour le mouvement de chute libe radiale #
# ----------------------------------------------------------------- #
t0 = 0.0
tf = 100.0
y0 = 0.0
n = 10000.0
def Euler (t_point, phi_point, V0, A0, t0, y0, tf, n) :
h = (tf - t0)/n # Definition du pas
t = np.arange(t0,tf,h)
y = np.zeros(n)
y[0] = y0
for i in range (n-1) :
x[i+1] = x[i] + h
y[i+1] = y[i] + h*t_point(y[i],x[i])
print x[i+1]
return(x,y) |
Partager