11.1 Una operación que produce un escalar
La suma de vectores produce otro vector. El producto escalar, también llamado producto punto, recibe dos vectores y produce un número. Ese número combina sus módulos con la relación angular entre ellos.
Se utiliza para medir alineación, comprobar perpendicularidad, calcular ángulos y expresar cuánto de un vector actúa en la dirección de otro.
11.2 Definición por componentes
Para a = (ax, ay) y b = (bx, by):
Si a = (3, 2) y b = (4, −1), entonces a · b = 3·4 + 2·(−1) = 10.
function productoEscalar(a, b) {
return a.x * b.x + a.y * b.y;
}
console.log(productoEscalar({ x: 3, y: 2 }, { x: 4, y: -1 }));11.3 Definición geométrica
La misma operación puede expresarse mediante los módulos y el menor ángulo θ entre los vectores:
Esta fórmula explica que el producto escalar depende tanto del tamaño de los vectores como de su alineación. El ángulo considerado está entre 0° y 180°.
11.4 Interpretar el signo
| Ángulo θ | cos θ | a · b | Interpretación |
|---|---|---|---|
| 0° a menos de 90° | Positivo | Positivo | Orientación general semejante |
| 90° | Cero | Cero | Perpendiculares |
| Más de 90° a 180° | Negativo | Negativo | Orientación general opuesta |
El signo permite clasificar rápidamente la relación angular sin calcular el ángulo completo.
11.5 Casos conocidos
- Mismo sentido: θ = 0°, por lo tanto a·b = |a||b|.
- Sentidos opuestos: θ = 180° y el resultado es −|a||b|.
- Perpendiculares: θ = 90° y el resultado es cero.
- Vector consigo mismo: a·a = |a|².
- Con el vector nulo: el producto vale cero, pero no existe un ángulo definido.
11.6 Calcular el ángulo entre vectores
Para dos vectores no nulos, despejamos el coseno:
Math.acos() devuelve radianes. Debido al redondeo, el cociente puede quedar apenas fuera de [−1, 1]; debemos limitarlo antes de llamar a la función.
function anguloEntre(a, b) {
const ma = Math.hypot(a.x, a.y);
const mb = Math.hypot(b.x, b.y);
if (ma === 0 || mb === 0) return null;
const coseno = (a.x * b.x + a.y * b.y) / (ma * mb);
const seguro = Math.max(-1, Math.min(1, coseno));
return Math.acos(seguro) * 180 / Math.PI;
}
console.log(anguloEntre({ x: 1, y: 0 }, { x: 1, y: 1 }));11.7 Comprobar ortogonalidad
Dos vectores no nulos son ortogonales si su producto escalar es cero. Por ejemplo, (3, 4) y (−4, 3) son perpendiculares porque 3·(−4) + 4·3 = 0.
Con números calculados conviene usar una tolerancia relacionada con los módulos:
function sonPerpendiculares(a, b, tolerancia = 1e-10) {
const producto = a.x * b.x + a.y * b.y;
const escala = Math.hypot(a.x, a.y) * Math.hypot(b.x, b.y);
return escala !== 0 && Math.abs(producto) <= tolerancia * escala;
}
console.log(sonPerpendiculares({ x: 3, y: 4 }, { x: -4, y: 3 }));11.8 Propiedades algebraicas
a · (b + c) = a · b + a · c
(ka) · b = k(a · b)
El producto escalar es conmutativo y distributivo. Sin embargo, no existe una expresión como a·b·c sin aclarar operaciones adicionales, porque el primer producto ya produce un escalar.
11.9 Unidades del resultado
Las unidades se multiplican. Si dos vectores son desplazamientos en metros, su producto escalar se expresa en m². Si una fuerza en N se multiplica escalarmente por un desplazamiento en m, el resultado se expresa en N·m, equivalente a joules en el contexto del trabajo mecánico.
La coincidencia de unidades no basta para asegurar que dos cantidades representen el mismo concepto físico: el contexto de la operación sigue siendo indispensable.
11.10 Alineación normalizada
Si normalizamos ambos vectores, su producto escalar es directamente cos θ y queda entre −1 y 1. Esto permite medir alineación independientemente de los módulos.
cercano a 0 → aproximadamente perpendicular
cercano a −1 → sentidos opuestos
En un videojuego puede emplearse para decidir si un objetivo está aproximadamente delante de un personaje, sin calcular el ángulo.
11.11 Aplicación: trabajo de una fuerza constante
El trabajo realizado por una fuerza constante durante un desplazamiento se expresa como:
Una fuerza perpendicular al desplazamiento realiza trabajo nulo en este modelo; una componente alineada aporta positivamente y una opuesta aporta negativamente. Aquí usamos la expresión como aplicación vectorial; su interpretación física se desarrollará en el curso de energía.
const fuerzaN = { x: 12, y: 5 };
const desplazamientoM = { x: 3, y: 0 };
const trabajoJ = fuerzaN.x * desplazamientoM.x
+ fuerzaN.y * desplazamientoM.y;
console.log(trabajoJ + " J");11.12 Laboratorio del producto escalar
Modificá ambos vectores. El arco muestra el menor ángulo entre ellos y el color del resultado indica si la relación es aguda, perpendicular u obtusa.
Producto escalar positivo: el ángulo es agudo.
11.13 Producto escalar en tres dimensiones
En 3D agregamos los productos de las componentes z:
Las interpretaciones geométricas, el criterio de perpendicularidad y la fórmula del ángulo se mantienen.
11.14 Errores frecuentes
- Devolver un vector con los productos componente a componente.
- Olvidar sumar los productos de todas las componentes.
- Confundir producto escalar cero con vectores nulos.
- Dividir por cero al calcular el ángulo.
- No limitar el coseno al intervalo [−1, 1].
- Interpretar el signo sin considerar el ángulo.
- Olvidar multiplicar las unidades.
- Usar el ángulo orientado cuando la fórmula devuelve el menor ángulo.
11.15 Ejercicio integrador
Sean a = (4, −2) y b = (1, 5).
- Calculá a·b.
- Calculá los módulos.
- Obtené el ángulo entre ambos.
- Clasificá el ángulo como agudo, recto u obtuso.
- Construí un vector perpendicular a a y comprobalo.
Ver solución y código
El producto es 4·1 + (−2)·5 = −6. Los módulos son √20 y √26. El coseno es −6/√520 y el ángulo es aproximadamente 105,26°, por lo tanto es obtuso. Un perpendicular es (2, 4), porque (4, −2)·(2, 4) = 0.
const a = { x: 4, y: -2 };
const b = { x: 1, y: 5 };
const producto = a.x * b.x + a.y * b.y;
const ma = Math.hypot(a.x, a.y);
const mb = Math.hypot(b.x, b.y);
const coseno = Math.max(-1, Math.min(1, producto / (ma * mb)));
const angulo = Math.acos(coseno) * 180 / Math.PI;
const perpendicular = { x: -a.y, y: a.x };
const comprobacion = a.x * perpendicular.x + a.y * perpendicular.y;
console.log({ producto, ma, mb, angulo, perpendicular, comprobacion });11.16 Ideas para recordar
- El producto escalar combina dos vectores y produce un número.
- Por componentes, se suman los productos de coordenadas correspondientes.
- Geométricamente vale |a||b| cos θ.
- Su signo distingue relaciones angulares agudas, rectas y obtusas.
- Dos vectores no nulos son perpendiculares si su producto escalar es cero.
- El ángulo requiere vectores no nulos y un coseno limitado a [−1, 1].
- Con vectores unitarios, el resultado mide alineación sin depender del tamaño.
En el próximo tema utilizaremos el producto escalar para proyectar un vector sobre otro.