20. Funciones afines

Una función afín combina un cambio proporcional con un valor inicial. Su forma general es f(x) = mx + b.

20.1 Introducción

Las funciones afines son muy parecidas a las funciones lineales, pero agregan un término independiente. Ese término permite representar valores iniciales, costos fijos, desplazamientos o puntos de partida distintos de cero.

En programación son muy útiles porque muchos modelos reales no empiezan desde cero.

20.2 Definición

Una función afín tiene la forma:

f(x) = mx + b

El valor m indica la pendiente o razón de cambio. El valor b indica la ordenada al origen o valor inicial.

20.3 Diferencia con una función lineal

En este curso usamos la convención de que una función lineal tiene la forma f(x) = mx, mientras que una función afín tiene la forma f(x) = mx + b.

Tipo Forma ¿Pasa por el origen?
Lineal f(x) = mx
Afín f(x) = mx + b Solo si b = 0

20.4 Ejemplo básico

Consideremos la función:

f(x) = 2x + 3

La pendiente es 2 y la ordenada al origen es 3.

x f(x)
0 3
1 5
2 7
3 9

La salida aumenta de a 2, pero comienza en 3 cuando x = 0.

20.5 Función afín en JavaScript

Una función afín se implementa multiplicando la entrada por la pendiente y sumando el valor inicial.

function afin(x) {
  return 2 * x + 3;
}

console.log(afin(0));
console.log(afin(1));
console.log(afin(5));

20.6 Función afín con parámetros

Podemos escribir una función más general que reciba m y b como parámetros.

function funcionAfin(x, m, b) {
  return m * x + b;
}

console.log(funcionAfin(4, 2, 3));
console.log(funcionAfin(4, -1, 10));

Con una sola implementación podemos representar muchas rectas distintas.

20.7 Interpretación gráfica

El gráfico de una función afín es una recta. La pendiente controla la inclinación y la ordenada al origen controla la altura donde la recta corta el eje vertical.

f(x) = mx + b m: inclinación b: desplazamiento vertical

20.8 Aplicación: costo con cargo fijo

Muchas tarifas tienen una parte fija y una parte variable. Esto se modela naturalmente con una función afín.

costo(unidades) = precioPorUnidad × unidades + cargoFijo
function calcularCosto(unidades) {
  const precioPorUnidad = 15;
  const cargoFijo = 80;

  return precioPorUnidad * unidades + cargoFijo;
}

console.log(calcularCosto(0));
console.log(calcularCosto(10));

El cargo fijo aparece incluso cuando las unidades consumidas son cero.

20.9 Aplicación: movimiento con posición inicial

Si un objeto ya tiene una posición inicial y luego se mueve con velocidad constante, la posición puede modelarse con una función afín.

posición(t) = velocidad × t + posiciónInicial
function posicion(tiempo) {
  const velocidad = 4;
  const posicionInicial = 20;

  return velocidad * tiempo + posicionInicial;
}

console.log(posicion(0));
console.log(posicion(5));

Cuando tiempo = 0, la posición ya vale 20.

20.10 Aplicación: convertir rangos con desplazamiento

Al convertir coordenadas o valores, a veces no solo hay que escalar, sino también desplazar.

pantalla(x) = escala × x + desplazamiento
function convertirAPantalla(x) {
  const escala = 40;
  const desplazamiento = 320;

  return escala * x + desplazamiento;
}

console.log(convertirAPantalla(-2));
console.log(convertirAPantalla(0));
console.log(convertirAPantalla(2));

Este patrón es común al dibujar gráficos en pantalla.

20.11 Identificar m y b en problemas

Problema m b
Costo con cargo fijo Precio por unidad Cargo fijo
Movimiento con posición inicial Velocidad Posición inicial
Conversión a píxeles Escala Desplazamiento
Modelo predictivo simple Peso de la entrada Sesgo o valor base

20.12 Errores comunes

  • Confundir funciones lineales con funciones afines.
  • Olvidar sumar el valor inicial b.
  • Interpretar b como pendiente.
  • No distinguir entre escala y desplazamiento.
  • Usar una función lineal cuando el problema tiene un valor fijo inicial.

20.13 Qué debes recordar de este tema

  • Una función afín tiene la forma f(x) = mx + b.
  • m representa la pendiente o razón de cambio.
  • b representa el valor inicial u ordenada al origen.
  • Su gráfico es una recta.
  • Si b = 0, la función pasa por el origen.
  • Las funciones afines son útiles para costos fijos, posiciones iniciales y desplazamientos.

20.14 Conclusión

Las funciones afines amplían las funciones lineales agregando un valor inicial. Esto permite modelar situaciones reales donde el resultado no comienza en cero.

En el próximo tema veremos funciones cuadráticas, cuyo gráfico ya no es una recta sino una parábola.