6. Multiplicación por un escalar y combinaciones lineales

Un número puede ampliar, reducir o invertir un vector; varios vectores escalados pueden combinarse para construir nuevas direcciones y representar efectos físicos.

6.1 Escalares que transforman vectores

Multiplicar un vector por un número real permite cambiar su tamaño y, si el número es negativo, invertir su sentido. El número se denomina escalar porque no aporta una orientación propia.

Esta operación aparece al duplicar una fuerza idealizada, convertir una velocidad en desplazamiento durante un intervalo o representar una fracción de un recorrido.

Idea central: el escalar actúa sobre todas las componentes del vector. Multiplicar solo una componente cambia, en general, también la dirección.

6.2 Definición por componentes

Para un escalar k y un vector v = (vx, vy):

kv = (kvx, kvy)

Si v = (3, −2) m y k = 4, entonces 4v = (12, −8) m. Ambas componentes se multiplican por el mismo número.

function escalar(vector, factor) {
  return { x: vector.x * factor, y: vector.y * factor };
}

const v = { x: 3, y: -2 };
console.log(escalar(v, 4));

6.3 Efecto sobre módulo, dirección y sentido

Efecto del factor k sobre un vector no nulo.
Valor de kMóduloDirección y sentido
k > 1Aumenta por un factor kSe conservan
0 < k < 1Disminuye por un factor kSe conservan
k = 1No cambiaNo cambian
k = 0Se vuelve ceroQuedan indeterminados
k < 0Se multiplica por |k|Misma dirección, sentido opuesto
|kv| = |k| · |v|

6.4 Casos especiales

  • 1v = v: el uno es el elemento neutro del escalado.
  • −1v = −v: produce el vector opuesto.
  • 0v = 0: cualquier vector multiplicado por cero se vuelve nulo.
  • k0 = 0: escalar el vector nulo nunca produce una dirección.

El vector nulo no permite recuperar el vector original ni el factor: muchos cálculos diferentes pueden producir el mismo resultado cero.

6.5 Propiedades algebraicas

El producto por escalares se distribuye sobre la suma y se asocia con otros productos:

k(a + b) = ka + kb
(k + m)v = kv + mv
k(mv) = (km)v

Estas propiedades permiten reorganizar cálculos y reducir operaciones. También ayudan a diseñar pruebas automáticas para una biblioteca vectorial.

6.6 Qué es una combinación lineal

Una combinación lineal suma varios vectores multiplicados por escalares:

r = αa + βb

Si a = (2, 1), b = (−1, 3), α = 2 y β = 0,5, entonces:

2a + 0,5b = (4, 2) + (−0,5; 1,5) = (3,5; 3,5)
function combinar(a, alfa, b, beta) {
  return {
    x: alfa * a.x + beta * b.x,
    y: alfa * a.y + beta * b.y
  };
}

console.log(combinar({ x: 2, y: 1 }, 2, { x: -1, y: 3 }, 0.5));

6.7 Componentes como combinación de una base

En la base cartesiana i = (1, 0) y j = (0, 1), cualquier vector del plano puede escribirse:

v = vxi + vyj

Por eso llamamos componentes a vx y vy: son los escalares que indican cuánto aporta cada vector base. Por ejemplo, (4, −3) = 4i − 3j.

6.8 Dependencia e independencia

Dos vectores no nulos son linealmente dependientes si uno es múltiplo del otro. En ese caso son paralelos y sus combinaciones solo alcanzan puntos de una misma recta.

Si no son múltiplos, son linealmente independientes y sus combinaciones pueden construir cualquier vector del plano. Por ejemplo, (1, 0) y (0, 1) son independientes; (1, 2) y (3, 6) son dependientes.

Interpretación geométrica: un vector aporta una línea de posibilidades; dos direcciones independientes permiten abarcar el plano.

6.9 Interpolación lineal entre vectores

La interpolación lineal construye valores intermedios entre a y b mediante:

lerp(a, b, t) = (1 − t)a + tb

Con t = 0 obtenemos a; con t = 1 obtenemos b; entre 0 y 1 recorremos el segmento que los une. Fuera de ese intervalo realizamos una extrapolación.

