El cálculo aparece bastante en un montón de lugares “obvios”, la mayoría de los cuales se ocupan de temas como física (robótica, visión por computadora) o estadísticas (aprendizaje automático, IA) que naturalmente presentan muchos de ellos.
Sin embargo, hay algunos lugares más interesantes para usarlo. Matthew Mirman ya notó mi favorita, que aplica la idea básica de diferenciación y series de Taylor a tipos en lugar de números. Dado que los tipos solo funcionan vagamente como números, hay análogos razonables para 0, 1, + y × pero no realmente – o / (whoo semirings), esto es bastante sorprendente. Y, sin embargo, también es muy útil para generalizar las cremalleras a otros tipos que no sean listas.
Entonces, en cambio, solo voy a citar una de mis anécdotas favoritas sobre Richard Feynman. La idea central es que podemos usar cálculo y funciones continuas para analizar y aproximar sistemas discretos . Se siente un poco al revés, ¿no es cierto, proviene de una clase de cálculo normal? Pero a menudo, es mucho más fácil resolver un problema que involucra valores continuos y usarlo como un límite superior o inferior de lo que es resolver un problema discreto exactamente.
De todos modos, aquí hay un extracto de la historia contada por Daniel Hillis (Richard Feynman y The Connection Machine):
A fines de ese verano de 1983, Richard había completado su análisis del comportamiento del enrutador y, para nuestra sorpresa y diversión, presentó su respuesta en forma de un conjunto de ecuaciones diferenciales parciales. Para un físico, esto puede parecer natural, pero para un diseñador de computadoras, tratar un conjunto de circuitos booleanos como un sistema continuo y diferenciable es un poco extraño. Las ecuaciones de enrutador de Feynman se expresaron en términos de variables que representan cantidades continuas como “el número promedio de 1 bits en una dirección de mensaje”. Estaba mucho más acostumbrado a ver el análisis en términos de pruebas inductivas y análisis de casos que tomar la derivada de “el número de 1” con respecto al tiempo. Nuestro análisis discreto dijo que necesitábamos siete memorias intermedias por chip; Las ecuaciones de Feynman sugirieron que solo necesitábamos cinco. Decidimos ir a lo seguro e ignorar a Feynman.
La decisión de ignorar el análisis de Feynman se tomó en septiembre, pero para la próxima primavera estábamos frente a una pared. Los chips que habíamos diseñado eran demasiado grandes para fabricarlos y la única forma de resolver el problema era reducir el número de memorias intermedias por chip a cinco. Como las ecuaciones de Feynman afirmaban que podíamos hacer esto de manera segura, sus métodos de análisis no convencionales comenzaron a verse cada vez mejor para nosotros. Decidimos seguir adelante y hacer las fichas con el menor número de buffers.
Afortunadamente, tenía razón. Cuando juntamos las fichas, la máquina funcionaba. El primer programa que se ejecutó en la máquina en abril de 1985 fue el juego de la vida de Conway.
Siempre pensé que esta era una excelente manera de ilustrar cómo diferentes partes de las matemáticas pueden trabajar juntas de manera sorprendente. Esta es la verdadera belleza de las matemáticas y la CS: las cosas simplemente encajan, incluso si fueron derivadas de maneras completamente diferentes por personas con filosofías muy diferentes que intentan hacer cosas completamente diferentes. Descubrir una conexión inesperada como esta es la magia definitiva que he encontrado jugando con las matemáticas y la informática.