Parcial de Laboratorio 1 - 2024 - 1c

Hagan cada problema por separado y entreguen el resultado en formato PDF con el nombre: Apellido, Nombre - Problema X

Por ejemplo:

Adjunten los archivos como PDF separados en el campus.

Archivos con datos

Puede descargar archivos con datos para los problemas 1 y 3 desde:

(click derecho y guardar como), o corriendo el siguiente código:

from urllib.request import urlretrieve

BASE_URL = "https://materias.df.uba.ar/l1c2024c1/files/2024/06/"
for name in ["problema1.txt", "problema3.txt"]:
    urlretrieve(BASE_URL + name, name)

Problema 1

A León siempre le llamó la atención el péndulo gigante que se encuentra en el hall del pabellón 2. Luego de haber cursado Laboratorio 1, se le ocurrió que podría estimar su largo \(L\) midiendo su periodo de oscilación \(T\). Para esto, utilizaría la aproximación de ángulos pequeños:

\[ T = 2 \pi \sqrt{\frac{L}{g}} \tag{1}\]

donde \(g\) es la aceleración de la gravedad. Entonces, realizó 50 mediciones con un cronómetro de resolución \(0.01 \, s\). Los valores se encuentran en la Tabla 1.

Tabla 1: Mediciones del periodo del péndulo (en segundos).
5.10 5.12 5.10 5.01 5.12 5.10 5.05 5.11 5.10 5.09
5.08 5.11 5.04 5.07 5.05 5.11 5.08 5.06 5.04 5.07
5.08 5.06 5.14 5.13 4.94 4.98 5.07 5.06 5.09 5.09
5.18 5.02 5.06 5.18 5.11 5.11 5.05 5.00 5.09 5.08
5.02 5.04 5.08 5.03 5.07 5.08 5.08 5.05 5.11 5.12
import numpy as np

t = np.loadtxt("problema1.txt", skiprows=1)

1.

Visualice las mediciones. ¿Hay alguna tendencia en estas? Calcule la media y la desviación estándar de los datos. Realice un histograma de las mediciones y grafique una distribución gaussiana con la misma media y desviación estándar de las mediciones. Discuta como normaliza.

Para visualizar las mediciones, primero vamos a hacer un gráfico de puntos del periodo en función del número de medición. Asumiendo que las mediciones están en el mismo orden en el que fueron tomadas, podríamos ver si hubo algún cambio temporal en el periodo. En este caso, no se observa ningún cambio apreciable en función del número de medición.

Luego, para observar en que rango hay más mediciones, vamos a hacer un histograma. Se observa que hay una mayor densidad alrededor de 5.1 s, y decae hacia los extremos. Para poder comparar con la distribución gaussiana, cuya área está normalizada a 1, normalizamos el histograma con density=True.

import matplotlib.pyplot as plt
import scipy.stats

fig, axes = plt.subplots(ncols=2, sharey=True, figsize=(6, 2))

axes[0].set(
    xlabel="Número de medición",
    ylabel="Tiempo [s]",
)
axes[0].plot(t, "o")

axes[1].set(xlabel="Densidad de mediciones")
axes[1].hist(t, bins="auto", orientation="horizontal", density=True)
x = np.linspace(np.min(t), np.max(t), 1000)
axes[1].plot(scipy.stats.norm.pdf(x, np.mean(t), np.std(t)), x)

2.

¿Cuál es la incerteza absoluta y relativa de León al medir un periodo?

En este punto, hay dos interpretaciones posibles. En ambas interpretaciones, vamos a asumir que no hay un error de exactitud (las mediciones no están “corridas hacia un lado del valor real”).

Interpretación 1: Consideremos la primer medición \(t_1 = 5.10 \,s\). Como estamos limitados por la resolución del cronómetro, solo podemos decir que el valor real correspondiente a cuando León presionó el cronómetro es un número en el intervalo \([5.095, 5.105) \, s\), o \((5.100 ± 0.005) \, s\). Si el cronómetro tuviese más resolución, podríamos conocer más decimales de ese tiempo que el cronómetro redondeó al número a \(5.10 \, s\).

