2. Fenómenos físicos: observación, experimentación y predicción

Una explicación física debe poder contrastarse con observaciones. Aprendé a plantear preguntas, registrar datos y comparar lo que predice un programa con lo que se mide.

2.1 ¿Qué es un fenómeno físico?

Un fenómeno físico es un suceso o proceso del mundo natural que podemos estudiar mediante observaciones y mediciones. El desplazamiento de un carrito, el enfriamiento de una taza, la vibración de una cuerda y la reflexión de la luz son algunos ejemplos.

En programación, estos fenómenos pueden aparecer como posiciones que cambian, lecturas de sensores, señales de audio o imágenes. Antes de escribir el código necesitamos decidir qué queremos conocer y qué datos podrían ayudarnos a responderlo.

En este tema seguiremos el ejemplo de un carrito que avanza por un tramo recto. La pregunta será: ¿podemos predecir su posición a partir del tiempo transcurrido?

2.2 Observar y describir antes de explicar

Observar consiste en prestar atención a lo que sucede y registrar información relevante. Podemos hacerlo directamente o mediante instrumentos: una cámara, un termómetro o un sensor de posición amplían lo que podemos observar.

Conviene distinguir una descripción de una explicación. Decir «el carrito recorrió aproximadamente dos metros entre estas dos marcas de tiempo» describe un resultado. Decir «el carrito mantiene una velocidad constante» propone una interpretación que todavía debemos comprobar en otros intervalos.

Dos formas complementarias de describir una observación.
Tipo de observaciónEjemploQué aporta
CualitativaEl carrito se mueve hacia la derecha.Describe una característica sin asignarle una medida numérica.
CuantitativaA los 3 s, su posición medida es 6,1 m.Relaciona una cantidad con una unidad y permite comparar resultados.

Una observación aislada suele ser insuficiente para identificar un patrón. Registrar varios instantes permite examinar cómo cambia el movimiento.

2.3 Formular una hipótesis y hacer una predicción

Una hipótesis es una propuesta que podemos poner a prueba. Para nuestro carrito proponemos: «en este tramo y durante este intervalo, la velocidad puede considerarse constante».

Una predicción es el resultado que esperamos obtener si usamos esa hipótesis junto con ciertos datos. Si el carrito parte de 0 m y suponemos una velocidad de 2 m/s, predecimos que a los 3 s estará en 6 m.

posición predicha = posición inicial + velocidad propuesta × tiempo transcurrido
posición predicha = 0 m + 2 m/s × 3 s = 6 m

Es útil escribir la predicción antes de consultar la medición que vamos a comparar. Así evitamos cambiar nuestra expectativa después de conocer el resultado. Una predicción también puede referirse a un dato ya registrado que todavía no usamos para construir el modelo.

2.4 Diseñar un experimento sencillo

Un experimento organiza condiciones y mediciones para responder una pregunta. En nuestro caso, podemos preparar un tramo recto, definir un origen para las posiciones y registrar dónde está el carrito en instantes determinados.

  1. Definir la pregunta: ¿el modelo de velocidad constante describe este recorrido?
  2. Preparar las condiciones: utilizar el mismo carrito, el mismo tramo y la misma configuración de movimiento.
  3. Fijar referencias: indicar dónde está la posición 0 m y qué evento marca el tiempo 0 s.
  4. Registrar datos: medir la posición en los tiempos elegidos, anotando unidades e instrumento utilizado.
  5. Comparar: calcular las posiciones predichas y sus diferencias respecto de las mediciones.
  6. Repetir y revisar: repetir el ensayo y examinar si las diferencias mantienen un patrón.

Para este ejemplo introductorio trataremos los tiempos como conocidos. En una experiencia real también pueden existir demoras al iniciar un cronómetro o al registrar una imagen.

2.5 Elegir qué cambia y qué se mantiene

Para interpretar un experimento debemos identificar qué valores variamos, qué medimos y qué condiciones intentamos mantener estables.

  • Variable independiente: en este análisis, el tiempo en el que evaluamos la posición.
  • Variable dependiente: la posición medida del carrito.
  • Condiciones controladas: el tramo utilizado, la configuración del carrito y las referencias de posición y tiempo.

Si cambiamos simultáneamente el carrito, el suelo y la configuración del motor, resultará más difícil identificar qué produjo una diferencia. No todos los fenómenos permiten controlar sus condiciones: también podemos estudiar observaciones de sucesos naturales, como el movimiento de los astros.

2.6 Registrar las mediciones en JavaScript

