4. Fuerza gravitatoria como vector y ley del inverso del cuadrado

El módulo indica cuánto se atraen dos cuerpos; el vector indica hacia dónde acelera cada uno. Ambas partes son necesarias para calcular una trayectoria orbital.

4.1 Por qué el módulo no alcanza

La expresión F = Gm₁m₂/r² calcula el módulo de la fuerza gravitatoria. En un problema unidimensional puede bastar con asignarle un signo, pero una órbita ocurre en dos o tres dimensiones: la dirección hacia el cuerpo que atrae cambia continuamente.

Para actualizar una velocidad necesitamos componentes como Fx y Fy. No podemos decidirlas mirando si un objeto está «arriba» o «abajo» de la pantalla; debemos obtenerlas a partir de las posiciones físicas.

Posiciones → vector separación → distancia y dirección → vector fuerza

En este tema aplicaremos las operaciones vectoriales conocidas al caso gravitatorio. La dificultad principal no está en una operación nueva, sino en mantener claro qué cuerpo atrae a cuál.

4.2 Posiciones y vector separación

Sean dos cuerpos con posiciones:

r⃗₁ = (x₁, y₁)   y   r⃗₂ = (x₂, y₂)

Para calcular la fuerza sobre el cuerpo 1 ejercida por el cuerpo 2, necesitamos un vector que salga de 1 y apunte hacia 2:

Δr⃗₁₂ = r⃗₂ − r⃗₁ = (x₂ − x₁, y₂ − y₁)

El orden de la resta determina el sentido. Si intercambiamos los cuerpos, obtenemos:

Δr⃗₂₁ = r⃗₁ − r⃗₂ = −Δr⃗₁₂

Conviene usar nombres explícitos como desde1Hacia2. Un nombre genérico como diferencia no recuerda el sentido elegido.

4.3 Distancia y vector unitario

El módulo del vector separación es la distancia entre los cuerpos:

r = |Δr⃗₁₂| = √(Δx² + Δy²)

Al dividir el vector separación por su módulo obtenemos el vector unitario que apunta desde 1 hacia 2:

û₁₂ = Δr⃗₁₂ / r

El versor tiene módulo 1 y no posee unidades. Conserva la dirección y el sentido, mientras que el módulo de la fuerza se calcula por separado.

Si ambos cuerpos ocupan exactamente la misma posición, r = 0 y no podemos normalizar. Además, la idealización de masas puntuales produce una división por cero. El programa debe detectar explícitamente ese caso.

4.4 Construir el vector fuerza

Multiplicamos el módulo gravitatorio por el versor dirigido hacia el cuerpo que atrae:

F⃗₁←₂ = (G · m₁ · m₂ / r²) · û₁₂

El subíndice 1←2 se lee «fuerza sobre 1 debida a 2». Sustituyendo el versor:

F⃗₁←₂ = G · m₁ · m₂ · Δr⃗₁₂ / r³

Las dos expresiones son equivalentes. La primera separa con claridad módulo y dirección. La segunda resulta cómoda para programar componentes, pero el denominador r³ puede causar una confusión: la intensidad sigue una ley 1/r². El tercer factor de r aparece al normalizar el vector separación, cuyo módulo ya es r.

4.5 Componentes cartesianas

Si Δr⃗₁₂ = (Δx, Δy), las componentes de la fuerza sobre 1 son:

Fx = G · m₁ · m₂ · Δx / r³
Fy = G · m₁ · m₂ · Δy / r³

Los signos surgen de Δx y Δy. Si el cuerpo 2 se encuentra a la derecha y arriba del cuerpo 1, ambas componentes son positivas. Si está a la izquierda y abajo, ambas son negativas.

Después de calcularlas podemos comprobar el módulo:

√(Fx² + Fy²) = G · m₁ · m₂ / r²

Esta igualdad conecta la implementación por componentes con la ley escalar estudiada en el tema 2.

4.6 Ejemplo resuelto en dos dimensiones

El cuerpo 1, de 1000 kg, está en (0, 0) m. El cuerpo 2, de 2000 kg, está en (3, 4) m.

  1. Separación desde 1 hacia 2: Δr⃗ = (3, 4) m.
  2. Distancia: r = √(3² + 4²) = 5 m.
  3. Versor: û = (3/5, 4/5) = (0,6; 0,8).
  4. Módulo: F = G · 1000 · 2000 / 5² ≈ 5,339 × 10−6 N.
  5. Vector: F⃗₁←₂ ≈ (3,204 × 10−6; 4,272 × 10−6) N.

La comprobación del módulo da √(3,204² + 4,272²) × 10−6 ≈ 5,339 × 10−6 N. Las dos componentes son positivas porque el cuerpo 2 está a la derecha y arriba.

4.7 El par de fuerzas gravitatorias

