Saltar al contenido

Filosofía Mathematica vs.MATLAB

Solución:

Bueno, aquí está mi respuesta a una pregunta similar de hace un tiempo:

Estoy buscando respuestas completas y bastante largas a estas preguntas.

  1. Cuál es la diferencia entre Mathematica y MATLAB?

Varias letras en los nombres.

  1. ¿Puede MATLAB hacer lo que Mathematica lo hace y viceversa?

Si. Ambos son Turing completos. Sin embargo, buena suerte escribiendo un trabajo simbólico pesado en MATLAB.

  1. ¿Cuáles son los pros y los contras de cada uno de ellos?

Muchos profesionales aquí en este sitio, algunos usuarios han pasado tiempo en prisión. No tengo idea de: experiencia en Matlab o criminalidad.

  1. ¿Quiénes son los usuarios adecuados de cada herramienta?

Los que toman sus propias decisiones en función de la experiencia con los dos frente a la realización de encuestas.

  1. ¿Beneficiará a alguien si los conoce a ambos?

Claro, pueden responder preguntas comparativas.

  1. ¿Cuáles son las capacidades de Mathematica que lo hace único?

Stephen Wolfram. ‘Nuf dijo. Y si no estás de acuerdo, te enviará un paquete de autómatas celulares salvajes para … “evolucionar” tu opinión.

  1. Poder Mathematica ¿Desempeñar el papel de una calculadora científica avanzada fácil de usar para un ingeniero que la mayor parte del tiempo se ocupa de cálculos multivariables y ecuaciones diferenciales parciales (electromagnetismo)?

Si.

Con toda seriedad, uso (diariamente) Mathematica y MATLAB, y semanalmente Maple, NumPy, SageMath y PARI / GP.

Todos son capaces de hacer lo que hacen los demás, con diversos grados de esfuerzo y / o autoflagelación según la tarea que tengan entre manos.

Creo que una gran parte del tribalismo re: Mathematica / MATLAB es simplemente un caso de transferencia de conocimientos: al profesor de ingeniería se le enseñó y usó MATLAB, así que al diablo con los torpedos, eso es lo que exigirán. Tiene sentido: la herramienta hace lo que necesitan y no es necesario repararla si no está rota.

En gran parte de lo que hago, las capacidades simbólicas de Mathematica junto con sus capacidades de probabilidad integrales hacen que mis tareas sean mucho, mucho más fáciles que intentar hacer lo mismo con las otras herramientas.

Si me viera obligado a elegir una y solo una de mis herramientas en la caja de herramientas matemáticas, sería Mathematica, simplemente porque puedo hacer en ella cualquier cosa que puedan hacer mis otras herramientas, y puedo hacer fácilmente en ella cosas que las otras herramientas son intrínsecamente incapaz de hacer y / o exigirme que escriba mi propio CAS simbólico.

En mi isla desierta, Mathematica es mi Wilson …

Ingrese la descripción de la imagen aquí

Acabo de comprar ambos para uso personal y me estoy acostumbrando a ambos. Antes de eso, tuve varias experiencias en otros paradigmas, incluyendo Lisp, Prolog, lenguajes tipo Algol, un poco de Fortran, C, etc. Me gustan las dos M por sus gráficos incorporados.

MATLAB

Para mí, diría que, una vez que se acostumbre a la sintaxis de MATLAB, todo es bastante sencillo.

Mathematica

Porque Mathematica es un sustitución de patrones lenguaje (y por lo tanto inusual), es muy fácil perder de vista lo que está sucediendo detrás de escena. El orden de la evaluación es fundamental y puede hacerle tropezar. Todavía no he descubierto una lista definitiva de operadores y su precedencia; sin embargo, conocer la precedencia es vital. Hay muchos operadores que se pueden escribir en diferentes formas (prefijo, sufijo e infijo) con diferentes símbolos y no están bien documentados a menos que ya sepa qué buscar.

