¿Qué es?
Una regla que asigna a cada entrada de un conjunto exactamente una salida de un conjunto . El cálculo estudia cómo cambian las salidas cuando cambian las entradas; computar es, literalmente, evaluar funciones.
¿Por qué existe?
Para hablar de dependencia: la posición de un planeta depende del tiempo, el coste de un algoritmo del tamaño de la entrada, el error de una red neuronal de sus pesos. Una función empaqueta esa dependencia en un único objeto que se puede sumar, componer, derivar e integrar.
Intuición
Piensa en una máquina: entra , sale , y siempre la misma salida para la misma entrada. Su gráfica es una curva en el plano que toda recta vertical corta como mucho una vez. Casi todo el cálculo consiste en leer propiedades geométricas de esa curva (pendiente, área, curvatura) a partir de la fórmula.
Definición formal
Una función es un subconjunto tal que para cada hay exactamente un con ; se escribe . es el dominio, el codominio y el recorrido (imagen).
Fórmulas
Ejemplo
tiene dominio y recorrido . La función softmax del aprendizaje automático, , es una función cuyo recorrido es el conjunto de vectores de probabilidad con entradas positivas.
¿Por qué importa?
Una red neuronal entrenada es una función: millones de parámetros que fijan una concreta. Las funciones puras (misma entrada, misma salida, sin efectos secundarios) son además la unidad de razonamiento de la programación funcional y la razón de que cachear y paralelizar sea seguro.
Aplicaciones en informática
Un CAS representa funciones como árboles de expresiones que se pueden simplificar, derivar e integrar.
Dónde aparece en IA
Una red es una función parametrizada ; entrenar es elegir .
¿Dónde se utiliza?
Temas de informática a los que se llega desde aquí, con la cadena de ideas que lleva a ellos:
λ Computación científica y algoritmos
- Funciones exponenciales→Funciones logarítmicas→Análisis de algoritmos y complejidad★★★★★
- Sumas de Riemann→Integración numérica (cuadratura)→Cálculo científico★★★★★
- Sumas de Riemann→Integral definida→Métodos de Monte Carlo★★★★★
- Límite de una función→Derivada→Reglas de derivación→Computación simbólica (CAS)★★★★★
- Funciones exponenciales→Funciones logarítmicas→Coma flotante (IEEE 754)★★★★★
3D Gráficos por computador
- Funciones polinómicas→Curvas de Bézier y splines★★★★★
- Funciones trigonométricas→Producto escalar→Iluminación y sombreado★★★★★
- Funciones de varias variables→Superficies y conjuntos de nivel→Campos de distancia con signo y ray marching★★★★★
- Sumas de Riemann→Integral definida→La ecuación de renderizado★★★★★
- Funciones de varias variables→Derivadas parciales→Gradiente→Normales de superficie★★★★★
- Funciones trigonométricas→Producto escalar→Iluminación y sombreado→Ray tracing (trazado de rayos)★★★★★
- +2
⚙ Robótica y control
- Ecuaciones diferenciales ordinarias (EDO)→Teoría de control★★★★★
- Límite de una función→Derivada→Cinemática: posición, velocidad, aceleración★★★★★
- Funciones exponenciales→Distribuciones continuas→Filtro de Kalman★★★★★
- Máximos y mínimos→Optimización con restricciones→Optimización de trayectorias y MPC★★★★★
- Límite de una función→Derivada→Cinemática: posición, velocidad, aceleración→Jacobiana del robot (cinemática de velocidades)★★★★★
- Límite de una función→Derivada→Cinemática: posición, velocidad, aceleración→Dinámica de robots★★★★★
- +2
⚛ Física y simulación
- Ecuaciones diferenciales ordinarias (EDO)→Mecánica clásica★★★★★
- Ecuaciones diferenciales ordinarias (EDO)→Motores físicos★★★★★
- Funciones exponenciales→Modelos de poblaciones y epidemias★★★★★
- Ecuaciones diferenciales ordinarias (EDO)→Motores físicos→Simulación gravitatoria de N cuerpos★★★★★
- Funciones de varias variables→Derivadas parciales→Ecuación del calor y difusión★★★★★
- Ecuaciones diferenciales ordinarias (EDO)→Ecuaciones en derivadas parciales (EDP)→Ecuación de ondas★★★★★
- +4
∿ Señales, multimedia y visión
- Funciones trigonométricas→Procesamiento de señales★★★★★
- Funciones polinómicas→Interpolación→Procesamiento de imagen y visión artificial★★★★★
- Funciones trigonométricas→Procesamiento de señales→Teorema de muestreo (Nyquist–Shannon)★★★★★
- Funciones trigonométricas→Números complejos→Transformada rápida de Fourier (FFT)★★★★★
- Funciones trigonométricas→Procesamiento de señales→Filtros digitales★★★★★
- Funciones trigonométricas→Procesamiento de señales→Compresión multimedia (JPEG, MP3, vídeo)★★★★★
- +1
ψ Computación y física cuántica
- Funciones trigonométricas→Números complejos→Función de onda★★★★★
- Funciones trigonométricas→Números complejos→Computación cuántica★★★★★
- Funciones trigonométricas→Números complejos→Función de onda→Principio de incertidumbre★★★★★
- Funciones trigonométricas→Números complejos→Función de onda→Ecuación de Schrödinger★★★★★
Qué depende de él
Ejercicios
Halla el dominio y el recorrido de .
Solución
Dominio: . Ahí , así que el recorrido es .
¿Es una función que lee el reloj del sistema una función en sentido matemático? ¿Qué le falta?
Solución
No: la misma entrada (vacía) da salidas distintas. Se convierte en función matemática si el tiempo pasa a ser una entrada explícita, , que es justo lo que hace testeable el código.