function interpolar(a, b, t) {
  return {
    x: (1 - t) * a.x + t * b.x,
    y: (1 - t) * a.y + t * b.y
  };
}

console.log(interpolar({ x: 2, y: 1 }, { x: 8, y: 5 }, 0.25));

6.10 Aplicaciones físicas y unidades

El significado y la unidad resultante dependen del escalar:

  • d = v Δt: velocidad en m/s por tiempo en s produce desplazamiento en m.
  • F = ma: aceleración en m/s² por masa en kg produce fuerza en N.
  • p = mv: velocidad por masa produce cantidad de movimiento en kg·m/s.
  • Promedio ponderado: coeficientes sin unidad combinan mediciones de la misma clase.

Aunque la operación matemática sea la misma, el programa debe conservar la interpretación y calcular correctamente la unidad.

6.11 Laboratorio de combinaciones lineales

Modificá los escalares α y β. El laboratorio muestra los vectores escalados en una cadena punta-cola y la resultante αa + βb.

αa
βb
Resultante
Módulo
Relación entre a y b

Combinación lineal construida con los valores iniciales.

6.12 Implementación sin modificar los originales

Las funciones anteriores crean objetos nuevos. Esto evita que escalar un vector altere por accidente el estado que otras partes del programa todavía necesitan.

function escalarInmutable(v, k) {
  return { ...v, x: v.x * k, y: v.y * k };
}

const velocidad = { x: 4, y: -2, unidad: "m/s" };
const doble = escalarInmutable(velocidad, 2);

console.log("Original:", velocidad);
console.log("Resultado:", doble);

En simulaciones intensivas puede elegirse mutación controlada para reducir asignaciones, pero esa decisión debe ser explícita y estar encapsulada.

6.13 Errores frecuentes

  • Multiplicar solo una componente cuando se desea escalar todo el vector.
  • Decir que un factor negativo cambia la dirección en vez del sentido sobre la misma línea.
  • Olvidar el valor absoluto de k al calcular el nuevo módulo.
  • Asignar dirección al resultado cuando k = 0.
  • Confundir una combinación lineal con la multiplicación componente a componente.
  • Interpolar con pesos que no suman uno esperando permanecer entre los extremos.
  • Modificar el vector original sin que el resto del programa lo espere.

6.14 Ejercicio integrador

Un robot dispone de dos comandos básicos: a = (2, 1) m y b = (−1, 2) m. Ejecuta 3 veces el primero y 2 veces el segundo.

  1. Escribí el desplazamiento como combinación lineal.
  2. Calculá los vectores escalados y la resultante.
  3. Obtené el módulo y la dirección de la resultante.
  4. Determiná si a y b son dependientes.
  5. Calculá el punto medio entre los extremos de a y b mediante interpolación.
Ver solución y código

La combinación es 3a + 2b. Los aportes son (6, 3) m y (−2, 4) m; la resultante es (4, 7) m. Su módulo es √65 ≈ 8,06 m y su dirección es aproximadamente 60,26°. No son dependientes porque uno no es múltiplo del otro. El punto medio es (0,5; 1,5) m.

const a = { x: 2, y: 1 };
const b = { x: -1, y: 2 };
const resultado = {
  x: 3 * a.x + 2 * b.x,
  y: 3 * a.y + 2 * b.y
};
const modulo = Math.hypot(resultado.x, resultado.y);
const direccion = Math.atan2(resultado.y, resultado.x) * 180 / Math.PI;
const puntoMedio = {
  x: 0.5 * a.x + 0.5 * b.x,
  y: 0.5 * a.y + 0.5 * b.y
};

console.log({ resultado, modulo, direccion, puntoMedio });

6.15 Ideas para recordar

  • Multiplicar por k multiplica todas las componentes.
  • El módulo resultante es |k| veces el módulo original.
  • Un factor negativo invierte el sentido; el factor cero produce el vector nulo.
  • Una combinación lineal suma vectores previamente escalados.
  • Las componentes son coeficientes respecto de una base.
  • Dos vectores dependientes solo generan una línea.
  • La interpolación lineal es (1 − t)a + tb.

En el próximo tema estudiaremos módulo, distancia y normalización con mayor profundidad.