Debido a la forma en que funciona Mathematica, las variables locales deben pensarse con mucho cuidado y existen estructuras especiales para este propósito. Por defecto, todas las variables son globales.

Si usted es alguien que quiere conocer los detalles de un idioma, hay un fondo marino debajo del cual no puede penetrar en la documentación a menos que conozca a las personas adecuadas.

Puede usar Mathematica para simular prácticamente cualquier otro paradigma sin mucho trabajo, pero entonces, ¿por qué no usar un lenguaje diseñado específicamente?

Por ejemplo, es posible programarlo de manera procedimental, pero tenga cuidado con el alcance de las variables (y si permanecen o no como símbolos durante gran parte del proceso o se evalúan temprano). A veces, simplemente no puede detener la evaluación temprana a pesar de las funciones que supuestamente lo hacen.


Conclusión

A pesar de todo esto (y más) me gusta Mathematica (y es absolutamente increíble base de conocimientos) y es consistente la mayor parte del tiempo. Sin embargo, si solo tiene un trabajo de programación que hacer y MATLAB encaja, entonces obtendría MATLAB y me pondría a trabajar.

También hay una cuestión de velocidad de ejecución. No he realizado ninguna medición por {razones}, pero Mathematica puede ser bastante lento (y de manera inconsistente) a menos que las funciones que está utilizando estén integradas y hayan sido optimizadas.

Podría seguir, pero los he tenido poco tiempo, así que de ninguna manera soy un experto.

La principal diferencia entre Mathematica y MATLAB tiene que ver con la naturaleza primaria de su respectivo lenguaje de programación:

  • Mathematica es un (principalmente basado en reglas) lenguaje de reescritura de términos nace para el análisis simbólico que ha desarrollado un conjunto muy extenso de procedimientos específicos, incluso en sus funcionalidades centrales.

  • MATLAB es un lenguaje procedimental con un conjunto muy limitado (esto es una ventaja) de comandos básicos y nació para el análisis numérico.

Puede hacer que uno haga lo que hace el otro, pero es posible que tenga que pasar por el aro para hacerlo tan eficientemente como el competidor en lo que respecta a sus puntos fuertes relativos. Por lo tanto, la manipulación simbólica puede volverse engorrosa en MATLAB, mientras que la resolución numérica de los PDE puede ser más lenta y consumir mucha más memoria en Mathematica.

EDITAR para desarrollar la diferencia:

La reescritura de términos de Mathematica es extremadamente poderosa, pero es más recursiva que procedimental y, como tal, tiende a consumir mucha memoria para llevarla a cabo. El estilo de procedimiento de MATLAB es más sencillo y funciona actualizando las estructuras de matriz preinicializadas.
En cierto modo, es como si Mathematica hiciera todos sus cálculos en su cabeza y escupe el resultado al final, mientras que MATLAB hace sus cálculos paso a paso con lápiz y borrador en una hoja de papel, actualizando resultados parciales sobre la marcha.

Además, el conjunto básico limitado de comandos de MATLAB permite que los programas (de procedimiento) se examinen con solo un conocimiento básico de un puñado de declaraciones y también los hace fácilmente traducibles a otros lenguajes de procedimiento.
Mathematica, por otro lado, tiende a ocultar los detalles de implementación bajo el capó, en una ráfaga de procedimientos y métodos específicos (seleccionables por opciones) que pueden cambiar de una versión a otra. La magia que realiza Mathematica no se puede traducir fácilmente a otros idiomas. Esto es tanto una ventaja (puede hacer cosas en cinco minutos que otros idiomas requerirían días de codificación) como una desventaja (si está leyendo o revisando un artículo con procedimientos escritos en Mathematica, más aún si tiene una versión o ninguna versión).

[Unsolicited opinion] Creo que ambos programas han evolucionado tanto que ahora son el equivalente científico de un reinicio de Hollywood cuyos efectos especiales no cuestan nada durante la producción.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *