## Script  : méthode odeint pour l'étude d'un tir en tenant compte de la résistance de l'air (force de frottement proportionnelle à la vitesse au carré)

import numpy as np
import matplotlib.pyplot as plt
from math import *
from scipy.integrate import odeint

# Données du problème
Vx0 = 100  # CI sur la composante selon x de le vitesse initiale
Vy0 = 100   # CI sur la composante selon y de le vitesse initiale

# Données pour l'observation
T = 10 # durée de l'étude
n = 800


# Définition de l'équation différentielle
def système (X,t):  # Attention à l'inversion de t et X
    Vx = X[0]
    Vy = X[1]
    x = X[2]
    y = X[3]
    X_point = [-Vx*np.sqrt(Vx*Vx+Vy*Vy),-Vy*np.sqrt(Vx*Vx+Vy*Vy)-1,Vx,Vy]
    return X_point

t = np.linspace(0,T,n+1)
X = odeint(système, [Vx0,Vy0,0,0], t)
Vx = X[:,0]
Vy = X[:,1]
x = X[:,2]
y = X[:,3]
print(Vx) # renvoie les valeurs successives de Vx
print(Vy) # renvoie les valeurs successives de Vy
print(x) # renvoie les valeurs successives de x
print(y) # renvoie les valeurs successives de y

# Représentations graphiques
plt.figure(1)
plt.plot(x, y)
plt.title('Représentation de la trajectoire y en fonction de x')
plt.ylabel('y en m')
plt.xlabel('x en m')
plt.grid()
plt.show()
