L,T,sigma_T
0.300,1.168,0.050
0.340,1.128,0.050
0.370,1.239,0.050
...El periodo del péndulo (parte 2)
Esta guía es una continuación de la guía anterior.
En el modelo del péndulo ideal, el largo L va desde el punto de pivote hasta el centro de masa de la plomada que cuelga de dicho punto. Si se quiere medir de forma directa, se puede cometer un error de exactitud si se mide como muestra la linea roja en la Figura 1. Otra alternativa es medir por separado el largo L_{hilo} del hilo y la distancia L_0 del centro de masa al borde de la plomada. Con esta segunda opción, podemos reescribir la ecuación del periodo del péndulo como:
T = 2 \pi \sqrt{\frac{L}{g}} = 2 \pi \sqrt{\frac{L_{hilo} + L_0}{g}} \tag{1}
Al igual que en la guía anterior, donde medimos T y L para determinar g, midiendo T, L_{hilo} y L_0 podríamos determinar g.
Si no pudiesemos medir la distancia al centro de masa L_0, ya sea porque la plomada no tiene una forma simétrica o la densidad no es uniforme, podríamos determinarla a partir de las mediciones de T, L_{hilo} y g.
Sin embargo, no vamos a hacer ni una ni la otra: vamos a determinar simultaneamente L_0 y g. Para ello, necesitamos al menos 2 de T y L_{hilo} para distintos largos del hilo. Con más de 2 mediciones de T y L_{hilo}, podemos usar el método de cuadrados mínimos para estimar L_0 y g.
1 Actividades
1.1 Evaluación de errores en cuadrados mínimos
Para hacer el ajuste, el método de cuadrados mínimos ordinarios considera que la variable en el eje de x no tiene error. En la práctica, se puede pedir que el error en y sea mucho mayor que el producto del error en el eje x por la derivada de la función a ajustar (Bevington y Robinson 2003, 102):
\sigma_y \gg \left|\frac{dy}{dx}\right| \sigma_x \tag{2}
- Calcular esta condición para la Ecuación 1 y reescribir en término de los errores relativos. Evaluar si se cumple considerando:
- L = 1 \, m y, por lo tanto, T \approx 2 \, s,
- \sigma_L \approx 1 \, mm,
- \sigma_T \approx 50 \, ms, es decir, utilizando una única medición del periodo, sin promediar ni acumular mediciones.
- ¿Qué sucede para valores de L más pequeños? Por ejemplo, L = 50 \, cm.
1.1.1 Extra
A diferencia del largo L, es posible reducir el error del periodo T, ya sea promediando o realizando una medicion acumulada de multiples periodos. Entonces, ¿se puede llegar a despreciar el error en T frente al de L tal que haya que considerar a L como variable en el eje y para el ajuste? Compare la precisión que necesitaría en T con el error de exactitud que se cometería por la aproximación de ángulos pequeños (ver guía anterior).
1.2 Ajuste por cuadrados mínimos
Realizar mediciones del largo de hilo L_{hilo} y periodo T para distintos largos del hilo y realizar un ajuste por cuadrados mínimos de la Ecuación 1.
- ¿Los residuos presentan una estructura aleatoria?
- ¿Es razonable el valor de L_0 que se obtiene?
- Realice un histograma de los residuos y calcule su desviación estándar. Compare con \sigma_T. ¿Podría haber estimado \sigma_T tomando una única medición de T para cada L?
Anotar las mediciones en dos columnas de una hoja de cálculo (Microsoft Excel / Google Docs). Luego, exportar como CSV (comma sepearated values). En Google Docs, ver menu Archivo -> Descargar.
Código: cargar archivo CSV y ajustar
El siguiente código utiliza el paquete labo1 (documentación) que no viene instalado en Google Colab. Pueden instalarlo con:
!uv pip install labo1Si el archivo de texto CSV tiene la siguiente estructura:
pueden importarlo utilizando pandas:
import pandas as pd
df = pd.read_csv("datos.csv")
df| L | T | sigma_T | |
|---|---|---|---|
| 0 | 0.30 | 1.168 | 0.05 |
| 1 | 0.34 | 1.128 | 0.05 |
| 2 | 0.37 | 1.239 | 0.05 |
| ... | ... | ... | ... |
| 18 | 0.93 | 2.011 | 0.05 |
| 19 | 0.96 | 1.910 | 0.05 |
| 20 | 1.00 | 2.083 | 0.05 |
21 rows × 3 columns
Luego, el código para realizar el ajuste es:
import labo1
import numpy as np
def eq_periodo(largo_hilo, g, L_0):
L = largo_hilo + L_0
periodo = 2 * np.pi * np.sqrt(L / g)
return periodo
# Ajuste de los parámetros
# de la función `eq_periodo`
# dadas las mediciones en `df`
r = labo1.curve_fit(
eq_periodo,
x=df["L"], # columna L
y=df["T"], # columna T
y_err=df["sigma_T"], # sigma T
)
# Gráfico con residuos
fig, axes = r.plot_with_residuals()
axes[0].set(ylabel="Periodo (s)")
axes[1].set(
ylabel="Residuos (m)",
xlabel="Largo (m)",
)
fig.align_labels()
# Mostrar parámetros ajustados
rResult(g=9.69 ± 0.38, L_0=-0.003 ± 0.024)