Para obtener la fuerza sobre el cuerpo 2 usamos el vector opuesto:

F⃗₂←₁ = −F⃗₁←₂

Los módulos son iguales y las componentes cambian de signo. En el ejemplo:

F⃗₂←₁ ≈ (−3,204 × 10−6; −4,272 × 10−6) N

Las fuerzas no se cancelan al estudiar cada cuerpo por separado. Sí suman cero al calcular la fuerza interna total del sistema formado por ambos cuerpos, una propiedad coherente con la conservación de la cantidad de movimiento.

Calcular una fuerza y obtener la otra cambiando el signo evita pequeñas diferencias numéricas que podrían aparecer si se repitieran todos los cálculos por separado.

4.8 De la fuerza a la aceleración

La aceleración del cuerpo 1 se obtiene dividiendo su fuerza por m₁:

a⃗₁ = F⃗₁←₂ / m₁ = G · m₂ · Δr⃗₁₂ / r³

La propia masa m₁ se cancela. La aceleración de 1 depende de la masa del cuerpo 2, que produce la atracción. De modo análogo:

a⃗₂ = G · m₁ · Δr⃗₂₁ / r³

Si las masas son diferentes, las fuerzas continúan siendo iguales en módulo, pero las aceleraciones no. El cuerpo menos masivo experimenta la aceleración mayor.

4.9 Por qué aparece r³ en el código

Una implementación puede evitar construir explícitamente el versor usando un factor común:

factor = G · m₁ · m₂ / r³
Fx = factor · Δx
Fy = factor · Δy

Como el vector (Δx, Δy) tiene módulo r, el módulo final es:

|F⃗| = (Gm₁m₂/r³) · r = Gm₁m₂/r²

Un error común es dividir por r² y después multiplicar directamente por (Δx, Δy). Eso produce un vector cuyo módulo disminuye como 1/r, no como 1/r². Si se usa r², debe multiplicarse por el versor, no por el vector separación sin normalizar.

4.10 Implementación reutilizable en JavaScript

const G = 6.67430e-11;

function fuerzaGravitatoriaSobre1(cuerpo1, cuerpo2) {
  const dxM = cuerpo2.xM - cuerpo1.xM;
  const dyM = cuerpo2.yM - cuerpo1.yM;
  const distancia2M2 = dxM ** 2 + dyM ** 2;

  if (distancia2M2 === 0) {
    throw new RangeError("Los cuerpos no pueden ocupar el mismo punto");
  }

  const distanciaM = Math.sqrt(distancia2M2);
  const factor = G * cuerpo1.masaKg * cuerpo2.masaKg
    / distanciaM ** 3;

  return {
    xN: factor * dxM,
    yN: factor * dyM
  };
}

const cuerpo1 = { masaKg: 1000, xM: 0, yM: 0 };
const cuerpo2 = { masaKg: 2000, xM: 3, yM: 4 };
const fuerza = fuerzaGravitatoriaSobre1(cuerpo1, cuerpo2);

console.log(fuerza.xN.toExponential(3), "N");
console.log(fuerza.yN.toExponential(3), "N");

El resultado es aproximadamente 3.204e-6 N y 4.272e-6 N. Los sufijos M, Kg y N documentan las unidades.

La comparación exacta con cero es apropiada para detectar posiciones idénticas creadas con los mismos valores. En simulaciones posteriores discutiremos qué hacer cuando la separación es muy pequeña pero no exactamente cero.

4.11 Pruebas geométricas y físicas

Una función vectorial admite comprobaciones que no dependen de un ejemplo particular:

  • Módulo: debe coincidir con Gm₁m₂/r².
  • Atracción: el producto escalar entre F⃗₁←₂ y Δr⃗₁₂ debe ser positivo.
  • Acción y reacción: F⃗₁←₂ + F⃗₂←₁ debe dar (0, 0), dentro de la tolerancia numérica.
  • Traslación: sumar el mismo vector a ambas posiciones no debe cambiar la fuerza.
  • Escala de distancia: duplicar la separación debe reducir el módulo a un cuarto.
  • Simetría: intercambiar los cuerpos debe invertir el vector, no su módulo.

Estas propiedades permiten escribir pruebas automáticas más potentes que comparar únicamente un resultado memorizado.

4.12 Laboratorio interactivo: dirección y componentes

Modificá las coordenadas del cuerpo 2 y observá la fuerza sobre el cuerpo 1. Las masas se mantienen en 1000 kg y 2000 kg para concentrarnos en la geometría.

Los resultados numéricos se muestran debajo.
Separación Δr⃗₁₂(3; 4) m
Distancia r5,000 m
Versor û₁₂(0,600; 0,800)
Fuerza F⃗₁←₂(3,204; 4,272) × 10⁻⁶ N
Módulo |F⃗|5,339 × 10⁻⁶ N