Los datos de un ensayo pueden almacenarse en una lista de objetos. Cada objeto conserva juntos el instante y la posición medida. Los siguientes valores son datos didácticos de ejemplo, expresados en segundos y metros.

const mediciones = [
  { tiempoS: 0, posicionM: 0.0 },
  { tiempoS: 1, posicionM: 2.1 },
  { tiempoS: 2, posicionM: 3.9 },
  { tiempoS: 3, posicionM: 6.1 }
];

for (const medicion of mediciones) {
  console.log(medicion.tiempoS, "s:", medicion.posicionM, "m");
}

El programa muestra las cuatro mediciones en orden. Las posiciones se aproximan a 0, 2, 4 y 6 m, pero no coinciden exactamente con ellas. Debemos conservar los datos registrados; no reemplazarlos por los valores que esperábamos obtener.

2.7 Comparar predicciones y mediciones

Para cada instante podemos calcular una diferencia o residuo. En este curso usaremos el siguiente orden de resta:

residuo = posición medida − posición predicha

Un residuo positivo indica que la medición está por encima de la predicción. Uno negativo indica que está por debajo. El residuo tiene unidades de longitud, igual que las posiciones que estamos comparando.

const mediciones = [
  { tiempoS: 0, posicionM: 0.0 },
  { tiempoS: 1, posicionM: 2.1 },
  { tiempoS: 2, posicionM: 3.9 },
  { tiempoS: 3, posicionM: 6.1 }
];
const posicionInicialM = 0;
const velocidadPropuestaMps = 2;

for (const medicion of mediciones) {
  const prediccionM = posicionInicialM
    + velocidadPropuestaMps * medicion.tiempoS;
  const residuoM = medicion.posicionM - prediccionM;
  console.log(medicion.tiempoS, "s | Residuo:", residuoM.toFixed(2), "m");
}

Los residuos son 0,00 m; 0,10 m; −0,10 m y 0,10 m. El método toFixed(2) produce un texto con dos decimales para mostrarlo. El cálculo se realiza antes de ese formato de presentación.

Una diferencia no demuestra por sí sola que el modelo sea incorrecto. Puede relacionarse con la medición, con los parámetros elegidos, con las simplificaciones del modelo o con un error en el programa.

2.8 Laboratorio interactivo: contrastar una predicción

En este laboratorio, un sensor virtual registra seis posiciones de un carrito, entre 0 y 5 s. Ajustá la velocidad propuesta para el modelo y compará la línea de predicción con los puntos medidos. La posición inicial del modelo está fijada en 0 m.

La tabla que sigue a los controles contiene los valores del gráfico.
━ Línea: predicción● Puntos: mediciones simuladas
Predicción a los 5 s12,50 m
Medición a los 5 s9,86 m
Promedio de |residuo|1,288 m

Ensayo de ejemplo cargado. Ajustá la velocidad propuesta para comparar.

Resultados del ensayo. Residuo = medición − predicción; posiciones y residuos en metros.
Tiempo (s)Predicción (m)Medición (m)Residuo (m)
00,000,080,08
12,501,89−0,61
25,004,13−0,87
37,505,95−1,55
410,008,02−1,98
512,509,86−2,64

El promedio de los valores absolutos de los residuos resume cuánto se separan mediciones y predicciones, sin cancelar diferencias positivas y negativas. Un valor menor indica un mejor acuerdo para estos datos; no establece por sí solo que el modelo sea válido en cualquier situación.

  • Cambiá solo la velocidad propuesta: las mediciones se conservan. Observá cómo cambian la línea y los residuos.
  • Probá con 2 m/s y sin variación: la predicción y las mediciones coinciden en todos los instantes.
  • Elegí ±0,6 m y repetí el ensayo: las mediciones fluctúan aunque uses la misma velocidad propuesta.
  • Volvé a 2,5 m/s: buscá una diferencia que tiende a crecer con el tiempo. Eso invita a revisar la velocidad propuesta.

Al cambiar la variación del sensor se genera un nuevo ensayo. «Nuevo ensayo» conserva los controles y renueva las mediciones; «Restaurar ejemplo» recupera los datos y parámetros iniciales.

Cómo se generan estos datos

El generador usa una posición ideal de 2 × tiempo, en metros, y le suma una perturbación aleatoria uniforme entre −A y +A, donde A es la variación seleccionada. Después redondea la lectura a centésimas de metro. El ensayo inicial usa valores fijos para poder recuperar siempre el mismo ejemplo.

La variación del sensor es un ajuste didáctico; no representa un intervalo de confianza ni todas las fuentes de incertidumbre de un instrumento real. Puede producir una lectura negativa cerca de la posición cero.

