Modelos multivariables · Tema 03

Funciones de varias variables

Cómo una regla transforma múltiples entradas en una salida, cómo se interpreta su notación y cómo se convierte en un modelo computable.

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:

f: D → C

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:

f: D ⊆ ℝ² → ℝ

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:

  • n es la cantidad de componentes de la entrada.
  • m es la cantidad de componentes de la salida.
Clasificación según las dimensiones de entrada y salida.
NotaciónEntradaSalidaEjemplo
f: ℝ → ℝUn númeroUn númerof(t)=t²
f: ℝ² → ℝUn parUn númerof(x,y)=x²+y²
f: ℝ³ → ℝUna ternaUn númeroT(x,y,z)
F: ℝ² → ℝ²Un parUn parF(x,y)=(2x,3y)
F: ℝ³ → ℝ²Una ternaUn parF(x,y,z)=(x+z,y−z)
L: ℝⁿ → ℝn parámetrosUn costoFunció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:

f(x,y) = 3x² − 2xy + y

Para calcular f(2,−1), sustituimos x=2 e y=−1:

f(2,−1) = 3·2² − 2·2·(−1) + (−1) = 15

Los paréntesis alrededor de valores negativos evitan errores de signo. Además, el orden de las entradas forma parte de la definición:

f(−1,2) = 3·(−1)² − 2·(−1)·2 + 2 = 9

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:

F(3,1) = (4,2,3)

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:

C(x,y) = c₀ + ax + by + kxy

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

f

Función escalar

Devuelve un número. Puede representar altura, temperatura, densidad, probabilidad o costo.

F

Función vectorial

Devuelve varias componentes. Puede representar color, velocidad, fuerza o una transformación.

t

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.

Algunas familias de funciones escalares de dos variables.
FamiliaForma típicaCaracterística
Afínf(x,y)=a+bx+cySu gráfica es un plano.
Polinómicaf(x,y)=x²+xy+y²Combina potencias enteras no negativas.
Radialf(x,y)=g(√(x²+y²))Depende de la distancia al origen.
Racionalf(x,y)=p(x,y)/q(x,y)Excluye los puntos donde q=0.
Exponencialf(x,y)=e^(ax+by)Modela crecimiento o decaimiento combinado.
Trigonométricaf(x,y)=sen(x)cos(y)Produce patrones oscilatorios.
Definida por partesUna regla según la regiónPermite 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:

g(x+1,y) − g(x,y) = 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:

Valores de f(x,y)=x²+y.
y \ x−1012
−10−103
01014
12125

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:

g(x)=f(x,2)=x²+2x

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:

h(x)=f(x,−1)=x²−x

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:

q(t)=f(t,2t)=t²+2t²=3t²

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.

  1. 1
    Elegir entradas.

    s: cantidad de solicitudes; m: megabytes transferidos.

  2. 2
    Elegir salida.

    C: costo total en unidades monetarias.

  3. 3
    Traducir cada aporte.

    Base 8, solicitudes 0,04s, transferencia 0,002m e interacción 0,00001sm.

  4. 4
    Construir la función.

    C(s,m)=8+0,04s+0,002m+0,00001sm.

  5. 5
    Declarar restricciones.

    s debe ser un entero no negativo y m un 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.

EXPERIMENTO 03

Fijar una entrada

g(x) = f(x, 1) = x² + x

Los resultados numéricos aparecen debajo del gráfico.
Entrada(1,00; 1,00)
Salidaf = 2,00
Referencia y = 0f(1,00; 0) = 1,00
Efecto observadoDiferencia = 1,00

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

  1. En el modelo aditivo, cambiá y. ¿La curva cambia de forma o solo se desplaza verticalmente?
  2. En el modelo con interacción, observá la inclinación cerca de distintos valores de y. ¿Por qué cambia?
  3. Elegí y=0. ¿Por qué coinciden las dos curvas?
  4. En el modelo de ondas, buscá un valor de y para el cual el corte sea casi horizontal.
  5. Mantené y fijo 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.

  1. Indicá la dimensión de la entrada y de la salida.
  2. Calculá f(2,−1,3).
  3. Calculá f(3,−1,2) y compará.
  4. 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:

  1. T(x,y)=20−x²−y²
  2. F(x,y)=(−y,x)
  3. r(t)=(cos(t),sen(t),t)
  4. C(w₁,…,wₙ), que devuelve el error de un modelo.
Ver solución razonada
  1. Escalar, de ℝ² hacia ℝ.
  2. Vectorial, de ℝ² hacia ℝ².
  3. Vectorial parametrizada, de ℝ hacia ℝ³.
  4. Escalar, de un subconjunto de ℝⁿ hacia ℝ.

Ejercicio 3: detectar una interacción

Considerá R(x,y)=5+2x+3y+0,5xy.

  1. Calculá R(2,1) y R(3,1).
  2. Repetí para R(2,4) y R(3,4).
  3. Compará el efecto de aumentar x una unidad en ambos casos.
  4. 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.

  1. Proponé una función para calcular energía en joules.
  2. Identificá entradas, salida y unidades.
  3. Indicá restricciones contextuales.
  4. 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:ℝⁿ→ℝᵐ, n es la dimensión de entrada y m la 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.