F⃗₁←₂ = Gm₁m₂ · (r⃗₂ − r⃗₁) / |r⃗₂ − r⃗₁|³

La fuerza sobre 1 apunta desde 1 hacia 2.

Configuración inicial: separación (3, 4) m.

La flecha amarilla es la fuerza sobre el cuerpo 1 y la celeste, la fuerza opuesta sobre el cuerpo 2. Su longitud visual se ajusta para que ambas puedan verse y no representa una escala absoluta de newtons.

  • Cambiá un signo: observá qué componente de la fuerza cambia de signo.
  • Elegí Horizontal: la componente vertical debe ser cero.
  • Elegí Vertical: la componente horizontal debe ser cero.
  • Acercá los cuerpos: el módulo aumenta rápidamente.
  • Hacé coincidir sus posiciones: el laboratorio informa que el modelo puntual queda indefinido.

4.13 Extensión a tres dimensiones

En tres dimensiones el procedimiento no cambia. Agregamos la componente z:

Δr⃗ = (x₂ − x₁, y₂ − y₁, z₂ − z₁)
r = √(Δx² + Δy² + Δz²)
F⃗₁←₂ = (Gm₁m₂/r³) · (Δx, Δy, Δz)

Una órbita ideal de dos cuerpos permanece en un plano, pero una simulación tridimensional resulta necesaria para representar órbitas con inclinaciones diferentes. La función puede ampliarse agregando dzM y zN.

Las unidades y las pruebas de simetría se mantienen. El módulo debe incorporar las tres componentes.

4.14 Errores frecuentes

  • Restar en el orden incorrecto: invierte la fuerza y convierte la atracción en repulsión.
  • Usar Δr⃗ sin normalizar junto con 1/r²: produce una dependencia incorrecta.
  • Agregar un signo negativo por costumbre: si Δr⃗ ya apunta hacia el cuerpo que atrae, el factor es positivo.
  • Calcular cada fuerza con redondeos distintos: conviene obtener la segunda como el opuesto exacto de la primera.
  • Confundir coordenadas de pantalla y físicas: en Canvas el eje vertical suele crecer hacia abajo; el modelo puede mantener y positiva hacia arriba y convertir solo al dibujar.
  • No tratar r = 0: la fórmula de masas puntuales queda indefinida.
  • Interpretar r³ como otra ley física: el módulo continúa variando como 1/r².

4.15 Ejercicio propuesto

Un cuerpo de masa 3 × 104 kg está en (−2, 1) m y otro de 5 × 104 kg está en (4, 9) m.

  1. Calculá el vector separación desde el primer cuerpo hacia el segundo.
  2. Calculá la distancia y el versor correspondiente.
  3. Calculá el módulo y las componentes de la fuerza sobre el primer cuerpo.
  4. Escribí la fuerza sobre el segundo cuerpo.
  5. Calculá la aceleración del primer cuerpo.
Ver solución y explicación

La separación es (6, 8) m, la distancia es 10 m y el versor es (0,6; 0,8).

|F⃗| = G · (3 × 104) · (5 × 104) / 10²
|F⃗| ≈ 1,001 × 10−3 N

La fuerza sobre el primer cuerpo es aproximadamente (6,007 × 10−4; 8,009 × 10−4) N. Sobre el segundo actúa el vector opuesto.

La aceleración del primero es aproximadamente (2,002 × 10−8; 2,670 × 10−8) m/s².

const G = 6.67430e-11;
const masa1Kg = 3e4;
const masa2Kg = 5e4;
const dxM = 4 - (-2);
const dyM = 9 - 1;
const distanciaM = Math.hypot(dxM, dyM);
const factor = G * masa1Kg * masa2Kg / distanciaM ** 3;
const fuerza = { xN: factor * dxM, yN: factor * dyM };

console.log("Distancia:", distanciaM, "m");
console.log("Fuerza:", fuerza);
console.log("Aceleración:", {
  xMps2: fuerza.xN / masa1Kg,
  yMps2: fuerza.yN / masa1Kg
});

4.16 Ideas para recordar

  • La fuerza gravitatoria apunta desde el cuerpo atraído hacia el cuerpo que atrae.
  • El orden r⃗₂ − r⃗₁ construye la dirección desde 1 hacia 2.
  • El módulo sigue siendo Gm₁m₂/r².
  • La forma Gm₁m₂Δr⃗/r³ incluye la normalización del vector separación.
  • Las fuerzas del par son vectores opuestos de igual módulo.
  • La aceleración de un cuerpo depende de la masa del otro, no de su propia masa.
  • Las pruebas de módulo, atracción, simetría y traslación ayudan a validar el código.

En el próximo tema aplicaremos el principio de superposición para sumar las atracciones producidas por varios cuerpos.