fork download
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3.  
  4. # Datos del problema
  5. m = 4.5 # masa en Ton.s²/m
  6. k = 9500 # rigidez en Ton/m
  7. omega_n = np.sqrt(k / m) # Frecuencia natural en rad/s
  8.  
  9. # Condiciones iniciales para cada caso:
  10. # Caso 1: u_0 = 0 cm, dot u_0 = 200 cm/s
  11. A_1 = 0 # u_0 en metros
  12. B_1 = 2 / omega_n # dot u_0 = 200 cm/s = 2 m/s
  13.  
  14. # Caso 2: u_0 = 10 cm, dot u_0 = 200 cm/s
  15. A_2 = 0.1 # u_0 en metros (10 cm = 0.1 m)
  16. B_2 = 2 / omega_n # dot u_0 = 2 m/s
  17.  
  18. # Caso 3: u_0 = 10 cm, dot u_0 = 0 cm/s
  19. A_3 = 0.1 # u_0 en metros
  20. B_3 = 0 # dot u_0 = 0 m/s
  21.  
  22. # Definimos el tiempo de 0 a 5 segundos (500 puntos)
  23. t = np.linspace(0, 5, 500)
  24.  
  25. # Respuesta u(t) para cada caso
  26. u_1 = A_1 * np.cos(omega_n * t) + B_1 * np.sin(omega_n * t)
  27. u_2 = A_2 * np.cos(omega_n * t) + B_2 * np.sin(omega_n * t)
  28. u_3 = A_3 * np.cos(omega_n * t) + B_3 * np.sin(omega_n * t)
  29.  
  30. # Crear la gráfica
  31. plt.figure(figsize=(10, 6))
  32.  
  33. # Graficamos u(t) para cada caso
  34. plt.plot(t, u_1, label='Caso 1: u_0=0, dot u_0=200 cm/s', color='r')
  35. plt.plot(t, u_2, label='Caso 2: u_0=10 cm, dot u_0=200 cm/s', color='g')
  36. plt.plot(t, u_3, label='Caso 3: u_0=10 cm, dot u_0=0 cm/s', color='b')
  37.  
  38. # Etiquetas y leyenda
  39. plt.title('Respuesta de vibración libre para diferentes condiciones iniciales')
  40. plt.xlabel('Tiempo [s]')
  41. plt.ylabel('Desplazamiento u(t) [m]')
  42. plt.legend()
  43. plt.grid(True)
  44.  
  45. # Mostrar la gráfica
  46. plt.show()
  47.  
Success #stdin #stdout 0.57s 55384KB
stdin
Standard input is empty
stdout
Standard output is empty