11.1 Una ecuación, muchas trayectorias
La ecuación x'' + ω²x = 0 describe una familia de movimientos armónicos. Dos masas con el mismo valor de ω pueden comenzar en posiciones distintas o recibir impulsos diferentes y, por lo tanto, seguir trayectorias diferentes.
Para identificar una solución concreta necesitamos conocer el estado en un instante de referencia. Si elegimos ese instante como t = 0, las condiciones iniciales son:
La posición y la velocidad iniciales proporcionan los dos datos independientes que requiere una ecuación de segundo orden.
11.2 Dos formas de describir el mismo movimiento
Podemos escribir la solución con las condiciones iniciales directamente:
O utilizar amplitud y fase inicial:
Las dos expresiones son equivalentes. El par (x₀, v₀) es especialmente útil para iniciar una simulación; el par (A, φ₀) facilita interpretar el máximo alejamiento y la etapa del ciclo.
La frecuencia angular ω pertenece al sistema y debe conocerse en ambas representaciones.
11.3 Evaluar posición y velocidad en cero
Partimos de:
v(t) = −Aω sen(ωt + φ0)
Al evaluar t = 0 obtenemos las relaciones fundamentales:
v0 = −Aω sen φ0
El signo menos de la velocidad es importante. Proviene de derivar el coseno y determina en qué sentido se mueve el oscilador para cada fase.
11.4 Calcular la amplitud
Elevamos al cuadrado las dos relaciones, después de dividir la velocidad por ω:
(v0/ω)² = A² sen²φ0
Al sumar y usar cos²φ + sen²φ = 1:
La amplitud se define no negativa. La cantidad v₀/ω tiene unidad de longitud, por lo que puede combinarse con x₀ dentro de la raíz.
Una velocidad inicial no nula contribuye a la amplitud, incluso cuando la masa comienza en el equilibrio.
11.5 Calcular la fase con atan2
Las componentes que determinan la fase son:
A sen φ0 = −v0/ω
Por eso calculamos:
atan2(y, x) considera los signos de las dos componentes y devuelve el ángulo en el cuadrante correcto. En JavaScript, Math.atan2 produce un resultado entre −π y π radianes.
Dividir componentes y usar Math.atan(y/x) pierde información: los cocientes de dos puntos opuestos son iguales y además aparece una división por cero cuando x₀ = 0.
11.6 Interpretar los cuadrantes
| x0 | v0 | Región de φ0 | Descripción |
|---|---|---|---|
| Positiva | Negativa | Entre 0 y π/2 | A la derecha, moviéndose hacia el centro. |
| Negativa | Negativa | Entre π/2 y π | A la izquierda, alejándose del centro. |
| Negativa | Positiva | Entre −π y −π/2 | A la izquierda, moviéndose hacia el centro. |
| Positiva | Positiva | Entre −π/2 y 0 | A la derecha, alejándose del centro. |
La clasificación usa la convención del coseno y un eje positivo hacia la derecha. Una fase negativa puede convertirse a un valor entre 0 y 2π sumándole 2π.
11.7 Casos iniciales característicos
| Estado inicial | Fase con coseno | Solución |
|---|---|---|
| x0 = +A, v0 = 0 | 0 | x = A cos(ωt) |
| x0 = 0, v0 = −Aω | π/2 | x = A cos(ωt + π/2) |
| x0 = −A, v0 = 0 | π | x = A cos(ωt + π) |
| x0 = 0, v0 = +Aω | −π/2 | x = A cos(ωt − π/2) |
Estas filas son útiles para comprobar signos. Por ejemplo, una masa que comienza en el equilibrio hacia la derecha debe tener velocidad positiva; con φ₀ = −π/2, la expresión −Aω sen φ₀ es positiva.
11.8 El caso de reposo en el equilibrio
Si x₀ = 0 y v₀ = 0, la amplitud calculada es cero. La solución es:
En este caso la fase no tiene significado físico: cualquier φ multiplicada por A = 0 produce la misma posición nula. Un programa puede devolver fase cero por convenio, pero debe indicar que no está definida por el estado.
Intentar interpretar el resultado de atan2(−0, 0) como una fase medida sería engañoso. Conviene detectar una amplitud menor que una tolerancia.
11.9 Fases equivalentes y normalización
Los ángulos que difieren en un número entero de vueltas representan el mismo estado de fase:
Para presentar siempre un valor entre 0 y 2π podemos normalizar:
function normalizarFase(faseRad) {
const vuelta = 2 * Math.PI;
return ((faseRad % vuelta) + vuelta) % vuelta;
}
console.log(normalizarFase(-Math.PI / 2)); // 4.712... rad
console.log(normalizarFase(5 * Math.PI)); // 3.141... radEl doble módulo evita resultados negativos, porque en JavaScript el operador % conserva el signo del dividendo.
11.10 Cambiar el origen del tiempo
Si las condiciones se conocen en un instante t = t0, podemos escribir:
Aquí φ0 es la fase en t0. Si usamos en cambio una expresión A cos(ωt + φ), las fases se relacionan mediante:
Cambiar el cero del reloj modifica la fase numérica, pero no cambia la trayectoria física. Por eso una fase siempre debe informarse junto con la convención temporal y la función seno o coseno utilizada.
11.11 Usar seno en lugar de coseno
También podemos expresar el movimiento como x(t) = A sen(ωt + ψ0). Como sen α = cos(α − π/2):
Las fases numéricas cambian al cambiar la función de referencia. Por ejemplo, x = A cos(ωt) y x = A sen(ωt + π/2) son la misma trayectoria.
No existe una fase “correcta” independiente de la convención. Sí debe ser coherente con la ecuación elegida y reproducir x0 y v0.
11.12 Ejemplo con los cuatro signos
Consideremos ω = 4 rad/s, x₀ = −0,15 m y v₀ = +0,80 m/s.
A = √((−0,15)² + 0,20²) m = 0,25 m
φ0 = atan2(−0,20; −0,15) ≈ −2,214 rad
La fase equivale a −126,87° o, normalizada, 233,13°. La solución es:
La masa está a la izquierda y se mueve hacia la derecha, por eso corresponde al tercer caso de la tabla de cuadrantes.
11.13 Convertir el estado a amplitud y fase con JavaScript
function amplitudYFase(x0M, v0Mps, omegaRadS) {
if (omegaRadS <= 0) {
throw new RangeError("omega debe ser positiva");
}
const amplitudM = Math.hypot(x0M, v0Mps / omegaRadS);
const faseDefinida = amplitudM > 1e-12;
const faseRad = faseDefinida
? Math.atan2(-v0Mps / omegaRadS, x0M)
: 0;
return { amplitudM, faseRad, faseDefinida };
}
const resultado = amplitudYFase(-0.15, 0.80, 4);
console.log(resultado);Math.hypot calcula la raíz de la suma de cuadrados. El indicador faseDefinida evita atribuir significado a la fase cuando el sistema permanece en reposo.
11.14 Convertir amplitud y fase en estado inicial
La transformación inversa permite comprobar el resultado:
function estadoDesdeAmplitudYFase(amplitudM, faseRad, omegaRadS) {
const posicionM = amplitudM * Math.cos(faseRad);
const velocidadMps = -amplitudM * omegaRadS * Math.sin(faseRad);
return { posicionM, velocidadMps };
}
const estado = estadoDesdeAmplitudYFase(0.25, -2.214297, 4);
console.log(estado); // aproximadamente -0.15 m y +0.80 m/sUna prueba de ida y vuelta consiste en transformar (x₀, v₀) en (A, φ₀) y reconstruir el estado. Las diferencias deben quedar dentro de una tolerancia numérica.
11.15 Laboratorio interactivo: del estado al círculo de fase
Elegí posición, velocidad y frecuencia angular iniciales. El vector del círculo usa las componentes (x, −v/ω); su longitud es A y su ángulo es la fase. Al avanzar el tiempo, el vector gira mientras su proyección horizontal reproduce x(t).
A = √(x₀² + (v₀/ω)²) | φ₀ = atan2(−v₀/ω, x₀)
A = 0,25 m; φ₀ = −2,214 rad
La posición y la velocidad iniciales determinan una amplitud de 0,25 m.
- Cambiá solo v₀: observá cómo varían amplitud y fase aunque x₀ permanezca igual.
- Usá x₀ = 0: el signo de v₀ determina cuál de los dos cruces por el equilibrio representa el estado.
- Usá x₀ = 0 y v₀ = 0: la amplitud es cero y la fase se informa como no definida.
- Reproducí un período: el estado final debe coincidir con el inicial.
11.16 Ejercicio propuesto
Un oscilador tiene ω = 6 rad/s. En t = 0 se encuentra en x₀ = 0,20 m y se mueve hacia la izquierda con v₀ = −0,90 m/s.
- Calculá la amplitud.
- Calculá la fase inicial con una función coseno.
- Escribí la ecuación x(t).
- Reconstruí x₀ y v₀ desde A y φ₀.
- Indicá cómo cambia la fase si el nuevo origen temporal se fija 0,10 s después.
Ver solución y explicación
A = √(0,20² + 0,15²) m = 0,25 m
φ₀ = atan2(0,15; 0,20) ≈ 0,644 rad = 36,87°
La solución es x(t) = 0,25 cos(6t + 0,644) m. Al reconstruir, 0,25 cos(0,644) ≈ 0,20 m y −0,25·6 sen(0,644) ≈ −0,90 m/s.
Si llamamos t′ = 0 al instante que antes era t = 0,10 s, la nueva fase inicial es φ′₀ = φ₀ + ω·0,10 s ≈ 1,244 rad. La trayectoria física no cambia.
const x0M = 0.20;
const v0Mps = -0.90;
const omegaRadS = 6;
const amplitudM = Math.hypot(x0M, v0Mps / omegaRadS);
const faseInicialRad = Math.atan2(-v0Mps / omegaRadS, x0M);
const nuevaFaseRad = faseInicialRad + omegaRadS * 0.10;
const xReconstruidaM = amplitudM * Math.cos(faseInicialRad);
const vReconstruidaMps = -amplitudM * omegaRadS * Math.sin(faseInicialRad);
console.log({ amplitudM, faseInicialRad, nuevaFaseRad,
xReconstruidaM, vReconstruidaMps });11.17 Ideas para recordar
- Las condiciones iniciales de un oscilador son x₀ y v₀ en un instante de referencia.
- Para
x = A cos(ωt + φ₀), se cumplex₀ = A cos φ₀yv₀ = −Aω sen φ₀. - La amplitud es
A = √(x₀² + (v₀/ω)²). - La fase se obtiene de forma segura con
atan2(−v₀/ω, x₀). - Fases separadas por múltiplos de 2π son equivalentes.
- Con amplitud cero, la fase no está determinada.
- Cambiar el origen temporal cambia la fase numérica, no el movimiento físico.
- Transformar el estado a amplitud–fase y reconstruirlo permite verificar el cálculo.