|
|
import numpy as np |
|
|
import matplotlib.pyplot as plt |
|
|
|
|
|
|
|
|
c = 299792458 |
|
|
hbar = 1.0545718e-34 |
|
|
alpha = 1.0 |
|
|
|
|
|
|
|
|
string_length = 1e-35 |
|
|
string_tension = 1e30 |
|
|
|
|
|
|
|
|
initial_position = 0.0 |
|
|
initial_velocity = 1e6 |
|
|
|
|
|
|
|
|
time_step = 5.39e-44 * 1e3 |
|
|
total_time = 1e-40 |
|
|
|
|
|
|
|
|
num_steps = int(total_time / time_step) + 1 |
|
|
position = np.zeros(num_steps) |
|
|
velocity = np.zeros(num_steps) |
|
|
|
|
|
|
|
|
position[0] = initial_position |
|
|
velocity[0] = initial_velocity |
|
|
|
|
|
|
|
|
for i in range(1, num_steps): |
|
|
|
|
|
acceleration = -(string_tension / hbar) * position[i - 1] |
|
|
|
|
|
|
|
|
velocity[i] = velocity[i - 1] + acceleration * time_step |
|
|
position[i] = position[i - 1] + velocity[i] * time_step |
|
|
|
|
|
|
|
|
plt.figure(figsize=(10, 6)) |
|
|
plt.plot(np.arange(num_steps) * time_step, position, label="String Position") |
|
|
plt.xlabel("Time (s)") |
|
|
plt.ylabel("Position (m)") |
|
|
plt.title("String Evolution in Time") |
|
|
plt.grid(True) |
|
|
plt.legend() |
|
|
plt.show() |
|
|
|
|
|
|