81 votos

¿Qué lenguaje de programación debe saber un matemático profesional?

Más y más voy a estar convencido de que uno debe saber al menos un lenguaje de programación muy bien como un matemático de este siglo. Es mi convicción justificada, o no se aplica?

Si estoy en lo cierto, entonces por favor, ¿en qué idiomas se debe hacer alguien que aspira a ser un matemático aprender? El número no es tan desconcertante para un principiante como para el juez, y nadie puede juzgar adecuados que un cuerpo de trabajo de los matemáticos, de ahí mi publicación aquí esta cuestión en concreto.

En particular, este lenguaje debe ser muy útil para aplicaciones de las matemáticas, debe estar cerca de la sintaxis y la estructura de las matemáticas, y estar relacionadas matemáticamente en otras formas relevantes. De hecho, usted puede sugerir un idioma que hayas encontrado útil o importante en otros aspectos que no se mencionan, pero por favor, explique por qué hacer estas sugerencias claramente.

Gracias.

PS. No pude encontrar suficientemente relevante etiquetas. Por favor, mejorar, según proceda.

94voto

dale Puntos 41

Python, por lo que puede utilizar la Salvia. Desde su página web:

SageMath es un libre y de código abierto software de matemáticas sistema de licenciado bajo la GPL. Se construye en la parte superior de muchas de las existentes abrir paquetes fuente: NumPy, SciPy, matplotlib, Sympy, Maxima, BRECHA, FLINT, R y muchos más. El acceso a sus potencia combinada a través de un común, Python basado en el lenguaje o directamente a través de interfaces o envoltorios. Misión: la Creación de una viables gratis alternativa de código abierto a Magma, Maple, Mathematica y Matlab.

80voto

Skizz Puntos 30682

Depende de su campo específico.

  • En numéricos, matemática, Matlab es el estándar de-facto (a menos que necesite de computación de alto rendimiento, pero entonces empiezas a ser más un equipo científico de un matemático), y Julia es el prometedor que podría tomar en el futuro.
  • Aplicada probabilidad y estadística, R es el estándar de-facto.
  • En álgebra y teoría de números, hay un par de lenguajes especializados, tales como Pari/GP y GAP.
  • En la combinatoria o análisis, usted probablemente necesita ninguno de estos, pero será útil para saber Mathematica para el ocasional complicado cálculo simbólico o integral.
  • Si tienes que elegir sólo uno, Python (para Sage) es un buen generalista elección. Hace un poco de todo, pero peor que la de un lenguaje especializado.

61voto

Látex

Esto quizás no sea la respuesta que usted está buscando, pero de hecho es un lenguaje de programación (es Turing completo), y también es un idioma que todos los profesionales de matemático necesita aprender. Uno puede hacer gráficos muy buenos con bucles y las similitudes con más 'tradicionales' de los lenguajes de programación hay bajo el capó.

También se puede utilizar AutoHotKey para automatizar comandos de TeX. Por ejemplo, al escribir símbolos matemáticos en carácter Unicode es bastante práctico. Sólo en Windows.

43voto

Rob P. Puntos 162

Uno debe, probablemente, también mencionar lenguajes de programación funcional se basa en alguna forma de escrito cálculo lambda como Haskell. Hay un poco de la categoría de la teoría pasando en los sistemas de tipo de estas lenguas, lo que puede ser un terreno familiar y una interesante aplicación de sus conocimientos matemáticos para muchos de los matemáticos.

Por otra parte, de Curry–Howard correspondencia dice que "los tipos son proposiciones" y "términos son pruebas", por lo que uno podría argumentar que la programación en estos lenguajes es la misma como la demostración de teoremas. Este enfoque es especialmente frecuente en dependiente de los lenguajes con tipos como Coq.


Pero tal vez usted no es una categoría teórico o lógico (o al menos no creo que de sí mismo de esa manera). Eso está bien - lenguajes como Haskell son todavía una gran manera de establecer los cálculos matemáticos. Esto es debido a que en Haskell, describiendo a la computadora cómo hacer los cálculos en general es muy similar a la que describen a otros matemáticos de cómo hacer los mismos cálculos!

Como un ejemplo de topología de baja dimensión, considere el siguiente fragmento de código de http://katlas.org/wiki/The_Kauffman_Bracket_using_Haskell, que calcula el Kauffman soporte de un nudo diagrama especifica el uso de la DP en la notación

kauffman :: PD -> R
kauffman [] = one
kauffman (Join a b:pd) | a == b    = (-av*av-ai*ai) * kauffman pd
kauffman (Join a b:pd) | otherwise =
   kauffman (map (fmap (\c -> if (c == a) then b else c)) pd)
kauffman (Cross a b c d:pd) =
  ai * kauffman (Join a b:Join c d:pd)
    + av * kauffman (Join a d:Join b c:pd)

Los últimos cuatro alineado a la izquierda de las líneas de dar cuatro definiciones de la kauffman función.

La primera línea, kaufmann [] = one es un caso base de la especificación de la Kauffman soporte de diagrama vacío. La segunda línea es la regla para la eliminación de distintos círculos, y la cuarta línea es el cruce de axioma. (La tercera línea de tiradores de algunos tecnicismos en la EP notación.)

Si alguna vez has visto una charla en el Kauffman soporte (o el polinomio de Jones) que he visto estos tres axiomas, y que sobre todo tenemos que decirle a Haskell para llegar a calcular Kauffman soportes! Así que, obviamente, hay algo muy atractivo para los matemáticos pasando aquí.

Para los curiosos, algunas características específicas de Haskell (que son comunes entre estáticamente tipado de los lenguajes funcionales) que permiten a este estilo de programación son:

  • evaluación diferida;
  • tipo de polimorfismo;
  • el tratamiento de funciones como valores de primera clase; y
  • una buena algebraicas sistema de tipo de datos.

35voto

thedeeno Puntos 12553

Mi respuesta es: TikZ

Este es un lenguaje de programación, utilizado a menudo en combinación con De látex, para la producción de gráficos de alta calidad.

Considero que este idioma tan importante para los matemáticos, no se porque los matemáticos se utilizan para resolver sus problemas matemáticos, pero más bien, debido a que los matemáticos se utilizan para comunicar sus las ideas matemáticas a los demás. Creo que casi todos los matemáticas papel tendría el beneficio de tener más y mejor ilustraciones gráficas, y TikZ salida de frecuencia es excelente para esto.

Estas son algunas de las cifras que he programado en TikZ para algunos de mi reciente trabajo, incluyendo los trabajos de investigación y exposición de trabajo. Yo sólo soy un principiante, y estoy seguro de que hay otros usuarios en MathOverflow que son realmente expertos. Por ejemplo, Joseph O'Rourke es un maestro de la presentación gráfica, y mi impresión es que muchas de sus figuras puede haber sido creado con TikZ. Yo esperaría que él puede proporcionar algunos ejemplos inspiradores.

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X