Sin embargo, este intervalo dado por esta incerteza solo contendría al valor real si obtenemos siempre el mismo resultado al repetir la medición.

Interpretación 2: Como León hizo muchas mediciones, sabe que sus datos tienen una variación más grande que la resolución del croneometro. Puede estimar su incerteza al medir un periodo como la desviación estándar de las mediciones:

np.std(t)
0.044402252195130804

Es decir, su precisión es \(44\ \mathrm{ms}\).

El intervalo dado por una medición y está incerteza contiene al valor real el 68% de las veces (si los errores son gaussianos).

3.

Estime el periodo del péndulo (con su incerteza).

Para estimar el periodo \(T\) del péndulo, vamos a tomar el promedio \(\bar{T}\) de las \(N\) mediciones, ya que asumimos que la variación se debe a la imprecisión de León al medir el periodo. El error \(\sigma_{\bar{T}}\) asociado al promedio está dado por \(\sigma_{\bar{T}} = \frac{\sigma}{\sqrt{N}}\), donde \(\sigma\) es la desviación estándar de las mediciones.

import labo1

num_mediciones = np.size(t)
t_promedio = np.mean(t)
t_desv_est = np.std(t)
t_error_promedio = t_desv_est / num_mediciones**0.5

t_promedio, t_error_promedio
(5.0762, 0.006279426725426451)

Entonces, el periodo es \((5.0762 ± 0.0063) \, \mathrm{s}\)

4.

Considerando \(g=\left(9.800 \pm 0.010\right)\ \frac{\mathrm{m}}{\mathrm{s}^{2}}\), ¿cuál es el largo del péndulo (con su incerteza)?

Despejando \(L\) de la Ecuación 3, obtenemos:

\[ L = g \left(\frac{T}{2\pi}\right)^2 \]

Por propagación de errores, el error en largo \(\sigma_L\) es:

\[ \begin{aligned} \sigma_{L}^2 &= \left( \frac{\partial L}{\partial T} \, \sigma_T \right)^2 + \left( \frac{\partial L}{\partial g} \, \sigma_g \right)^2 \\ &= \left( \frac{g T}{2\pi^2} \, \sigma_T \right)^2 + \left( \left(\frac{T}{2\pi}\right)^2 \, \sigma_g \right)^2 \\ &= \left( 2 \frac{L}{T} \, \sigma_T \right)^2 + \left( \frac{L}{g} \, \sigma_g \right)^2 \\ &= L^2 \left[ \left( 2 \frac{\sigma_T}{T} \right)^2 + \left( \frac{\sigma_g}{g} \right)^2 \right] \end{aligned} \tag{2}\]

g, dg = 980, 1  # cm / s^2
largo = g * (t_promedio / (2 * np.pi))**2
error_largo = largo * (
    (dg / g) ** 2 +
    2 * (t_error_promedio / t_promedio) ** 2
) ** 0.5

largo, error_largo
(639.6520388500262, 1.2954705085252638)

El largo del péndulo es \(L=(639.7 ± 1.3) \, cm\), donde usamos el valor e incerteza del periodo del punto anterior.

5.

Si León hubiese realizado una medición más, ¿en que rango esperaría que caiga (con un 68% de probabilidad)?

Asumiendo que la distribución es gaussiana, el 68% de las mediciones caen en un rango de una desviación estándar alrededor del promedio:

t_promedio, t_desv_est
(5.0762, 0.044402252195130804)

\[(5.076 ± 0.044) \, s\]

6.

Si pudiera realizar tantas mediciones del periodo como quisiera, ¿cuál sería la precisión máxima (más chica) para el largo a la que podría llegar?

La precisión del promedio de los periodos es \(\frac{\sigma_T}{\sqrt{N}}\). Para \(N\) lo suficientemente grande, podemos despreciar el término del error en \(T\) en la Ecuación 2 y obtener:

