Untitled
unknown
plain_text
2 years ago
1.1 kB
10
Indexable
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint
m = 1.0
k1 = 2.0
k2 = 3.0
k3 = 1.0
C = 7.0
def model(y, t):
x1, x2, v1, v2 = y
dx1dt = v1
dx2dt = v2
dv1dt = (k2 * (x2 - x1) - k1 * x1) / m
dv2dt = (-k2 * (x2 - x1) - k3 * x2) / m
return [dx1dt, dx2dt, dv1dt, dv2dt]
# Initial conditions for three different cases
initial_conditions = [
[C, -C, 0, 0], # (i) x = C, y = -C
[-C, -C, 0, 0], # (ii) x = -C, y = -C
[-C / 2, -C, 0, 0], # (iii) x = -C/2, y = -C
]
# Time points
t = np.linspace(0, 10, 1000)
# Simulate and plot for each initial condition
for i, initial_condition in enumerate(initial_conditions):
sol = odeint(model, initial_condition, t)
# Plot the displacement-time graph for each mass
plt.figure()
plt.plot(t, sol[:, 0], label=f'Mass 1')
plt.plot(t, sol[:, 1], label=f'Mass 2')
# Set labels and title
plt.xlabel('Time')
plt.ylabel('Displacement')
plt.title(f'Displacement-Time Graph - Case {i+1}')
plt.legend()
plt.grid(True)
plt.show()Editor is loading...
Leave a Comment