¿Cuál es la diferencia entre Sage Math, GNU Octave, MATLAB, matplotlib, Maple y mathHandbook?

Esta es una pregunta larga para responder, y dejaré que otros la completen con algún detalle, pero en aras de comenzar las cosas, daré un breve resumen de lo que son. Hay formas de usar estos idiomas fuera de lo que estoy escribiendo, pero estos son los usos principales. Al final, no creo que haya un lenguaje “perfecto”, o un súper lenguaje de talla única, realmente depende de su aplicación específica, y escribí esta revisión para reflejar eso.

Descargo de responsabilidad: Yo personalmente uso o he usado Matlab / Octave, Python, Fortran y Sage. Todo lo demás se basa en wikipedia y evidencia anecdótica de amigos. Siéntase libre de estar en desacuerdo, tengo curiosidad!

Vamos a dividir aún más las cosas en 2 categorías:

1 – Computación numérica: son paquetes para realizar trabajo numérico, es decir, tareas que producirán resultados que son un número. Buenos ejemplos son integrales de evaluación numérica, un solucionador de Euler para un EDO, esquemas de diferenciación finita, etc. etc. etc.

Matlab / Octave: la mejor manera de pensar en Matlab / Octave es pensar en ellos como entornos informáticos numéricos. Ambos son esencialmente lenguajes informáticos de muy alto nivel con una variedad de herramientas numéricas integradas. Por ejemplo, en lugar de tener que escribir su propio código o usar un paquete externo para hacer álgebra matricial, puede usar los comandos internos. Esto permite un desarrollo de código extremadamente rápido, pero sus scripts pueden ejecutarse más lentamente, ya que los compiladores son “justo a tiempo” y nunca se compila ningún código. ¡Sin embargo, esto los hace realmente fáciles de depurar! Matlab es un software propietario que puede comprar en Mathworks, Octave es de código abierto. Por experiencia personal, creo que Matlab funciona más rápido, pero nunca he hecho ninguna prueba rigurosa.

Python y sus paquetes: Python es un lenguaje dinámico, orientado a objetos y de alto nivel. Puede usar Python para muchas cosas diferentes, y se usa ampliamente en muchas aplicaciones diferentes. A los fines de la computación numérica, hay una serie de paquetes que probablemente tendrá que usar, resumiré brevemente los más útiles aquí:
Numpy: tareas numéricas básicas, por ejemplo, FFT, nd matrices y matrices.
Matplotlib – Funciones gráficas tipo Matlab
Scipy: más paquetes numéricos, matrices dispersas, solucionadores de EDO, etc.
Pylab: un conglomerado de Numpy, Matlplotlib y Scipy, con Matlab como enlaces. Un buen lugar para comenzar, pero sin algunas de las características de importar todos los paquetes usted mismo.
Usar Python con estos paquetes proporciona una opción tan sólida como usar el otro software en mi humilde opinión.

Lenguajes compilados: aunque los lenguajes interpretados como Matlab y Python son buenos para el desarrollo de código, y se usan con frecuencia para el análisis de datos de todo tipo, para conjuntos de datos realmente grandes o para proyectos de modelado grandes, es posible que deba usar un lenguaje compilado como FORTRAN o C en su lugar. La razón es que, dado que estos lenguajes se ejecutarán mucho más rápido ya que el compilador no tiene que preocuparse por ordenar el código, ya está compilado. La elección de un idioma en particular realmente depende de la aplicación. En el mundo del modelado climático, Fortran90 es el lenguaje elegido para muchas aplicaciones de modelado. En el mundo de la física de partículas es C ++ / Root. La elección depende realmente de lo que otras personas estén usando (ya que casi siempre estará trabajando con otras personas / usando un código anterior) y qué paquetes están disponibles.

2 – Sistemas de álgebra computacional (CAS): son paquetes para realizar operaciones simbólicas, es decir, tareas que producirán una respuesta simbólica. Un ejemplo incluye computar integrales analíticas o tomar expansiones en serie.

Mathematica / Maple: lenguajes de programación simbólica interpretados dinámicamente. Mathematica / Maple son ambos propietarios. En mi opinión, son bastante similares, pero tampoco soy realmente un usuario. Ambos han publicado looooooooonnnnngggg listas de por qué son mejores que el otro. Una comparación más objetiva está disponible desde aquí: Maple vs Mathematica

Sage: una alternativa de código abierto basada en Python a Mathematic / Maple. Utiliza muchos de los paquetes de python mencionados anteriormente, así como un paquete llamado sympy. Lo recomiendo sinceramente si no ha usado un CAS antes y no está seguro de si es lo que quiere usar o no, intente Iniciar sesión – ¡Sage para usarlo en línea! Lo uso como mi CAS, pero realmente no uso un CAS con tanta frecuencia, por lo que otros pueden tener una opinión diferente.

TLDR; decide si quieres números o un CAS. Luego decida si necesita compilar o interpretar. Luego, decida si desea código abierto o propietario. El resto depende de su aplicación y solo de las preferencias personales generales.

Una de las diferencias es gratis versus comercial. El arce y el matlab son comerciales, pero otros son gratuitos.

El arce es bueno en el cálculo simbólico, matlab es bueno en el cálculo numérico, matplotlib es bueno en la trama, mathHandbook.com es gratuito, tiene características únicas, por ejemplo, calcular cálculo fraccional, resolver ecuaciones diferenciales fraccionarias y probar la solución con un clic.

ingrese su fórmula en el sitio web mathHandbook.com, haga clic en el botón d / dx para derivada, luego haga clic en el botón “semi d / dx” para calcular la derivada de orden 0.5, luego haga clic en el botón “semiintegrar” para la semi-integral. por ejemplo, derivada de 0,5 orden de sin (x) =?

la derivada de 0.5 orden de sin (x) se denota por sin (0.5, x). se puede calcular y trazar en http://www.mathHandbook.com

manual de referencia de matemáticas en

mathHandbook.com