Los datos son simulados. Este laboratorio permite practicar la comparación de datos y modelos. Como ambos provienen de reglas programadas, la coincidencia no constituye una comprobación experimental de una ley física en el mundo real.

2.9 Repetir, reconocer patrones y revisar

Al repetir una medición pueden aparecer pequeñas diferencias. En un experimento real pueden intervenir la resolución del instrumento, el procedimiento y variaciones de las condiciones. Repetir ayuda a describir esa dispersión, pero no elimina automáticamente todos los problemas.

Un sensor que siempre agrega 0,5 m a una lectura puede producir un desplazamiento sistemático en los datos. Repetir muchas veces con ese mismo sensor no corrige el desplazamiento. Para investigarlo podríamos comparar el instrumento con una referencia conocida.

También importa la forma de las diferencias: residuos que aumentan con el tiempo pueden sugerir una velocidad mal elegida o un movimiento que no mantiene velocidad constante. Son pistas para investigar, no diagnósticos definitivos.

Si modificamos la velocidad para que el modelo describa mejor un conjunto de mediciones, estamos ajustando un parámetro. Para evaluar su capacidad de predicción conviene compararlo luego con otro ensayo que no usamos para ese ajuste.

2.10 El papel del programador

Un programa puede ayudar a adquirir datos, conservar unidades, calcular predicciones, construir gráficos y detectar diferencias. La calidad de ese trabajo depende tanto del código como de las decisiones sobre el experimento.

  • Conservá las mediciones originales y registrá por separado los resultados calculados.
  • Anotá las condiciones del ensayo y las referencias de posición y tiempo.
  • Comprobá el cálculo con casos sencillos cuyo resultado puedas obtener a mano.
  • Revisá primero unidades, signos y fórmulas antes de atribuir una diferencia a un fenómeno nuevo.
  • Distinguí una prueba del programa de una comparación con observaciones físicas independientes.

El proceso puede volver sobre pasos anteriores: nuevas observaciones llevan a revisar la hipótesis, el instrumento, el procedimiento o el código. No es una receta que se recorre una sola vez.

2.11 Ejercicio propuesto

Un carrito parte de 0 m. Proponés una velocidad constante de 1,5 m/s. A los 2 s registrás una posición de 3,2 m y a los 4 s una posición de 5,9 m.

  1. Indicá cuál es la hipótesis y cuáles son las mediciones.
  2. Calculá las posiciones predichas y los dos residuos.
  3. Calculá el promedio de los valores absolutos de los residuos.
  4. Explicá por qué esos dos resultados no bastan para afirmar que el modelo es exacto.
Ver solución y código

La hipótesis es que el carrito mantiene una velocidad constante de 1,5 m/s durante el intervalo estudiado. Las mediciones son 3,2 m a los 2 s y 5,9 m a los 4 s. Las predicciones son 3 m y 6 m; los residuos son 0,2 m y −0,1 m.

const mediciones = [
  { tiempoS: 2, posicionM: 3.2 },
  { tiempoS: 4, posicionM: 5.9 }
];
const velocidadPropuestaMps = 1.5;
let sumaAbsolutaM = 0;

for (const medicion of mediciones) {
  const prediccionM = velocidadPropuestaMps * medicion.tiempoS;
  const residuoM = medicion.posicionM - prediccionM;
  sumaAbsolutaM += Math.abs(residuoM);
  console.log("Predicción:", prediccionM.toFixed(2), "m");
  console.log("Residuo:", residuoM.toFixed(2), "m");
}

const promedioM = sumaAbsolutaM / mediciones.length;
console.log("Promedio absoluto:", promedioM.toFixed(2), "m");

El promedio es (0,2 m + 0,1 m) / 2 = 0,15 m. Para valorar el acuerdo necesitamos conocer las características de la medición y estudiar más datos. Dos mediciones próximas a las predicciones no demuestran que el modelo sea exacto ni que funcione fuera del intervalo observado.

2.12 Ideas para recordar

  • Observar, proponer una explicación y calcular una predicción son tareas relacionadas, pero diferentes.
  • Un experimento necesita una pregunta, referencias claras y un registro de sus condiciones.
  • Comparar mediciones con predicciones permite evaluar el modelo dentro de las condiciones estudiadas.
  • Las diferencias pueden provenir de los datos, del procedimiento, del modelo o del código.
  • Una simulación sirve para explorar reglas; contrastar una descripción del mundo real requiere observaciones independientes.

En el próximo tema veremos sistemas físicos, entorno y elección de límites: cómo decidir qué parte de una situación vamos a estudiar y qué queda fuera del sistema.