\[ \begin{aligned} \sigma_{L}^2 &= \left( \frac{\partial L}{\partial T} \, \sigma_T \right)^2 + \left( \frac{\partial L}{\partial g} \, \sigma_g \right)^2 \\ &\approx \left( \frac{\partial L}{\partial g} \, \sigma_g \right)^2 \\ &= L^2 \left( \frac{\sigma_g}{g} \right)^2 \end{aligned} \]

error_largo_min = largo * (dg / g)

error_largo_min
0.6527061620918635

La precisión quedaría limitada por la incerteza en \(g\) a \(0.65 \, cm\).

Problema 2

Para medir el periodo de un péndulo en pequeñas oscilaciones, se utiliza un “sensor de fotopuerta” (photogate) con el que se obtiene el gráfico de la Figura 1.

Figura 1: Datos adquiridos con un photogate y el Programa MotionDAQ

1.

¿Con qué frecuencia de adquisición de datos se tomaron las mediciones de la Figura 1?

En el intervalo \(0\,s \leq t < 1\,s\) hay 20 mediciones. Por lo tanto, la frecuencia de adquisición \(f\) es \[ f = \frac{\# muestras}{tiempo} = \frac{20}{1 \, s} = 20 \, Hz \]

2.

Exprese cuál es el valor del tiempo \(t_i\) marcado en la Figura 1.

Entre cada medición hay \(\Delta t = \frac{1}{f} = 0.05 s\), y hay 12 intervalos \(\Delta t\) entre \(t=0 \, s\) y \(t_i\). Por lo tanto,

\[ t_i = 12 \Delta t = 0.60 \, s \]

3.

Estime el período de oscilación del péndulo.

Cada vez que el se bloquea o desbloquea, cambia la señal entre \(0\,V\) y \(5\,V\). En un periodo del péndulo, tenemos 4 de estos cambios: dos cuando va en una dirección y otros dos cuando vuelve. Por lo tanto, el periodo \(T\) del péndulo sería, por ejemplo, desde \(t_0=0 \,s\) hasta \(t_i\):

\[ T = t_i - t_0 \]

En ambos casos, no sabemos exactamente cuando el péndulo bloquea (o desbloquea) el sensor, sino que sucede entre esos tiempos, donde el voltaje es \(5\,V\), y la siguiente muestra, donde el voltaje es \(0\,V\). Entonces, el error asociado a \(t_0\) y \(t_i\) es \(\Delta t = 0.05 \, s\).

Por propagación de erroers, podemos obtener el error de \(T\) como:

\[ \begin{aligned} \sigma_T^2 &= \left(\frac{\partial T}{\partial t_0} \, \Delta t_0\right)^2 + \left(\frac{\partial T}{\partial t_i} \, \Delta t_i\right)^2 \\ &= \left(1 \, \Delta t\right)^2 + \left(1 \, \Delta t\right)^2 \\ &= 2 \Delta t^2 \end{aligned} \]

\[ \Delta T = \sqrt{2} \Delta t \]

Entonces, el periodo es \(T = (0.60 ± 0.07) \, s\)

4.

Para ángulos pequeños, el periodo \(T\) del péndulo se relaciona con el largo \(L\) como \[ T = 2 \pi \sqrt{\frac{L}{g}} \tag{3}\] donde \(g\) es la aceleración de la gravedad. Considerando \(g = (9.80 ± 0.01) \, m/s^2\), estime el largo del péndulo,

Despejando \(L\) de Ecuación 3, obtenemos:

\[ L = g \left(\frac{T}{2\pi}\right)^2 \]

Por propagación de errores, obtenemos:

\[ \begin{aligned} \sigma_{L}^2 &= \left( \frac{\partial L}{\partial T} \, \sigma_T \right)^2 + \left( \frac{\partial L}{\partial g} \, \sigma_g \right)^2 \\ &= \left( \frac{g T}{2\pi^2} \, \sigma_T \right)^2 + \left( \left(\frac{T}{2\pi}\right)^2 \, \sigma_g \right)^2 \\ &= \left( 2 \frac{L}{T} \, \sigma_T \right)^2 + \left( \frac{L}{g} \, \sigma_g \right)^2 \\ &= L^2 \left[ \left( 2 \frac{\sigma_T}{T} \right)^2 + \left( \frac{\sigma_g}{g} \right)^2 \right] \end{aligned} \]

import math

g, dg = 9.80, 0.01  # m/s^2
T, dT = 0.60, 0.07
L = g * (T / (2 * math.pi)) ** 2
dL = L * ((2 * dT / T)**2 + (dg / g)**2)*0.5

L, dL
(0.08936528397254191, 0.002432768144285836)

El largo del péndulo es \((8.94 ± 0.24) \, \mathrm{cm}\).

Problema 3

La velocidad limite \(v_{lim}\) que alcanza un cuerpo esférico de radio \(R\) y densidad \(\rho\) en caída libre dentro de un fluido no turbulento de viscosidad dinámica \(\mu\) y densidad \(\rho_f\) es:

\[ v_{\lim} = \frac{2}{9} \frac{\rho - \rho_f}{\mu} g R^2 \tag{4}\]

donde \(g\) es la aceleración de la gravedad.

En un experimento de Labo 1, se tiran varias esferas de aluminio de distintos diámetros en tubos de aceite, de manera que alcanzan rápidamente la velocidad limite. En ese rango, se mide con un cronometro el tiempo que tarda cada esfera en recorrer la distancia de \((1.00 ± 0.01) \, \mathrm{m}\). Se obtienen los datos que se muestran en la Tabla 2.

Tabla 2: Valores nominales medidos para el problema 3. No están incluidas las incertezas.
0 1 2 3 4 5 6 7
radio [mm] 1.00 1.25 1.50 1.75 2.00 2.25 2.50 2.75
tiempo [s] 14.701 9.360 6.520 4.661 3.571 2.817 2.332 1.895
8 9 10 11 12 13 14 15
radio [mm] 3.00 3.25 3.50 3.75 4.00 4.25 4.50 4.75
tiempo [s] 1.509 1.352 1.237 1.083 0.937 0.789 0.625 0.653
import numpy as np

r, t = np.loadtxt("problema3.txt").T

1.

A partir de esos datos, construyan un gráfico de \(v_{\lim}\) vs \(R^{2}\). Tenga en cuenta que el diámetro de las esferas se midieron con un calibre de resolución \(0.01 \, \mathrm{mm}\), y la precisión que se tenía al medir con el cronómetro era de \(50 \, \mathrm{ms}\).

Podemos calcular la velocidad limite \(v\) como \(v = x / t\), donde \(t\) el tiempo que tardó en recorrer la distancia \(x\).

Propagando los errores de \(x\) y \(t\), obtenemos el error de \(v\):

\[ \begin{aligned} \sigma_v^2 &= \left( \frac{\partial v}{\partial x} \sigma_x \right)^2 + \left( \frac{\partial v}{\partial t} \sigma_t \right)^2 \\ &= \left( \frac{1}{t} \sigma_x \right)^2 + \left( \frac{x}{t^2} \sigma_t \right)^2 \\ &= \left( v \frac{\sigma_x}{x} \right)^2 + \left( v \frac{\sigma_t}{t} \right)^2 \end{aligned} \]

Reordenando, llegamos a:

\[ \sigma_v = v \, \sqrt{ \left( \frac{\sigma_x}{x} \right)^2 + \left( \frac{\sigma_t}{t} \right)^2 } \]

Por otro lado, el error del diámetro \(\Delta D\) está dado por la resolución del calibre: \(0.01 \, \mathrm{mm}\). Por lo tanto, como el radio \(R\) es la mitad del diámetro, el error en el radio \(\Delta R\) es \(\Delta R = \Delta D / 2\).

Finalmente, como nos interesa gráficar \(y=R^2\), el error en dicha variable es \(\Delta y = 2 R \Delta R\).

import matplotlib.pyplot as plt

x = 1000  # mm
dx = 10  # mm
dt = 0.050  # segundos
dr = 0.01  # mm

v = x / t
dv = ((dx / t) ** 2 + (x * dt / t**2) ** 2) ** 0.5

r2 = r**2
dr2 = 2 * r * dr

plt.errorbar(v, r**2, yerr=dr2, xerr=dv, fmt=".")
plt.xlabel("Velocidad límite [$mm/s$]")
plt.ylabel("$Radio^2$ [$mm^2$]");

2.

Ajusten los datos por la función predicha por el modelo y evalúen la bondad del ajuste. Discutan el resultado.

Considerando la Ecuación 4, ajustamos un modelo

\[ v_{lim} = A R^2 \tag{5}\]

import labo1


def v_lim(x, A):
    return A * x


result = labo1.curve_fit(v_lim, r2, v, y_err=dv)
fig, axes = result.plot_with_residuals(x_err=dr2)
A, dA = labo1.to_significant_figures(*result["A"])
axes[0].set(
    ylabel="Velocidad límite [$mm/s$]",
    title=f"({A} ± {dA}) [$1 / (mm \\cdot s)$]",
)
axes[1].set(
    xlabel="$Radio^2$ [$mm^2$]",
    ylabel="Residuos [$mm/s$]",
)
fig.align_labels()

Para evaluar la calidad del ajuste, podemos observar la falta de estructura en los residuos. También podemos calcular el \(\chi^2\) reducido, que mide el promedio de las distancias entre las mediciones y la curva pesadas por su error. Si los errores están bien determinados y el modelo es el correcto, se espera un valor cercano a 1:

residuos = result.y - result.func(result.x, *result.params)
chi2 = np.sum((residuos / result.y_err)**2)
chi2_reducido = chi2 / (len(result.y) - len(result.params))

chi2_reducido
0.968686612415775

3.

Teniendo en cuenta que la diferencia de densidad entre aluminio y el aceite \(\Delta\rho = \rho - \rho_f\) es \((1.7890 ± 0.0018) \, \frac{\mathrm{g}}{\mathrm{cm}^{3}}\) y la aceleración de la gravedad \(g\) es \((9.80 ± 0.01) \, \frac{\mathrm{m}}{\mathrm{s}^{2}}\), estimen la viscosidad del aceite utilizado.

Comparando el modelo físico Ecuación 4 con el ajustado Ecuación 5:

\[ v_{lim} = A R^2 = \frac{2}{9} \frac{(\rho - \rho_f)}{\mu} g R^2 \]

podemos obtener \(\mu\) a partir de \(A\) como:

\[ \mu = \frac{2}{9} \Delta\rho \, g \frac{1}{A} \]

Para obtener su incerteza \(\sigma_\mu\), propagamos con respecto a las variables que tienen una incerteza:

\[ \begin{aligned} \sigma_{\mu}^2 &= \left( \frac{\partial \mu}{\partial A} \, \sigma_A \right)^2 + \left( \frac{\partial \mu}{\partial g} \, \sigma_g \right)^2 + \left( \frac{\partial \mu}{\partial (\Delta\rho)} \, \sigma_{\Delta\rho} \right)^2 \\ &= \left( \frac{\mu}{A} \, \sigma_A \right)^2 + \left( \frac{\mu}{g} \, \sigma_g \right)^2 + \left( \frac{\mu}{\Delta\rho} \, \sigma_{\Delta\rho} \right)^2 \\ &= \mu^2 \left[ \left( \frac{\sigma_g}{g} \right)^2 + \left( \frac{\sigma_A}{a} \right)^2 + \left( \frac{\sigma_{\Delta\rho}}{\Delta\rho} \right)^2 \right] \end{aligned} \]

A, dA = result["A"]  # 1 / (mm s)
g, dg = 9800, 10  # mm / s^2
diff_rho = 1.7890  # g / cm^3
diff_rho_err = 0.0018 # g / cm^3

mu = (2/9) * diff_rho * g / A
mu_err = mu * ((dg/g)**2 + (dA / A)**2 + (diff_rho_err / diff_rho)**2)**0.5

mu, mu_err
(56.6166224686403, 0.2903568058947532)

La viscosidad del fluido \(\mu\) es \((56.62 ± 0.29) \, \mathrm{mPa} \cdot \mathrm{s}\).