Está en la página 1de 13

24/6/2021 Labo 1B 2021 1c - Parcial - Problema 2.

ipynb - Colaboratory

Problema 2
Resumen
1. Enunciado del problema
2. Comentarios generales y criterio de corrección
3. Resolución "mínima" del problema
4. Extras de cosas que no hicimos énfasis o directamente no dimos en clase

Enunciado
(Continuando la historia del parcial del cuatrimestre anterior)

En el capítulo anterior: una noche de tormenta, 10 amigues se habían juntado a comer un


asado, y midieron la distancia a la que se encontraba la tormenta cronometrando el tiempo
entre que veían el relámpago y escuchaban el trueno. Sabiendo que la velocidad del sonido es
(343 ± 3) m/s, determinaron que la tormenta se encontraba a (1760 ± 25) m.

Sol, que estaba haciendo el asado y no quería apurarlo, quería saber si la tormenta se estaba
acercando y, en dicho caso, si tenía al menos 25 min para terminarlo antes de que se largara a
llover. Entonces, les amigues decidieron volver a medir a los 5 min, para determinar la distancia
que había recorrido la tormenta, y, a partir de ésta, estimar el tiempo que tardaría en llegar.

El primero en reportar su medición fue Agustín, que estaba hambriento y midió 3,14 s. Débora,
que era muy precisa midiendo, obtuvo un valor de 4,53 s. Jessica, que ya iba por su segunda
copa de vino, midió 5,87 s. El resto de les asistentes midieron: 4,61 s; 4,63 s; 4,62 s; 4,37 s; 4,58
s; 4,74 s; 4,61 s y 4,02 s.

a) ¿Qué valor reportarían para el tiempo entre el relámpago y el trueno? ¿Son todas las
mediciones confiables? Justifique.

b) ¿A qué velocidad se mueve la tormenta?

c) ¿Cuándo llegará la tormenta? ¿Hay 25 minutos de margen para terminar el asado?

Comentarios generales y criterio de corrección


Al corregir parcial, dividi la corrección en las siguientes 5 categorías:

1. Si consideraban que las mediciones de Jessica y Agustín eran confiables: 30 / 33 = 94%


dijeron que no eran confiables.

2. Si excluian las mediciones de Jessica y Agustín, ya que no eran confiables: 11 / 33 = 34%


excluyeron las mediciones.

https://colab.research.google.com/drive/19BqPJytAF3xteke5DT_Ws9wVRnxO4cqz#scrollTo=-JID7AT4L07D&printMode=true 1/13
24/6/2021 Labo 1B 2021 1c - Parcial - Problema 2.ipynb - Colaboratory

3. Si usaban el error del promedio para el intervalo de confianza de los tiempos medidos: 24
/ 33 = 75% usaron el error del promedio.

4. Si reportaban un intervalo de tiempo para la llegada de la tormenta: 20 / 33 = 65%


reportaron un intervalo, mientras que el resto solo reportó el promedio: 37 minutos.

5. Si interpretaban este intervalo como un intervalo estricto, o como el ancho de una


gaussiana (es decir, 68% de probabilidades que caiga ahí): 12 / 33 = 39% lo interpretó
como una gaussiana. Aunque teniendo en cuenta que solo 20 reportaron un intervalo,
podríamos decir que 12 / 20 = 60% lo interpretaron de esta manera.

De estas 5 categorias, la 4 fue la única decisiva para aprobar. Reportar un intervalo es clave
para poder decir si la tormenta llega antes de los 25 minutos: no es lo mismo (37 ± 1)
minutos que (37 ± 20) minutos, ¿no? Este es un tema que se mencionó a lo largo de todo el
curso, desde la primer clase.

El resto de las categorias influyó poco en la nota. En particular, excluir datos no fue algo en lo
que hayamos hecho mucho énfasis, y menos como evaluar numéricamente si son poco
confiables. Incluso evalué como positivas respuestas equivocadas, pero que de todas maneras
trataron de evualuar la confiabilidad a partir de alguna métrica.

De todas maneras, no duden en consultarme si quieren saber algo con más detalle de sus
parciales. :)

