Lo que sea que sea útil.
Mathematica obviamente está dirigido a matemáticos y hace muchas cosas buenas bastante bien.
Matlab es útil, pero su principal punto de venta es el soporte de todas sus cajas de herramientas. La caja de herramientas simbólicas en particular lo pone más al día para las necesidades de un matemático de hacer cosas simbólicas y más abstractas, pero no representa una amenaza para Mathematica en ese frente. De lo contrario, hace cosas numéricas de manera bastante robusta, pero sin el control de nivel inferior que le gustaría en otros marcos (¿quiere ir a la aritmética de precisión cuádruple? Lo sentimos, eso no está incorporado; necesitará comprar un paquete de otra persona. ¿Desea una precisión arbitraria con la caja de herramientas simbólica? Puede tener eso, pero ¿tiene tiempo para ejecutar algo sustancial de esa manera?).
- ¿Por qué P no es igual a NP es tan difícil de probar?
- ¿Por qué la investigación sobre el problema P vs NP no está más financiada?
- Cómo resolver sumas consecutivas de UVa 12355
- ¿Cuáles son algunas aplicaciones comunes para un multiplexor?
- Cómo resolver [matemáticas] (n + k) ^ j = \ Theta (n ^ j) [/ matemáticas] para k, j en números reales y j> 0
GAP es un lenguaje para la teoría de grupos. No puedo hablar mucho al respecto, ya que solo lo usé para identificar un grupo finito basado en algunos elementos generadores, pero tiene un propósito importante.
Maple está diseñado para usar la notación matemática tradicional y proporciona herramientas para cálculos numéricos y simbólicos.
MAGMA está desarrollado para álgebra computacional en grupos, anillos, campos y más.
Python ha visto un aumento en la popularidad en los últimos años, por una serie de buenas razones, incluido el soporte y la extensibilidad de la biblioteca.
Julia es más nueva y apunta al mismo mercado que Python para la informática científica / numérica. No puedo decir qué lo distingue especialmente, aparte de centrarse más en un mercado en particular.
Fortran sigue siendo un lugar para realizar cálculos numéricos rápidos. ¿Haciendo magnetohidrodinámica en dominios divertidos? ¡Familiarícese con un marco para la programación concurrente (OpenMP, por ejemplo), y empiece a trabajar! ¿Integrando EDO para aproximar soluciones a algún sistema? ¡Ni siquiera (necesariamente) necesitas concurrencia!
Los lenguajes familiares C tienen su lugar en aras de un gran control de bajo nivel, pero puede ser más difícil simplemente hacer y programar / programar matemáticas. ¡Hay una razón por la cual la gente ha inventado todos los idiomas y el software anterior!
Haskell y lenguajes funcionales similares / relacionados le permiten escribir código que se parece más a las matemáticas, pero requiere un gran cambio de mentalidad de todos los idiomas anteriores. Su naturaleza los hace adecuados para definir estructuras matemáticas abstractas de maneras bastante agradables, y variantes como Agda son específicamente útiles para la verificación de teoremas.
Otros idiomas que no he mencionado tal vez tengan sus propios pros y contras para hacer cosas matemáticas, pero no son tan comunes que se les ocurrieron de inmediato, o si lo hicieran, no sabría cómo se distinguen en la forma en que los matemáticos podría encontrar útil o interesante.
OK, Lisp, como un lenguaje funcional temprano, hace algunas cosas geniales, tiene un poderoso sistema macro y no distingue entre datos y código ejecutable de una manera matemáticamente interesante, pero no estoy seguro de que sea un excelente lugar para programar conceptos matemáticos (al menos, no necesariamente mejor que cualquier otro idioma).