3ο-Θέμα Γ Λυκείου Διαγωνισμού Φυσικής 2025

preview_player
Показать описание
Ένα Θέμα από τον πανελλήνιο διαγωνισμό Φυσικής του 2025 της ΕΕΦ το οποίο είναι εντελώς εκτός ύλης Λυκείου αν λυθεί σωστά. Η λύση που παρουσιάστηκε έχει επιστημονικό πρόβλημα.
Рекомендации по теме
Комментарии
Автор

Και σε ένα σημείο μου έφυγε και είπα μήκος κύματος αντί φυσικό μήκος.

vassiliskaravolas
Автор

Το πρόγραμμα σε python:

import numpy as np

import matplotlib.pyplot as plt

# System parameters
m = 1.0 # kg
L0 = 1.0 # m (rest length)
k = 100.0 # N/m
g = 10.0 # m/s²

# Initial conditions
theta0 = np.pi/2 # rad (horizontal position)
omega0 = 0 # rad/s (initially at rest)
r0 = L0 # m (spring at rest length)
v0 = 0.0 # m/s (no initial radial velocity)

# Time parameters
t_start = 0.0
t_end = 2.0
dt = 0.001 # Time step (adjust for accuracy)
steps = int((t_end - t_start) / dt)

# State vector: [theta, omega, r, v]
y = np.array([theta0, omega0, r0, v0])

# Storage for results
time = np.zeros(steps)
theta = np.zeros(steps)
r = np.zeros(steps)

# Derivatives function
def derivatives(t, y):
theta, omega, r, v = y
dtheta = omega
domega = (-2*v*omega)/r - (g*np.sin(theta))/r
dr = v
dv = r*omega**2 + g*np.cos(theta) - (k/m)*(r - L0)
return np.array([dtheta, domega, dr, dv])

# RK4 integration
for i in range(steps):
time[i] = t_start + i*dt

# Store current state
theta[i], r[i] = y[0], y[2]

# RK4 steps
k1 = derivatives(time[i], y)
k2 = derivatives(time[i] + dt/2, y + dt/2 * k1)
k3 = derivatives(time[i] + dt/2, y + dt/2 * k2)
k4 = derivatives(time[i] + dt, y + dt * k3)

y += (dt/6) * (k1 + 2*k2 + 2*k3 + k4)

# Stop when θ crosses π/2
if y[0] >= np.pi/2:
print(f"Reached θ=π/2 at t = {time[i]:.3f} s")
print(f"Spring extension: {y[2]-L0:.3f} m")
print(f"Radial acceleration: {y[3]:.1f} m/s²") # Note: dv/dt ≈ (v_new - v_old)/dt
print(f"Radial velocity: {dv[4]:.1f} m/s²") # Note: dv/dt ≈ (v_new - v_old)/dt
# print(f"Angular velocity: {y[5]:.1f} m/s²") # Note: dv/dt ≈ (v_new - v_old)/dt
break



for j in th0[0]:
print(f'Time:{time[j]} and r-L0:{r[j]-L0} and and ')

# Plot results
fig1=plt.figure(figsize=(10, 5))
plt.plot(time[:i+1], theta[:i+1], label=r'$\theta(t)$ [rad]')
plt.axhline(0, color='r', linestyle='--', label=r'$\theta=\pi/2$')
plt.xlabel('Time (s)')
plt.ylabel('theta (rad)')
plt.legend()
plt.grid(True)
plt.savefig('theta_plot_L1.png', dpi=120)

fig2=plt.figure(figsize=(10, 5))
plt.plot(time[:i+1], r[:i+1]-L0, label=r'$r(t)-L_0$ [m]')
plt.axvline(time[680], color='r', linestyle='--', label=r'$\theta=\pi/2$')
plt.xlabel('Time (s)')
plt.ylabel('r (m)')
plt.legend()
plt.grid(True)
plt.savefig('r_plot_L1.png', dpi=120)

plt.show()

vassiliskaravolas