Resolución
Importo librerias de Python que voy a utilizar:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from scipy import stats
from scipy.optimize import curve_fit

Datos del problema


Carguemos primero los datos del problema. Vamos a agregar una d para nombrar los errores
de las variables. Por ejemplo: x y dx .

En el array de tiempos, puse primero los de Jessica, Agustín, y Débora.

v_sonido, dv_sonido = 343, 3  # Velocidad del sonido [m/s]
x1, dx1 = 1760, 25  # Primer distancia medida [m]
 
# Los primeros 3 tiempos corresponden a los de Jessica, Agustín, y Débora.
tiempos = np.array([5.87, 3.14, 4.53, 4.61, 4.63, 4.62, 4.37, 4.58, 4.74, 4.61, 4

https://colab.research.google.com/drive/19BqPJytAF3xteke5DT_Ws9wVRnxO4cqz#scrollTo=-JID7AT4L07D&printMode=true 2/13
24/6/2021 Labo 1B 2021 1c - Parcial - Problema 2.ipynb - Colaboratory
 
tiempo_entre_mediciones = 5  # [min]

Punto a)
Lo primero que hacemos es mirar las mediciones. Un gráfico siempre da una intuición mejor de
los datos que ver una lista de números:

fig, ax = plt.subplots(1, 2, figsize=(12, 4))
 
ax[0].set(xlabel="Número de medición", ylabel="Tiempo [s]")
ax[0].plot(tiempos, "o")
 
ax[1].set(xlabel="Tiempo [s]", ylabel="Cantidad de mediciones")
ax[1].hist(tiempos);

Los primeros dos datos se alejan bastante del resto. Tiene sentido pensar que podrían no
reflejar bien la magnitud a medir:

1. El primer dato corresponde a Jessica, que había estado tomando y tardó más en accionar
el cronómetro.
2. El segundo dato corresponde a Agustín, que estaba hambriento. Ya sea que haya sido sin
querer, o a propósito para que apuren el asado, midió un valor mucho menor que el resto.

No hicimos mucho énfasis en este tema durante la materia, así que si no los excluyen, no se
consideró mal.

¿Cómo podemos justificar excluir estos valores? Hasta donde aprendimos en la materia,
alcanzaría con mostrar este gráfico y tener una causa razonable para sospechar de esos datos.
En la sección Extras, lo discuto en más profundidad, mencionando cosas interesantes que
probaron sus compañeres y, en particular, porque es importante tener una razón externa a los
datos.

tiempos_buenos = tiempos[2:]  # así excluyo los 2 primeros
tiempos_buenos

https://colab.research.google.com/drive/19BqPJytAF3xteke5DT_Ws9wVRnxO4cqz#scrollTo=-JID7AT4L07D&printMode=true 3/13
24/6/2021 Labo 1B 2021 1c - Parcial - Problema 2.ipynb - Colaboratory

array([4.53, 4.61, 4.63, 4.62, 4.37, 4.58, 4.74, 4.61, 4.02])

promedio = tiempos_buenos.mean()
desv_est = tiempos_buenos.std()
 
promedio, desv_est

(4.5233333333333325, 0.20077627128500813)

La variación de los datos se debe únicamente al tiempo de respuesta de las personas (para ver
el relámpago, escuchar el trueno, y accionar el cronómetro), ya que todos midieron el mismo
fenómeno (hubo un único relámpago-trueno). Entonces, el promedio (que mide el centro de los
datos) y la desviación estándar (que mide la variacion en los datos) nos dan un rango en el que
esperamos que hubiesen caido otras mediciones (si hubiese habido más). Si asumimos que los
datos son gaussianos, aproximadamente el 68% de las mediciones deberian caer en ese
intervalo: (4.52 ± 0.20) s.

Ahora, el mejor valor que podemos reportar para el tiempo t2 entre el relámpago y el trueno es
el promedio con el error del promedio:

N = tiempos_buenos.size
 
t2 = promedio
dt2 = desv_est / np.sqrt(N)
 
t2, dt2

(4.5233333333333325, 0.06692542376166938)

t2 = (4.523 ± 0.067) s

Aclaración: este es el mejor valor para el tiempo entre ese relámpago y trueno. Pero no nos
asegura que no haya otras fuentes de incerteza que no estemos considerando cuando
querramos usarlo para evaluar cuando llega la tormenta.

Por ejemplo, la tormenta puede ser extensa, de varios kilómetros. Si hubiesemos tenido mala
suerte y los dos relámpago-truenos que cronometramos hubieran correspondido a rayos que
cayeron "en la parte alejada de la tormenta", la tormenta en realidad hubiera estado mucho más
cerca de lo que estimamos y hubiese llegado mucho antes, arruinandole el asado a Sol.

Lo que es importante destacar es que esta información NO esta en nuestros datos. Tendríamos
que medir más rayos para poder evaluar una dispersión debido a esto.

Punto b)
Para saber la velocidad (media) v de la tormenta, necesitamos saber dos posiciones (x1 y x2 )
y el tiempo Δt que transcurrió entre ellas:

https://colab.research.google.com/drive/19BqPJytAF3xteke5DT_Ws9wVRnxO4cqz#scrollTo=-JID7AT4L07D&printMode=true 4/13
24/6/2021 Labo 1B 2021 1c - Parcial - Problema 2.ipynb - Colaboratory

x2 − x1
v =
Δt

El error estará dado por:


2 2 2
1 1 x2 − x1
2
σv = ( σx ) + ( σx ) + ( σΔt )
1 2
2
Δt Δt Δt

Podemos determinar la posición x2 como el tiempo t2 que tardó el sonido del trueno en llegar
por la velocidad del sonido vsonido :

x2 = vsonido t2

Propagando el error, llegamos a:


2 2 2
σx = (vsonido σt ) + (t2 σv )
2 2 sonido

x2 = v_sonido * t2
dx2 = np.sqrt( (v_sonido * dt2)**2 + (t2 * dv_sonido)**2 )
 
x2, dx2

(1551.503333333333, 26.666387521687128)

x2 = (1552 ± 27) m

Para poder calcular el error en la velocidad, nos haría falta saber el error en Δt = 5 min , que
no conocemos. ¿Les amigues cronometraron el tiempo que pasó entre las dos mediciones y
justo hubo un rayo a los 5 minutos y 0 segundos? ¿O se les olvidó y lo hicieron a ojo?

A mi se me olvidó considerar esto, pero a una compañera se le ocurrió ver que tan chiquito
tendría que ser el error en Δt para que sea despreciable.

Hacemos eso en los extras, más abajo.

Consideremos que es despeciable (σΔt = 0 ), y que justo hubo un rayo a los 5:00 minutos.

v = (x2 - x1) / tiempo_entre_mediciones
https://colab.research.google.com/drive/19BqPJytAF3xteke5DT_Ws9wVRnxO4cqz#scrollTo=-JID7AT4L07D&printMode=true 5/13
24/6/2021 Labo 1B 2021 1c - Parcial - Problema 2.ipynb - Colaboratory
dv = np.sqrt( (dx2)**2 + (dx1)**2 ) / tiempo_entre_mediciones
 
for unidad, factor in {"m/min": 1, "m/s": 1/60, "km/h": 60/1000}.items():
    print(f"v = ({factor * v:.3f} ± {factor * dv:.3f}) {unidad}")

v = (-41.699 ± 7.311) m/min

v = (-0.695 ± 0.122) m/s

v = (-2.502 ± 0.439) km/h

Entonces, la velocidad de la tormenta es v , donde el signo negativo se


m
= (−41.7 ± 7.3)
min

debe al sistema de referencia y corresponde a que se está acercando.

Punto c)
Como bien preguntaron algunos en el parcial, vamos a asumir que la tormenta se mueve en una
dimensión: hacia o alejandose del asado. Si no, la tormenta podria estar acercándose, pero
"pasarnos por al lado". En ese caso, la velocidad que determinamos en el punto anterior sería la
velocidad radial de la tormenta (en un sistema centrado en el asado).

Además, para calcular cuando llegará la tormenta, vamos a asumir que se mueve en un
movimiento rectilineo uniforme.

En ese caso, la trayectoria de la tormenta viene dada por:

x(t) = vt + x2

y queremos saber el tiempo tllegada cuando llega a x = 0 .


x2
tllegada = −
v

El error estará dado por:


2
2
1 x2
2
σ = ( σx ) + ( σv )
tllegada 2
2
v v

t_llegada = -x2 / v
dt_llegada = t_llegada * np.sqrt((dx2 / x2)**2 + (dv / v)**2)
 
t_llegada, dt_llegada

24.000000000000004

tllegada = (37.2 ± 6.6) min

Entonces, ¿hay tiempo para terminar el asado?

Por como quedó escrito el ejercicio, es confuso si los 25 minutos son después de la segunda
medición, o de la primera medición, y por lo tanto necesitan solo 20 minutos de changüí. Varios
preguntaron por este punto. Originalmente, lo pensé para el primer caso. Pero al ir
reescribiendo el enunciado, mutó y creo que se interpreta el segundo caso.

https://colab.research.google.com/drive/19BqPJytAF3xteke5DT_Ws9wVRnxO4cqz#scrollTo=-JID7AT4L07D&printMode=true 6/13
24/6/2021 Labo 1B 2021 1c - Parcial - Problema 2.ipynb - Colaboratory

Independientemente de cual interpreten, la tormenta no llegaría antes de los 30.6 min, así que
habría tiempo de sobra.

Pero recuerden que el intervalo de 1σ corresponde a un nivel de confianza de ∼ 68% (en el


caso de gaussiano). Si quisieramos dar un intervalo de mayor confianza, podríamos usar 2σ
que corresponden a ∼ 95% . En ese caso, la tormenta llegaría después de
(37.2 − 2 × 6.6) min = 24 min .

Extras

Excluyendo mediciones
Las mediciones las excluimos porque:

1. Estaban muy alejadas del resto.


2. Sabemos que esas personas tenian distintas condiciones para medir.

Pero, ¿cómo podemos justificar numéricamente excluir estos valores?

Comparando la distancia de estos valores al centro con la dispersión promedio de estos


valores. Es decir, comparando los residuos ri ¯
= ti − t contra la desviación estándar
−−−−−−−
N
σ = √
N
1

i
r
2
i
.

¿Pero como calculamos el promedio y la desviación estándar? ¿Excluimos los datos o no?

tiempos.mean(), tiempos[2:].mean()

(4.52, 4.5233333333333325)

El promedio da practicamente lo mismo si excluimos o no los datos poco confiables. Y algunos


usaron esto como justificación para incluirlos. Pero esto sucede porque los datos se desviaron
uno para cada lado, en distancias casi iguales. No sucede lo mismo con la desviación estandar:

tiempos.std(), tiempos[2:].std()

(0.6097540487770459, 0.20077627128500813)

No podemos evaluar si son confiables calculando medidas que los incluyan, ya que si
resultaran no ser confiables, esas medidas deberian estar equivocadas.

Entonces, el proceso es excluirlos, calcular a partir del resto, y evaluar si no diferian tanto y se
los puede incluir.

https://colab.research.google.com/drive/19BqPJytAF3xteke5DT_Ws9wVRnxO4cqz#scrollTo=-JID7AT4L07D&printMode=true 7/13
24/6/2021 Labo 1B 2021 1c - Parcial - Problema 2.ipynb - Colaboratory

Dentro del intervalo de 1σ


Algunes compañeres usaron la desviación estándar como medida de la dispersión de sus
datos, y evaluaron si se encontraban en dicho intervalo. Grafiquemoslo, poniendo la desviación
estandar como error:

fig, axes = plt.subplots(1, 2, figsize=(12, 4))
 
for ax, t in zip(axes, (tiempos[2:], tiempos)):
    ax.set(xlabel="Número de medición", ylabel="Tiempo [s]")
 
    promedio = t.mean()
    desv_est = t.std()
    ax.errorbar(np.arange(tiempos.size), tiempos, yerr=desv_est, fmt="o")
    ax.axhline(promedio, label=r"$\bar{t}$")
    ax.axhline(promedio + desv_est, label=r"$\bar{t} \pm \sigma$", linestyle="--"
    ax.axhline(promedio - desv_est, linestyle="--")
    
    ax.legend();
 
axes[0].set(title="Excluyendo")
axes[1].set(title="Sin excluir")

[Text(0.5, 1.0, 'Sin excluir')]

Aunque en ambos casos, excluyendolos y sin excluirlos, quedan afuera del intervalo de error, la
conclusión puede ser distinta.

Por empezar, recordemos que (si es una gaussiana) el 68% de los datos estan en el intervalo
dado por μ ± σ. Entonces es razonable que haya algunas mediciones por fuera de este
intervalo, como en el caso de la derecha. Pero en el caso de la izquierda, ya se encuentran muy
lejos.

Z-score
Sí, estan lejos. ¿Pero podemos dar un número?

Generalmente se mide este "muy lejos" en terminos de cuantas desviaciones estandar σt


(cuantas barritas de error) hay entre el punto y el promedio.
https://colab.research.google.com/drive/19BqPJytAF3xteke5DT_Ws9wVRnxO4cqz#scrollTo=-JID7AT4L07D&printMode=true 8/13
24/6/2021 Labo 1B 2021 1c - Parcial - Problema 2.ipynb - Colaboratory

Lo que queremos evaluar es si ti ¯ ≫ σ


− t t . Pasando σt para el otro lado, tenemos:
¯
ti − t
Z = ≫ 1
σt

que es la distancia de las mediciones al promedio medida en unidades de la desviación


estándar. Cuando la medición está a k veces la desviación estándar de distancia del proemdio,
¯ + k. σ
ti = t t , entonces Z = k .

En estadística, a este número se lo llama el Z-score.

Veamos a cuantas desviaciones estandar se encuentran las mediciones:

promedio = tiempos[2:].mean()
desv_est = tiempos[2:].std()
 
(tiempos - promedio) / desv_est

array([ 6.70729991, -6.88992441, 0.03320446, 0.43165792, 0.53127128,

0.4814646 , -0.76370247, 0.28223787, 1.07914479, 0.43165792,

-2.50693635])

Las primeras dos se encuentran a casi 7 desviaciones estándar, lo cual es un montón.


Considerando que nuesras mediciones tengan una distribución gaussiana o normal, la
probabilidad de que estén tan lejos es:

stats.chi(df=1).sf(6.7)

2.084199479668314e-11

Fijense que la conclusión cambia si calculabamos el promedio y la desviación estandar sin


excluirlos:

promedio = tiempos.mean()
desv_est = tiempos.std()
 
(tiempos - promedio) / desv_est

array([ 2.21400744, -2.2632076 , 0.01640006, 0.1476005 , 0.18040061,

0.16400055, -0.24600083, 0.09840033, 0.36080121, 0.1476005 ,

-0.82000276])

Hay una probabilidad baja, pero no despreciable de que esten a un poquito más de 2
desviaciones estandares:

stats.chi(df=1).sf(2.2)

0.02780689502699718
https://colab.research.google.com/drive/19BqPJytAF3xteke5DT_Ws9wVRnxO4cqz#scrollTo=-JID7AT4L07D&printMode=true 9/13
24/6/2021 Labo 1B 2021 1c - Parcial - Problema 2.ipynb - Colaboratory

Tener una causa


Es importante tener una causa para excluir las mediciones. Fijense que podriamos repetir este
analisis excluyendo también la última medición, que también estaba un poco apartada del
resto.

promedio = tiempos[2:-1].mean()
desv_est = tiempos[2:-1].std()
 
(tiempos - promedio) / desv_est

array([ 13.01878765, -14.66673545, -0.57044347, 0.24085391,

0.44367825, 0.34226608, -2.19303823, -0.06338261,

1.55921215, 0.24085391, -5.74246427])

Excluyendo las dos primeras y la última, podemos ver que la última tiene un Z-score de 5.7, es
decir, está a más de 5 sigmas del promedio. Hay una probabilidad muy baja de que suceda
esto:

stats.chi(df=1).sf(5.7)

1.1980742842254699e-08

Y de hecho, este es el umbral que se usa en física de partículas: si están a más de 5 sigmas, no
se debe a un error aleatorio, sino que "hay algo ahí".

¿Deberíamos excluir también esta medición? ¿Por qué excluimos las otras dos y no esta? Acá
es donde no solo es importante poder "medir" que esten lejos, sino tener una causa que lo
justifique. Después de todo, 5 sigmas es un limite arbitrario. Podrían haber puesto 2 sigmas,
como es lo estándar en otras areas de la ciencia*, y terminar excluyendo todos los datos.

Toda esta discusión de que limite poner, me hace acordar a las discusiones que se estan dando
del p-value y a un video de Veritasium que les puede resultar interesante: Is Most Published
Research Wrong?.

*En diversas disciplinas se suelen usar intervalos de confianza de 95%. Por ejemplo, las
pruebas de las vacunas para el SARS-CoV-2 se reportaron con ese nivel de confianza. En el
caso de la Sputnik V, que tenía una eficacia del 91.6%, el intervalo de 95% de confianza era que
la eficacia estaba entre 85.6 y 95.2 (ver abstract del paper). Demasiados decimales tiene ese
91.6%, ¿no?

Error en el tiempo entre mediciones


Como hizo su compañera, vamos a evaluar que tan chico tendría que ser el error en el tiempo
entre mediciones Δt = 5 min .

https://colab.research.google.com/drive/19BqPJytAF3xteke5DT_Ws9wVRnxO4cqz#scrollTo=-JID7AT4L07D&printMode=true 10/13
24/6/2021 Labo 1B 2021 1c - Parcial - Problema 2.ipynb - Colaboratory

Vamos a lo sencillo: probemos distintos valores.

import ipywidgets
 
@ipywidgets.interact(error_tiempo_entre_mediciones=(0, 1, 0.01))
def error_velocidad(error_tiempo_entre_mediciones):
 
    termino_1 = (dx1 / tiempo_entre_mediciones)**2
    termino_2 = (dx2 / tiempo_entre_mediciones)**2
    termino_3 = ((x2 - x1) / tiempo_entre_mediciones**2 * error_tiempo_entre_medi
    dv = np.sqrt(termino_1 + termino_2 + termino_3)
 
    for x in (termino_1, termino_2, termino_3, dv):
        print(f"{x:.3f}")

error_tiemp… 0.20
25.000

28.444

2.782

7.498

Considerando el redondeo, hasta Δt = 0.1 min = 6 s no cambia el segundo digito


significativo del error de la velocidad, y hasta Δt = 0.2 min = 12 s no cambia el primer digito
significativo.

¿Era despeciable? Todo depende de la precisión que quieran tener. También habría que ver
como impacta esto en la determinación del intervalo de tiempo de llegada, que en el fondo es lo
que nos interesa.

Extra: si les amigues hubiesen guardado los tiempos absolutos, en lugar del intervalo de tiempo
entre relámpago y trueno, podrían haberlo tenido en cuenta correctamente. Por ejemplo:
Relampago Trueno

1 20:53:43.72 20:53:48.11
2 20:58:52.10 20:56:56.51

Y de la diferencia entre los tiempos para el relampago, podian estimar mejor el intervalo entre
mediciones.

Correlaciones en los datos


Nunca lo mencionamos en la materia, pero la formula de propagación de errores la dimos para
el caso de mediciones independientes. La fórmula de propagación completa (que no vimos)
para una función f (x, y) es:
2 2
∂f ∂f ∂f ∂f
2
σ = ( σx ) + ( σy ) + Cov(x, y)
f
∂x ∂y ∂x ∂y

donde Cov(x, y) es la covarianza entre x e y . Cuando las variables x e y son independientes,


Cov(x, y) = 0 , y recuperamos la fórmula que vimos en clase.
https://colab.research.google.com/drive/19BqPJytAF3xteke5DT_Ws9wVRnxO4cqz#scrollTo=-JID7AT4L07D&printMode=true 11/13
24/6/2021 Labo 1B 2021 1c - Parcial - Problema 2.ipynb - Colaboratory

Pero las magnitudes que usamos para calcular el tiempo de llegada no eran independientes.
Había 3 opciones para calcular el tiempo de llegada, que dan el mismo valor medio, pero
distinto error (al ignorar las correlaciones):

Cualquiera de las 3 que hayan hecho está bien, ya que no es un tema que hayamos dado en la
materia.

De peor en mejor:

1. Propagar respecto de x2 y v, como hicimos en la resolución.

2. Propagar respecto de x1 y x2 , reescribiendo v en término de ellos:


x2 Δt
tllegada = − = −
x2 −x1 x1
1 −
Δt x2

3. Si tuviesemos acceso al tiempo t1 con el que calcularon x1 , podríamos reemplazar


x1 = vsonido t1 y lo mismo con x2 :

Δt Δt
tllegada = − = −
v sonido t1 t1
1 − 1 −
v sonido t2 t2

x1
Podemos calcular t1 =
v sonido
, pero tendriamos que "despropagar" para tener el error que tenia
t1 . Podemos asumir que el error es similar para t2 , pero si quieren poner el valor real, tomado
de esta resolución del parcial, es 5.131 ± 0.058

x1 / v_sonido, dt

(5.131195335276968, 0.06692542376166938)

El error de t2 nos dió un poco más grande, así que no me pueden decir que estoy haciendo
trampa :D

Veamos cuando dan las 3 opciones:

# Opción 1
t_llegada_1 = -x2 / v
dt_llegada_1 = t_llegada_1 * np.sqrt((dx2 / x2)**2 + (dv / v)**2)
 
print(f"t_llegada_1 = ({t_llegada_1:.1f} ± {dt_llegada_1:.1f}) min")
 
# Opción 2
t_llegada_2 = -tiempo_entre_mediciones / (1 - x1 / x2)
dt_llegada_2 = tiempo_entre_mediciones / (1 - x1 / x2)**2 * np.sqrt((dx1 / x2)**2
 
print(f"t_llegada_2 = ({t_llegada_2:.1f} ± {dt_llegada_2:.1f}) min")
 
# Opción 3
t1, dt1 = x1 / v_sonido, dt  # No tenemos el error, pero podemos asumir que es pa
t2, dt2 = t, dt
t llegada 3 = -tiempo entre mediciones / (1 - t1 / t2)
https://colab.research.google.com/drive/19BqPJytAF3xteke5DT_Ws9wVRnxO4cqz#scrollTo=-JID7AT4L07D&printMode=true 12/13
24/6/2021 Labo 1B 2021 1c - Parcial - Problema 2.ipynb - Colaboratory
t_llegada_3 = -tiempo_entre_mediciones / (1 - t1 / t2)
dt_llegada_3 = tiempo_entre_mediciones / (1 - t1 / t2)**2 * np.sqrt((dt1 / t2)**2
 
print(f"t_llegada_3 = ({t_llegada_3:.1f} ± {dt_llegada_3:.1f}) min")

t_llegada_1 = (37.2 ± 6.6) min

t_llegada_2 = (37.2 ± 7.0) min

t_llegada_3 = (37.2 ± 6.2) min

Como dije, el valor medio es el mismo en los 3 casos, pero el error es distinto. Esto se debe a
que los valores no son independientes, sino que están correlacionados.

En el caso 1, como la velocidad de la tormenta, v, se calcula a partir de x2 , no es independiente


de este valor. Por lo tanto, estamos ignorando (incorrectamente) el término de la covarianza.

En el caso 2, estamos resolviendo ese problema al reescribir v en término de x1 y x2 . Pero x1


y x2 también están corrrelacionadas. Las dos se calcularon a partir del mismo valor de la
velocidad del sonido.

En el caso 3, como el tiempo de llegada solo dependia de la relación x1 /x2 , al reescribirla en


términos de la velocidad del sonido vsonido y los tiempos medidos t1 y t2 , no solo ahora
tenemos todas variables independientes, sino que además desaparece la velocidad del sonido,
eliminando esa fuente de incerteza.

En todos los casos, omití el error en Δt, que discutimos en la sección anterior.

https://colab.research.google.com/drive/19BqPJytAF3xteke5DT_Ws9wVRnxO4cqz#scrollTo=-JID7AT4L07D&printMode=true 13/13

También podría gustarte