01 · Punto de partida
Ubicar, desplazar y comparar
En una recta, un número alcanza para indicar una posición. En una pantalla necesitamos dos coordenadas; en una escena tridimensional, tres. El cálculo multivariable trabaja sobre estos espacios de entradas, de modo que antes de estudiar funciones debemos aprender a describir su geometría.
Los puntos indican ubicaciones. Los vectores describen desplazamientos, velocidades, fuerzas o direcciones. La distancia permite decidir qué significa estar cerca de un punto, una idea imprescindible cuando definamos límites y continuidad.
Estas herramientas aparecen constantemente en programación:
- ¿Dónde se encuentra un objeto dentro de una escena?
- ¿Qué desplazamiento lleva desde una posición hasta otra?
- ¿A qué distancia está el puntero de un elemento interactivo?
- ¿Cuál es la dirección de movimiento de un personaje?
- ¿Dos direcciones son perpendiculares?
- ¿Qué puntos se encuentran dentro de un radio determinado?
02 · Espacios de coordenadas
Qué significan ℝ², ℝ³ y ℝⁿ
El símbolo ℝ representa el conjunto de los números reales. Al escribir ℝ² nos referimos al conjunto de todos los pares ordenados de números reales:
Cada par puede ubicarse en un plano cartesiano. De manera análoga, ℝ³ reúne todas las ternas (x,y,z) y sirve para describir un espacio tridimensional.
La generalización ℝⁿ reúne listas ordenadas de n números. Sus elementos se escriben (x₁,x₂,…,xₙ). Aunque no podamos dibujar cuatro o cien dimensiones espaciales, podemos representarlas y operar con ellas mediante arreglos.
| Espacio | Elemento | Interpretación posible | Ejemplo computacional |
|---|---|---|---|
ℝ | x | Una cantidad o posición lineal. | Tiempo transcurrido. |
ℝ² | (x,y) | Una posición en el plano. | Coordenadas del puntero. |
ℝ³ | (x,y,z) | Una posición espacial. | Objeto de una escena 3D. |
ℝⁿ | (x₁,…,xₙ) | Una colección de características. | Parámetros de un modelo. |
La palabra dimensión indica cuántas coordenadas independientes hacen falta para describir un elemento del espacio. No se refiere al tamaño de los valores ni a la cantidad de elementos almacenados en una colección.
03 · Sistema cartesiano
Leer puntos en el plano y en el espacio
En ℝ², los ejes x e y se cruzan en el origen O=(0,0). Para ubicar P=(3,−2), avanzamos tres unidades en la dirección positiva de x y dos en la dirección negativa de y.
El orden de las coordenadas es esencial:
Los ejes dividen el plano en cuatro cuadrantes. En ℝ³ agregamos un tercer eje z, perpendicular a los otros dos, y los planos coordenados dividen el espacio en ocho regiones llamadas octantes.
| Región | Signo de x | Signo de y | Ejemplo |
|---|---|---|---|
| Primer cuadrante | Positivo | Positivo | (2,3) |
| Segundo cuadrante | Negativo | Positivo | (−2,3) |
| Tercer cuadrante | Negativo | Negativo | (−2,−3) |
| Cuarto cuadrante | Positivo | Negativo | (2,−3) |
04 · Dos significados
Diferencia entre punto y vector
Punto
Una ubicación
P=(2,1) identifica un lugar respecto de un sistema de coordenadas. Habitualmente se nombra con una letra mayúscula.
Vector
Un desplazamiento
v=(2,1) indica avanzar dos unidades en x y una en y. Puede aplicarse desde distintos puntos.
Si una posición inicial es A=(1,3) y aplicamos el vector v=(2,−1), llegamos al punto:
Si conocemos dos puntos A y B, el vector que va desde A hasta B se obtiene restando el punto final menos el inicial:
Para A=(1,3) y B=(4,−1), resulta AB⃗=(3,−4). La verificación es inmediata: A + AB⃗ = B.
- Punto + vector
- Produce un nuevo punto: trasladamos una posición.
- Punto − punto
- Produce un vector: medimos el desplazamiento entre posiciones.
- Vector + vector
- Produce otro vector: combinamos desplazamientos.
- Punto + punto
- No tiene una interpretación geométrica directa como suma de ubicaciones, aunque sus coordenadas puedan sumarse algebraicamente.
05 · Álgebra vectorial
Sumar, restar y escalar vectores
Las operaciones se realizan componente a componente. Dados u=(u₁,u₂) y v=(v₁,v₂):
Por ejemplo, si u=(3,1) y v=(−2,4):
u+v=(1,5): ejecutamos ambos desplazamientos.u−v=(5,−3): sumamosucon el opuesto dev.2u=(6,2): duplicamos la magnitud sin cambiar la dirección.−u=(−3,−1): conservamos la magnitud e invertimos el sentido.
Estas definiciones se extienden sin cambios conceptuales a ℝ³ y ℝⁿ, siempre que los vectores tengan la misma cantidad de componentes.
function sumar2D(u, v) {
return { x: u.x + v.x, y: u.y + v.y };
}
function escalar2D(k, v) {
return { x: k * v.x, y: k * v.y };
}
const velocidad = { x: 3, y: 1 };
const impulso = { x: -2, y: 4 };
console.log(sumar2D(velocidad, impulso)); // { x: 1, y: 5 }
console.log(escalar2D(2, velocidad)); // { x: 6, y: 2 }
06 · Magnitud
Longitud o norma de un vector
La norma euclídea mide la longitud de un vector. En dos dimensiones se obtiene mediante el teorema de Pitágoras:
Para v=(3,4), la norma es 5. En tres dimensiones agregamos la tercera componente:
En ℝⁿ, la fórmula general es:
La norma siempre es no negativa y solo vale cero para el vector cero. Además, multiplicar por un escalar multiplica la longitud por su valor absoluto: ‖kv‖=|k|‖v‖.
| Vector | La norma representa |
|---|---|
| Desplazamiento | Distancia recorrida en línea recta. |
| Velocidad | Rapidez, sin considerar la dirección. |
| Fuerza | Intensidad de la fuerza. |
| Error con varias componentes | Tamaño conjunto del error. |
07 · Cercanía
Distancia entre dos puntos
La distancia euclídea entre los puntos A y B es la longitud del vector que los conecta:
En el plano, si A=(x₁,y₁) y B=(x₂,y₂):
Para A=(1,2) y B=(4,6), el desplazamiento es (3,4) y la distancia es 5.
Propiedades de una distancia
- No negatividad:
d(A,B) ≥ 0. - Identidad:
d(A,B)=0exactamente cuandoA=B. - Simetría:
d(A,B)=d(B,A). - Desigualdad triangular:
d(A,C) ≤ d(A,B)+d(B,C).
La última propiedad expresa que el camino directo nunca es más largo que pasar por un punto intermedio. Estas condiciones permiten definir otras distancias útiles, como Manhattan, aunque en cálculo usaremos principalmente la euclídea.
08 · Vectores unitarios
Separar magnitud y dirección
Un vector unitario tiene norma igual a 1. Para obtener la dirección de un vector no nulo v, lo dividimos por su longitud:
Este proceso se llama normalización. Para v=(3,4):
El vector u conserva la dirección y el sentido, pero su longitud es uno. Así podemos construir un desplazamiento de longitud L en esa dirección mediante L·u.
Vectores de la base cartesiana
En ℝ², los vectores i=(1,0) y j=(0,1) indican las direcciones de los ejes. Todo vector puede escribirse como:
En ℝ³ agregamos k=(0,0,1). Estas bases permiten interpretar las componentes como cantidades de desplazamiento en cada eje.
09 · Comparar direcciones
Producto escalar, ángulos y perpendicularidad
El producto escalar de dos vectores combina sus componentes y devuelve un número:
También se relaciona con el ángulo θ entre los vectores:
Por eso su signo aporta información geométrica:
Ángulo agudo
Si u·v > 0, apuntan en direcciones parcialmente similares.
Perpendiculares
Si u·v = 0 y no son nulos, forman un ángulo de 90°.
Ángulo obtuso
Si u·v < 0, apuntan en sentidos parcialmente opuestos.
Por ejemplo, (2,1)·(−1,2)=−2+2=0, de modo que los vectores son perpendiculares. Más adelante, el producto escalar permitirá calcular derivadas direccionales y explicar por qué el gradiente es perpendicular a las curvas de nivel.
Proyección sobre una dirección
Si u es unitario, el número v·u mide cuánto de v apunta en la dirección de u. La proyección vectorial es (v·u)u. Esta operación aparece en movimiento, iluminación, colisiones y descomposición de fuerzas.
10 · Preparación para los límites
Bolas abiertas y entornos
Decir que un punto X está «cerca» de un punto P requiere fijar una distancia máxima. Dado un radio r > 0, la bola abierta centrada en P es:
En ℝ² es el interior de un círculo sin incluir su borde; en ℝ³ es el interior de una esfera. En dimensiones mayores seguimos usando la misma definición basada en la distancia.
Por ejemplo, la bola de radio 2 centrada en P=(1,−1) contiene los puntos que cumplen:
Los entornos permitirán expresar con precisión que las entradas pueden acercarse tanto como queramos a un punto desde cualquier dirección. Esta es la base geométrica de los límites multivariables.
11 · Programación
Posición, velocidad y actualización por tiempo
En una simulación, una posición es un punto y una velocidad es un vector. Si la velocidad permanece constante durante un intervalo pequeño Δt, la nueva posición se aproxima mediante:
function actualizarPosicion(posicion, velocidad, deltaTiempo) {
return {
x: posicion.x + velocidad.x * deltaTiempo,
y: posicion.y + velocidad.y * deltaTiempo
};
}
const posicion = { x: 10, y: 5 };
const velocidad = { x: 3, y: -2 }; // unidades por segundo
console.log(actualizarPosicion(posicion, velocidad, 0.5));
// { x: 11.5, y: 4 }
Las unidades confirman la operación: (unidades/segundo)·segundos = unidades, que puede sumarse a una posición. Sumar directamente posición y velocidad sin multiplicar por tiempo mezclaría cantidades con unidades incompatibles.
Detectar proximidad
function distancia2D(a, b) {
return Math.hypot(b.x - a.x, b.y - a.y);
}
function estaDentroDelRadio(punto, centro, radio) {
if (radio < 0) throw new RangeError("El radio no puede ser negativo");
return distancia2D(punto, centro) <= radio;
}
const puntero = { x: 105, y: 82 };
const boton = { x: 100, y: 80 };
console.log(estaDentroDelRadio(puntero, boton, 10)); // true
12 · Exploración visual
Laboratorio: del punto A al punto B
Mové los puntos A y B. El laboratorio calcula el vector desplazamiento B−A, su norma y la dirección unitaria. Observá que trasladar ambos puntos de la misma manera no cambia el vector que los conecta.
Desplazamiento y distancia
AB⃗ = B − A = (4, 3)
La dirección unitaria de A hacia B es (0,80; 0,60).
El punto violeta es la posición inicial A, el punto coral es la posición final B y la flecha representa el vector B menos A.
Preguntas para explorar
- Colocá
AyBen el mismo lugar. ¿Qué ocurre con la distancia y por qué no aparece una dirección unitaria? - Intercambiá mentalmente los puntos. ¿Qué cambia en el vector y qué permanece igual?
- Buscá distintas parejas de puntos cuya distancia sea
5. - Trasladá ambos puntos una unidad hacia la derecha. ¿Por qué se conserva el desplazamiento?
- Construí un vector horizontal y otro vertical. ¿Cómo se reconocen por sus componentes?
13 · Implementación reutilizable
Vectores de dimensión arbitraria en JavaScript
Los objetos con propiedades x, y y z son legibles en dos o tres dimensiones. Para trabajar en ℝⁿ conviene usar arreglos y validar que las dimensiones coincidan.
function validarMismaDimension(a, b) {
if (a.length !== b.length) {
throw new RangeError("Los vectores deben tener la misma dimensión");
}
}
function sumar(a, b) {
validarMismaDimension(a, b);
return a.map((componente, i) => componente + b[i]);
}
function restar(a, b) {
validarMismaDimension(a, b);
return a.map((componente, i) => componente - b[i]);
}
console.log(sumar([1, 2, 3], [4, -1, 2])); // [5, 1, 5]
console.log(restar([4, 6], [1, 2])); // [3, 4]
Norma, distancia y producto escalar
function validarMismaDimension(a, b) {
if (a.length !== b.length) {
throw new RangeError("Los vectores deben tener la misma dimensión");
}
}
function restar(a, b) {
validarMismaDimension(a, b);
return a.map((componente, i) => componente - b[i]);
}
function productoEscalar(a, b) {
validarMismaDimension(a, b);
return a.reduce((suma, componente, i) => {
return suma + componente * b[i];
}, 0);
}
function norma(vector) {
return Math.sqrt(productoEscalar(vector, vector));
}
function distancia(a, b) {
return norma(restar(b, a));
}
console.log(norma([3, 4])); // 5
console.log(distancia([1, 2], [4, 6])); // 5
console.log(productoEscalar([2, 1], [-1, 2])); // 0
Normalización segura
function normalizar(vector) {
const longitud = Math.hypot(...vector);
if (longitud === 0) {
throw new RangeError("El vector cero no tiene dirección");
}
return vector.map(componente => componente / longitud);
}
const direccion = normalizar([3, 4]);
console.log(direccion); // [0.6, 0.8]
console.log(Math.hypot(...direccion)); // 1
14 · Resultados computacionales
Precisión, escalas y comparación
Las operaciones con raíces y divisiones suelen producir números que no pueden representarse exactamente en punto flotante. La norma de (1,1) es √2, un número irracional. El programa almacena una aproximación.
Por esa razón, comprobar perpendicularidad mediante producto === 0 puede ser frágil cuando los vectores provienen de cálculos anteriores. Podemos aceptar una tolerancia:
function sonPerpendiculares(a, b, tolerancia = 1e-10) {
if (a.length !== b.length) return false;
const producto = a.reduce((suma, componente, i) => {
return suma + componente * b[i];
}, 0);
return Math.abs(producto) <= tolerancia;
}
console.log(sonPerpendiculares([1, 1], [-1, 1])); // true
La escala también importa. Una distancia de 0,01 puede ser pequeña en metros y enorme en micrómetros. Los vectores que se suman o comparan deben emplear unidades compatibles y, cuando corresponda, el mismo sistema de coordenadas.
«Un punto y un vector son exactamente el mismo objeto»
Comparten representación numérica, pero tienen significados y operaciones diferentes. Restar puntos genera un vector; sumar un vector a un punto genera otro punto.
«La distancia entre A y B es B−A»
B−A es el vector desplazamiento. La distancia es su norma y, por lo tanto, un número no negativo.
«Normalizar un vector significa limitar sus componentes entre 0 y 1»
Normalizar aquí significa dividir por la norma para obtener longitud uno. Las componentes pueden ser negativas.
«Duplicar las componentes duplica la dirección»
La dirección no tiene tamaño. Multiplicar por un escalar positivo conserva la dirección y cambia la magnitud; un escalar negativo invierte el sentido.
«Producto escalar cero siempre significa perpendicularidad»
Si alguno de los vectores es cero, el producto también vale cero, pero el vector cero no tiene dirección. La interpretación angular requiere vectores no nulos.
15 · Práctica guiada
Ejercicios de comprensión
Ejercicio 1: puntos y desplazamientos
Un personaje comienza en A=(−1,2) y termina en B=(5,−2).
- Calculá el vector
AB⃗. - Calculá la distancia recorrida en línea recta.
- Obtené un vector unitario desde
AhaciaB. - Verificá que
A + AB⃗ = B.
Ver solución razonada
AB⃗=B−A=(6,−4). Su norma es √(36+16)=√52=2√13≈7,21. La dirección unitaria es (6/√52,−4/√52)≈(0,832;−0,555). Finalmente, (−1,2)+(6,−4)=(5,−2).
Ejercicio 2: operaciones en ℝ³
Sean u=(1,−2,3) y v=(4,0,−1).
- Calculá
u+vy2u−v. - Calculá
u·v. - Calculá
‖v‖. - Decidí si son perpendiculares.
Ver solución y código
u+v=(5,−2,2), 2u−v=(−2,−4,7), u·v=1 y ‖v‖=√17. No son perpendiculares porque el producto escalar no es cero.
const sumar = (a, b) => a.map((valor, i) => valor + b[i]);
const restar = (a, b) => a.map((valor, i) => valor - b[i]);
const productoEscalar = (a, b) =>
a.reduce((suma, valor, i) => suma + valor * b[i], 0);
const norma = vector => Math.hypot(...vector);
const u = [1, -2, 3];
const v = [4, 0, -1];
const dosU = u.map(componente => 2 * componente);
console.log(sumar(u, v));
console.log(restar(dosU, v));
console.log(productoEscalar(u, v));
console.log(norma(v));
Ejercicio 3: pertenencia a un entorno
Sea la bola abierta de centro P=(2,1) y radio 3. Determiná si pertenecen los puntos A=(4,2), B=(5,1) y C=(0,−1).
Ver solución razonada
d(P,A)=√5<3, por lo que A pertenece. d(P,B)=3: como la bola es abierta y no incluye el borde, B no pertenece. d(P,C)=√8<3, por lo que C pertenece.
Ejercicio 4: actualización de una simulación
Un objeto está en P=(10,−4,2) y se mueve con velocidad v=(2,3,−1) unidades por segundo.
- Calculá su posición después de
0,5segundos si la velocidad es constante. - Calculá su rapidez.
- Indicá las unidades de cada resultado.
- Implementá una función que funcione para cualquier dimensión.
Ver una posible respuesta
El desplazamiento es 0,5v=(1;1,5;−0,5) y la nueva posición es (11;−2,5;1,5). La rapidez es ‖v‖=√14≈3,74 unidades por segundo.
function actualizar(posicion, velocidad, deltaTiempo) {
if (posicion.length !== velocidad.length) {
throw new RangeError("Los datos deben tener la misma dimensión");
}
const desplazamiento = velocidad.map(v => v * deltaTiempo);
return posicion.map((valor, i) => valor + desplazamiento[i]);
}
console.log(actualizar([10, -4, 2], [2, 3, -1], 0.5));
// [11, -2.5, 1.5]
16 · Síntesis
Ideas para recordar
ℝⁿreúne listas ordenadas dennúmeros reales.- Un punto representa una posición; un vector representa magnitud y dirección.
- La resta de dos puntos produce el vector que va del primero al segundo.
- La suma y el producto por escalares se calculan componente a componente.
- La norma mide la longitud de un vector y la distancia entre puntos es la norma de su diferencia.
- Normalizar un vector no nulo conserva su dirección y le asigna longitud uno.
- El producto escalar permite comparar direcciones, detectar perpendicularidad y calcular proyecciones.
- Una bola de radio
rreúne los puntos situados a menos derdel centro. - Las unidades, la dimensión y el sistema de coordenadas deben mantenerse consistentes en el código.
En el próximo tema estudiaremos funciones de varias variables: cómo definirlas, evaluarlas, reconocer sus entradas y salidas, y traducir modelos multivariables a JavaScript.