¿La programación hace que las matemáticas sean más fáciles? Si es así, ¿por qué seguimos aprendiendo matemáticas?

Las matemáticas no se trata de cálculo, se trata de pruebas. La prueba no es completamente ajena a la computación. Hay pruebas asistidas por computadora, por ejemplo, la prueba del teorema de los cuatro colores, y muchas personas estudian sistemas de prueba automatizados. Pero en su mayor parte, la programación de computadoras produce solo funciones que computan valores. Esto puede ser útil para las matemáticas, pero no lo reemplaza.

Las computadoras a menudo son inútiles para responder preguntas sobre una colección de objetos que no se pueden enumerar. Por ejemplo, no hay una forma obvia de usar una computadora para ayudar a responder la conjetura de Vaught, porque esta es una pregunta sobre cardinalidades infinitas. Probablemente hay una prueba / refutación finita de la conjetura de Vaught que una computadora podría descubrir, pero una computadora no puede aplicarse directamente para contar un conjunto incontable de objetos.

Incluso cuando se trata de conjuntos finitos, las computadoras a menudo son inaplicables. Por ejemplo, supongamos que queremos saber el número de Ramsey [math] R (10,10) [/ math]. Este es un número finito que podría calcularse haciendo un cálculo suficientemente largo. Pero el cálculo no es factible llevar a cabo en la práctica, porque la cantidad de posibilidades que deben considerarse en un enfoque ingenuo es enormemente grande.

La expresión en los detalles de la pregunta, x = x + 1, significa diferentes cosas en diferentes lenguajes de programación. En muchos idiomas, es una declaración de asignación. En otros idiomas, es una expresión condicional que siempre se evalúa como falsa. Hay idiomas (por ejemplo, LISP) en los que no significa nada. (En caso de que tenga curiosidad, en LISP la asignación sería (setq x (+ x 1)) , la expresión de prueba (= x (+ x 1)) .)

En matemáticas, la expresión es “matemática válida” en la medida en que, en la notación estándar de las matemáticas, es un ejemplo de una expresión que siempre es falsa. Entonces, por ejemplo, podría escribir [math] \ neg (\ exime x \ in \ mathbb {R}): x = x + 1 [/ math], que es una declaración matemática válida (y verdadera).

Y nada de eso tiene nada que ver con por qué seguimos aprendiendo matemáticas en la era de las computadoras poderosas. Déjame darte una razón por la que todavía estamos aprendiendo matemáticas. Por ejemplo, puede tener una subrutina como esta:

paso de tiempo vacío (doble y r, doble y v, doble GM, doble dt)
{
doble a = -GM / (r * r);
r + = v * dt + 0.5 * a * dt * dt;
v + = a * dt;
}

pero sin saber las matemáticas (y la física), no tendrías idea de que esto es un simple integrador numérico de la ecuación diferencial [math] \ ddot {r} = – GM / r ^ 2 [/ math] (es decir, movimiento unidimensional en un campo gravitatorio. Y especialmente, no tendría idea de por qué este algoritmo ingenuo es inexacto y cómo puede mejorarse sustancialmente al elegir un mejor método de integración. Para implementar un algoritmo eficiente y numéricamente estable que represente con precisión la física, debe comprender las matemáticas.

Todo esto es para decir que las matemáticas son mucho más que la aritmética. No obstante, si bien es cierto que la ubicuidad de los dispositivos de cálculo nos libera de la carga de tener que realizar cálculos simples en nuestra cabeza o usar lápiz y papel, todavía es una habilidad muy útil para poder estimar la magnitud de un resultado.

Eso sí, probablemente en un futuro no muy lejano, AI hará todo esto por nosotros. La pregunta es, ¿por qué esa inteligencia artificial todavía se molestaría en mantenernos cerca de humanos blandos, desordenados y estúpidos que ya ni siquiera pueden hacer aritmética básica?

Fue una mala decisión de muchos lenguajes de programación usar el signo “=” para denotar la operación de asignación, mientras que en matemáticas denota equivalencia.

El pensamiento matemático es útil porque en cierto modo es muy similar a la programación, es decir,

1. Obtener una comprensión del problema

2. Descubre un método para resolverlo.

3. Implementar una solución rigurosa y correcta.

Desafortunadamente, lo que pasa por “aprender matemáticas” en la escuela no enseña estas habilidades muy bien, en todo caso. En su lugar, aprendemos los resultados de unas pocas ramas limitadas de las matemáticas, y aprendemos cómo aplicar algunas técnicas estándar. No aprendemos cómo los matemáticos llegaron a sus resultados o desarrollaron las técnicas. Rara vez si alguna vez llegamos a hacer matemáticas genuinas. De hecho, los maestros que nos enseñan aritmética básica cuando tenemos 5 o 6 años probablemente no tienen idea de lo que realmente son las matemáticas.

Sí, es más fácil calcular sumas de series finitas usando una computadora.

Pero no veo lo que tiene que ver con las matemáticas.


Matemáticas no se trata tanto de cómo calculas las transformadas de Fourier como de por qué quieres usarlas en primer lugar. Matemáticas no se trata de multiplicar dos números, sino de cómo esta operación puede ser útil para usted. Las matemáticas no son útiles para calcular la derivada de una función cuando no entiendes cómo puede ayudarte a encontrar el mínimo de una función.

La matemática es sobre constructos, no números.

Y si, mientras

(bucle para x = 1 luego (/ (+ x (/ kx)) 2) e y = 0 luego x hasta que (<(abs (- xy)) épsilon) recoja x)

produce una lista de valores que convergen a un determinado valor, las computadoras no pueden explicarle que converge a [math] \ sqrt {k} [/ math], duplicando el número de dígitos correctos en cada paso.

Y ciertamente no pueden decirte por qué .

Tiene un significado completamente diferente en programación que en matemáticas. En los idiomas (similares a C), x = x + 1 asigna el valor x + 1 a x. En matemáticas compara x con x + 1. El equivalente de C sería x == x + 1, lo que (casi?) Siempre devolverá falso.