01 · Punto de partida
Una salida puede depender de muchas entradas
Una función de una variable describe relaciones como la posición según el tiempo. Pero el resultado de un programa suele depender de varias cantidades al mismo tiempo: el costo de una entrega depende de la distancia y del peso; el brillo de una imagen depende de dos coordenadas; la latencia de un servidor depende de la carga, el tamaño de la solicitud y los recursos disponibles.
Una función de varias variables organiza esa dependencia mediante una regla precisa. En lugar de analizar entradas aisladas, estudia combinaciones:
Esta forma de pensar permite responder preguntas fundamentales:
- ¿Qué cantidades necesita el modelo para calcular el resultado?
- ¿Qué combinaciones de entradas están permitidas?
- ¿Cómo se evalúa correctamente la función en un punto?
- ¿Qué ocurre al cambiar una entrada y mantener las otras fijas?
- ¿Las variables actúan de manera independiente o interactúan?
- ¿Cómo representamos la misma regla mediante fórmulas, tablas, gráficos y código?
02 · Definición
Qué hace una función
Una función f desde un conjunto D hacia un conjunto C es una regla que asigna a cada elemento de D un único elemento de C. Se escribe:
El conjunto D es el dominio; C es el codominio. Los valores que la función realmente alcanza forman su imagen. En el próximo tema estudiaremos estos conjuntos con detalle.
Si el dominio está contenido en ℝ² y la salida es un número real, podemos escribir:
Para cada punto (x,y) del dominio, la función produce exactamente un número f(x,y). La condición de unicidad se refiere a la salida: una misma entrada no puede tener dos resultados diferentes dentro de la misma función.
Es función
Una salida por entrada
f(x,y)=x+y asigna un único resultado a cada par permitido.
No define y como función
Dos salidas para una entrada
y²=x produce y=√x e y=−√x cuando x>0, salvo que elijamos una rama.
Que distintas entradas produzcan la misma salida no genera ningún problema. Por ejemplo, para f(x,y)=x²+y², los puntos (1,0), (0,1) y (−1,0) producen todos el valor 1.
03 · Lectura de la notación
De ℝⁿ hacia ℝᵐ
La notación F: ℝⁿ → ℝᵐ resume dos cantidades diferentes:
nes la cantidad de componentes de la entrada.mes la cantidad de componentes de la salida.
| Notación | Entrada | Salida | Ejemplo |
|---|---|---|---|
f: ℝ → ℝ | Un número | Un número | f(t)=t² |
f: ℝ² → ℝ | Un par | Un número | f(x,y)=x²+y² |
f: ℝ³ → ℝ | Una terna | Un número | T(x,y,z) |
F: ℝ² → ℝ² | Un par | Un par | F(x,y)=(2x,3y) |
F: ℝ³ → ℝ² | Una terna | Un par | F(x,y,z)=(x+z,y−z) |
L: ℝⁿ → ℝ | n parámetros | Un costo | Función de pérdida |
Las letras minúsculas suelen reservarse para funciones con salida escalar y las mayúsculas para funciones vectoriales, pero es una convención, no una obligación matemática.
04 · Sustitución ordenada
Evaluar una función en un punto
Evaluar consiste en sustituir cada variable por la coordenada correspondiente y respetar las operaciones. Sea:
Para calcular f(2,−1), sustituimos x=2 e y=−1:
Los paréntesis alrededor de valores negativos evitan errores de signo. Además, el orden de las entradas forma parte de la definición:
En este caso f(2,−1) ≠ f(−1,2). Intercambiar coordenadas solo conserva el valor en funciones que poseen la simetría correspondiente.
Evaluación de una función vectorial
Si F(x,y)=(x+y,x−y,xy), cada componente se evalúa con la misma entrada:
La entrada pertenece a ℝ² y la salida a ℝ³. Que la salida tenga más componentes no significa que se hayan realizado tres evaluaciones independientes: forman un único resultado vectorial.
05 · Roles del modelo
Variables, salidas y parámetros
En una expresión pueden aparecer símbolos con roles diferentes. Consideremos el modelo:
Durante el estudio de una versión concreta:
x, y- Son variables de entrada. Recorren combinaciones del dominio.
C- Es la variable de salida o dependiente.
c₀, a, b, k- Son parámetros. Se fijan para seleccionar un modelo de una familia.
Al modificar x o y, elegimos otro punto del mismo modelo. Al modificar un parámetro, cambiamos la regla completa. En programación, una fábrica de funciones puede fijar los parámetros y devolver el modelo:
function crearModelo({ base, coefX, coefY, interaccion }) {
return function evaluar(x, y) {
return base + coefX * x + coefY * y + interaccion * x * y;
};
}
const costo = crearModelo({
base: 10,
coefX: 2,
coefY: 3,
interaccion: 0.5
});
console.log(costo(4, 2)); // 28
06 · Clasificación
Funciones escalares y funciones vectoriales
Función escalar
Devuelve un número. Puede representar altura, temperatura, densidad, probabilidad o costo.
Función vectorial
Devuelve varias componentes. Puede representar color, velocidad, fuerza o una transformación.
Función parametrizada
Una entrada controla varias coordenadas de salida, por ejemplo una trayectoria r(t).
Campo escalar
Una función f: D⊆ℝⁿ→ℝ asigna un escalar a cada punto del dominio. Por ejemplo, T(x,y) puede asignar una temperatura a cada punto de una placa.
Campo vectorial
Una función F: D⊆ℝⁿ→ℝⁿ puede asignar un vector a cada punto. Por ejemplo, V(x,y) puede indicar la velocidad de un fluido en cada posición del plano.
Transformación de coordenadas
La función F(x,y)=(2x,y/2) estira el plano horizontalmente y lo comprime verticalmente. En gráficos, muchas transformaciones reciben y devuelven posiciones vectoriales.
07 · Modelos frecuentes
Familias de funciones multivariables
Reconocer estructuras conocidas ayuda a anticipar el comportamiento de un modelo.
| Familia | Forma típica | Característica |
|---|---|---|
| Afín | f(x,y)=a+bx+cy | Su gráfica es un plano. |
| Polinómica | f(x,y)=x²+xy+y² | Combina potencias enteras no negativas. |
| Radial | f(x,y)=g(√(x²+y²)) | Depende de la distancia al origen. |
| Racional | f(x,y)=p(x,y)/q(x,y) | Excluye los puntos donde q=0. |
| Exponencial | f(x,y)=e^(ax+by) | Modela crecimiento o decaimiento combinado. |
| Trigonométrica | f(x,y)=sen(x)cos(y) | Produce patrones oscilatorios. |
| Definida por partes | Una regla según la región | Permite comportamientos diferentes por zonas. |
Funciones separables
Una función como f(x,y)=g(x)+h(y) separa los efectos de las entradas mediante una suma. Otra como f(x,y)=g(x)h(y) los combina mediante un producto. Esta estructura puede simplificar cálculos y revelar simetrías.
Simetrías
Si f(x,y)=f(y,x), intercambiar las entradas no cambia la salida; por ejemplo, x²+y². Si f(−x,y)=f(x,y), la función es simétrica respecto del cambio de signo de x. Detectar simetrías reduce trabajo y facilita la visualización.
08 · Dependencia conjunta
Efectos aditivos e interacciones
En un modelo aditivo como f(x,y)=2x+3y, aumentar x una unidad agrega siempre 2 a la salida, sin importar el valor de y. Cada entrada aporta un efecto independiente.
En cambio, para g(x,y)=xy, aumentar x una unidad cambia la salida en una cantidad igual a y:
El efecto de x depende del valor de y. Decimos que existe una interacción. Estas interacciones aparecen en modelos físicos, estadísticos, económicos y de aprendizaje automático.
Modelo aditivo
f(x,y)=2x+3y
El aporte de cada variable puede separarse como una suma.
Modelo con interacción
g(x,y)=2x+3y+xy
El término xy vincula las variables y modifica sus efectos individuales.
Más adelante, las derivadas parciales medirán el cambio respecto de una entrada manteniendo las demás constantes, y las derivadas mixtas ayudarán a estudiar cómo varía ese efecto.
09 · Un modelo, varias miradas
Fórmula, tabla, superficie, niveles y cortes
Una función de dos variables admite representaciones complementarias:
- Fórmula
- Muestra con exactitud las operaciones y parámetros del modelo.
- Tabla o grilla
- Registra la salida para combinaciones concretas de entradas.
- Superficie
- Representa cada punto
(x,y,f(x,y))en tres dimensiones. - Curvas de nivel
- Unen entradas que producen la misma salida
f(x,y)=c. - Cortes o trazas
- Fijan una entrada para obtener una función de una variable.
- Código
- Permite evaluar, muestrear y reutilizar la regla.
Una pantalla solo puede mostrar una cantidad finita de muestras. Aunque el gráfico parezca continuo, el renderizado aproxima la función mediante píxeles, segmentos, triángulos o colores interpolados.
Una tabla de doble entrada
Para f(x,y)=x²+y, podemos mantener filas para y y columnas para x:
| y \ x | −1 | 0 | 1 | 2 |
|---|---|---|---|---|
| −1 | 0 | −1 | 0 | 3 |
| 0 | 1 | 0 | 1 | 4 |
| 1 | 2 | 1 | 2 | 5 |
10 · Reducir la dimensión
Fijar variables y estudiar cortes
Sea f(x,y)=x²+xy. Si fijamos y=2, obtenemos una función de una variable:
La variable y deja de variar durante ese análisis y actúa como un valor fijado. Si elegimos otro valor, por ejemplo y=−1, obtenemos otro corte:
La colección de todos esos cortes ayuda a imaginar la superficie completa. También podemos recorrer una trayectoria que vincule las entradas. Si x=t e y=2t:
Ahora ambas entradas cambian coordinadamente según un solo parámetro. Esta idea será importante para estudiar límites por caminos y la regla de la cadena.
11 · Construcción de modelos
De una descripción verbal a una función
Supongamos que un servicio cobra un cargo base de 8 unidades, 0,04 por cada solicitud y 0,002 por cada megabyte transferido. Además, cuando coinciden muchas solicitudes con transferencias grandes aparece una sobrecarga modelada por 0,00001sm.
- 1Elegir entradas.
s: cantidad de solicitudes;m: megabytes transferidos. - 2Elegir salida.
C: costo total en unidades monetarias. - 3Traducir cada aporte.
Base
8, solicitudes0,04s, transferencia0,002me interacción0,00001sm. - 4Construir la función.
C(s,m)=8+0,04s+0,002m+0,00001sm. - 5Declarar restricciones.
sdebe ser un entero no negativo ymun real no negativo.
function costoServicio(solicitudes, megabytes) {
if (!Number.isInteger(solicitudes) || solicitudes < 0) {
throw new RangeError("Las solicitudes deben ser un entero no negativo");
}
if (!Number.isFinite(megabytes) || megabytes < 0) {
throw new RangeError("Los megabytes deben ser un número no negativo");
}
return 8
+ 0.04 * solicitudes
+ 0.002 * megabytes
+ 0.00001 * solicitudes * megabytes;
}
console.log(costoServicio(100, 500)); // 13.5
La implementación valida el dominio contextual antes de evaluar. Un resultado numérico solo es útil si las entradas representan un caso admitido por el modelo.
12 · Exploración visual
Laboratorio: una familia de cortes
Elegí una función y fijá un valor de y. La curva dorada muestra la función de una variable g(x)=f(x,y) obtenida con ese valor. La curva violeta de referencia corresponde a y=0. Mové x para evaluar un punto del corte.
Fijar una entrada
g(x) = f(x, 1) = x² + x
Al pasar de y = 0 a y = 1,00, la salida en x = 1,00 aumenta 1,00.
La curva dorada representa el corte con el valor de y elegido. La curva violeta punteada representa el corte de referencia y igual a cero. El punto coral marca la evaluación actual.
Preguntas para explorar
- En el modelo aditivo, cambiá
y. ¿La curva cambia de forma o solo se desplaza verticalmente? - En el modelo con interacción, observá la inclinación cerca de distintos valores de
y. ¿Por qué cambia? - Elegí
y=0. ¿Por qué coinciden las dos curvas? - En el modelo de ondas, buscá un valor de
ypara el cual el corte sea casi horizontal. - Mantené
yfijo y movéx. ¿Qué variable actúa como entrada y cuál como parámetro del corte?
13 · Implementación
Patrones para programar funciones multivariables
Con pocas entradas, los argumentos separados son claros:
function temperatura(x, y, tiempo) {
const enfriamiento = 0.2 * tiempo;
return 25 + 3 * Math.sin(x) * Math.cos(y) - enfriamiento;
}
console.log(temperatura(1, 0.5, 10));
Entradas nombradas
Cuando hay muchas entradas o algunas son opcionales, un objeto reduce errores de orden:
function estimarEntrega({ distanciaKm, pesoKg, urgente = false }) {
if (distanciaKm < 0 || pesoKg < 0) {
throw new RangeError("Distancia y peso deben ser no negativos");
}
const costo = 5 + 0.6 * distanciaKm + 1.2 * pesoKg;
return urgente ? 1.5 * costo : costo;
}
console.log(estimarEntrega({
distanciaKm: 12,
pesoKg: 3,
urgente: true
})); // 23.7
Evaluar sobre una colección de puntos
function evaluarPuntos(funcion, puntos) {
return puntos.map(([x, y]) => ({
x,
y,
valor: funcion(x, y)
}));
}
const superficie = (x, y) => x ** 2 + y ** 2;
const puntos = [[0, 0], [1, 2], [-2, 1]];
console.log(evaluarPuntos(superficie, puntos));
Crear un corte reutilizable
function fijarY(funcion, yFijo) {
return x => funcion(x, yFijo);
}
const f = (x, y) => x ** 2 + x * y;
const corteY2 = fijarY(f, 2);
console.log(corteY2(-1)); // -1
console.log(corteY2(3)); // 15
14 · Comprensión
Confusiones frecuentes
«Dos variables significan dos salidas»
La dimensión de entrada y la de salida son independientes. f:ℝ²→ℝ recibe dos coordenadas y devuelve un número.
«f(x,y) significa f(x) multiplicado por y»
Los paréntesis indican que la función se evalúa en el par (x,y). Una multiplicación debe escribirse explícitamente.
«Intercambiar x e y nunca modifica el resultado»
Solo ocurre en funciones simétricas respecto de ese intercambio. La posición de cada argumento tiene significado.
«Si distintas entradas producen la misma salida, no es función»
Una función puede repetir salidas. Lo prohibido es asignar más de una salida a la misma entrada.
«Fijar y convierte definitivamente a y en una constante»
y se mantiene fija solo durante el estudio de ese corte. En la función original continúa siendo una variable de entrada.
«Una fórmula válida acepta cualquier combinación de números»
Las operaciones y el contexto restringen el dominio. Una raíz, un denominador o el significado físico pueden excluir entradas.
«Una grilla contiene toda la función»
Solo contiene una muestra finita. Entre sus puntos puede haber comportamiento que la resolución elegida no detecta.
15 · Práctica guiada
Ejercicios de comprensión
Ejercicio 1: notación y evaluación
Sea f(x,y,z)=x²+2y−xz.
- Indicá la dimensión de la entrada y de la salida.
- Calculá
f(2,−1,3). - Calculá
f(3,−1,2)y compará. - Escribí la función de dos variables que resulta al fijar
z=1.
Ver solución razonada
La función tiene tres entradas y una salida: puede describirse como f:ℝ³→ℝ si no existen restricciones adicionales. f(2,−1,3)=4−2−6=−4. f(3,−1,2)=9−2−6=1, de modo que intercambiar x y z cambia el resultado. Al fijar z=1, resulta g(x,y)=x²+2y−x.
Ejercicio 2: escalar o vectorial
Clasificá cada función e indicá las dimensiones de entrada y salida:
T(x,y)=20−x²−y²F(x,y)=(−y,x)r(t)=(cos(t),sen(t),t)C(w₁,…,wₙ), que devuelve el error de un modelo.
Ver solución razonada
- Escalar, de
ℝ²haciaℝ. - Vectorial, de
ℝ²haciaℝ². - Vectorial parametrizada, de
ℝhaciaℝ³. - Escalar, de un subconjunto de
ℝⁿhaciaℝ.
Ejercicio 3: detectar una interacción
Considerá R(x,y)=5+2x+3y+0,5xy.
- Calculá
R(2,1)yR(3,1). - Repetí para
R(2,4)yR(3,4). - Compará el efecto de aumentar
xuna unidad en ambos casos. - Explicá qué término causa la diferencia.
Ver solución y código
Para y=1, el cambio es 2,5. Para y=4, el cambio es 4. El término 0,5xy hace que el aporte de x dependa de y.
const rendimiento = (x, y) => 5 + 2 * x + 3 * y + 0.5 * x * y;
for (const y of [1, 4]) {
const cambio = rendimiento(3, y) - rendimiento(2, y);
console.log(`Con y = ${y}, el cambio es ${cambio}`);
}
Ejercicio 4: diseñar una función
El consumo estimado de energía de una tarea depende de su duración en segundos, la utilización promedio del procesador entre 0 y 1 y la potencia máxima del equipo en vatios.
- Proponé una función para calcular energía en joules.
- Identificá entradas, salida y unidades.
- Indicá restricciones contextuales.
- Implementá y evaluá el modelo para 120 s, utilización 0,75 y potencia 80 W.
Ver una posible respuesta
Un modelo simple es E(t,u,p)=tup. Como 1 W=1 J/s, el producto produce joules. Requerimos t≥0, 0≤u≤1 y p≥0. Para los valores dados, E=7200 J.
function energia(tiempoSegundos, utilizacion, potenciaVatios) {
if (tiempoSegundos < 0 || potenciaVatios < 0) {
throw new RangeError("Tiempo y potencia deben ser no negativos");
}
if (utilizacion < 0 || utilizacion > 1) {
throw new RangeError("La utilización debe estar entre 0 y 1");
}
return tiempoSegundos * utilizacion * potenciaVatios;
}
console.log(energia(120, 0.75, 80)); // 7200 J
16 · Síntesis
Ideas para recordar
- Una función asigna a cada entrada válida una única salida.
- En
F:ℝⁿ→ℝᵐ,nes la dimensión de entrada ymla de salida. - Una función escalar devuelve un número; una función vectorial devuelve varias componentes.
- El orden de los argumentos importa salvo que la función tenga una simetría que permita intercambiarlos.
- Los parámetros seleccionan un modelo de una familia; las variables recorren sus entradas.
- Un término que combina variables puede representar una interacción entre sus efectos.
- Fijar algunas entradas produce cortes de menor dimensión y facilita el análisis.
- Fórmulas, tablas, superficies, niveles, cortes y código ofrecen miradas complementarias.
- Una implementación debe documentar y validar significado, orden, unidades y restricciones.
En el próximo tema estudiaremos dominio e imagen: aprenderemos a determinar qué combinaciones de entradas admite una función y qué valores puede producir.