import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint

# Constantes du système
m1 = 264000000  # Masse
k1 = 225000000  # Constante de rappel du ressort
x0 = 0.25       # Position initiale

# Fonction définissant l'équation différentielle
def f(X, t):
    x1, x2 = X  # Décomposition du vecteur X en x1 et x2
    dx1_dt = x2
    dx2_dt = -k1 * x1 / m1
    return [dx1_dt, dx2_dt]

# Conditions initiales
X0 = [x0, 0]  # Position initiale et vitesse initiale (vitesse initiale = 0)

# Plage de temps (de 0 à 60 secondes, avec 200 000 points)
tab_instants = np.linspace(0, 60, 200000)

# Résolution de l'équation différentielle
X_scipy = odeint(f, X0, tab_instants)

# Extraction des positions (x1) pour tous les instants
positions = X_scipy[:, 0]

# Tracé des résultats
plt.plot(tab_instants, positions)
plt.xlabel("Temps (s)")
plt.ylabel("Position (m)")
plt.title("Oscillation d'un système masse-ressort")
plt.grid()
plt.show()



           

Embed on website

To embed this program on your website, copy the following code and paste it into your website's HTML: