# Matlab vs. Mathematica vs. Maple

## MATLAB

**MATLAB** (an abbreviation of “**MAT**rix **LAB**oratory”) is a proprietary multi-paradigm programming language and numeric computing environment. MATLAB allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other languages.

MATLAB includes a main package with hundreds of internal functions and more than thirty tool packages. The toolboxes can be divided into **functional toolboxes** and **discipline-specific toolboxes**. The functional toolboxes are used to expand MATLAB’s symbolic calculation, visual modeling and simulation, word processing, and real-time control functions. Discipline-specific toolboxes are relatively professional toolboxes, including Control System Toolbox, Signal Processing Toolbox, Financial Toolbox, etc.

MATLAB takes the matrix as the basic data unit. It has features such as program flow control, functions, data structure, input/output, and object-oriented programming. With MATLAB, you can easily and quickly establish simple and fast programs, as well as complex programs. The graphics processing system enables MATLAB to conveniently display vectors and matrices graphically, and to add annotations and print easily. It includes powerful 2D and 3D graphics functions, image processing, and animation display functions. It integrates many powerful functions such as numerical analysis, matrix calculation, scientific data visualization, and modeling and simulation of nonlinear dynamic systems in an easy-to-use window environment, which largely gets rid of the traditional non-interactive programming mode.

### Advantages

- It has significant advantages in linear algebra and numerical calculations;
- Its vectorization operations are often faster than similar software;
- It possesses a multitude of toolboxes (simulation, image processing, signal processing, finance, statistics, optimization…);
- The programming language is relatively easy to learn, and the editing and debugging environment is good;
- It’s easy to build GUI.

### Disadvantages

- It doesn’t natively support symbolic calculations (symbol calculations are far more than derivation formulas). The new version of the symbolic kernel is not bad, but there is still a gap between Mathematica and Maple in terms of depth, breadth, and speed;
- Its recursion is particularly slow, slower than Mathematica, Maple, and common scripting languages;
- It’s relatively weak in some fields of mathematics, such as number theory, graph theory, discrete mathematics, etc.;
- Collaboration between toolboxes is not very good;
- The default drawing is not beautiful, jagged, and the system function naming is not well-defined.

## Mathematica

Mathematica is a software system with built-in libraries for several areas of technical computing that allow machine learning, statistics, symbolic computation, manipulating matrices, plotting functions and various types of data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other programming languages.

Mathematica can do many numerical calculations and symbolic calculations, including but not limited to: doing numerical calculations with any degree of accuracy, doing various calculations of rational formulas, finding exact solutions of rational formulas and transcendental equations, doing various operations on vectors and matrices of general expressions, finding the limit, derivative integral and power series expansion of general expressions, solving differential equations, etc.

### Advantages

- The symbolic calculation is very powerful, and the solvable equation types are the widest;
- It’s a very powerful and flexible language, and normally it can complete the same work with the least amount of code compared with similar languages;
- The language is highly unified and supports a lot of programming paradigms, procedural, functional, meta-programming, logic programming, rule-based…
- The loop is slow, you can use Compile to speed up, or use Map, Table, Nest, etc. instead of loops;
- Many built-in functions have AAS mechanism (Automatic Algorithm Selection);
- It’s good at high-precision and large number calculations, graphics functions are very rich, the default drawing is better than MATLAB and Maple;
- Beautiful interface, and easy to enter formulas;
- The help documentation is very friendly.

### Disadvantages

- The price is higher and more expensive than MATLAB (the price of MATLAB depends on which toolbox you want);
- The vectorization operation is slightly slower than MATLAB, and sometimes more memory consuming than MATLAB;
- Code debugging is not very convenient, but it can be improved with Wolfram Workbench;
- The programming language learning curve is steep (The syntax of Mathematica is quite different from common procedural programming languages).

## Maple

Maple is a symbolic and numeric computing environment as well as a multi-paradigm programming language. It covers several areas of technical computing, such as symbolic mathematics, numerical analysis, data processing, visualization, and others. A toolbox, MapleSim, adds functionality for multidomain physical modeling and code generation. Maple’s capacity for symbolic computing includes those of a general-purpose computer algebra system. For instance, it can manipulate mathematical expressions and find symbolic solutions to certain problems, such as those arising from ordinary and partial differential equations.

Maple not only provides programming tools, but more importantly, provides mathematical knowledge. Maple is an indispensable scientific calculation tool for professors, researchers, scientists, engineers, and students. From simple numerical calculations to highly complex nonlinear problems, Maple can help you solve problems quickly and efficiently. Through Maple products, users can complete multi-domain physical system modeling and simulation, symbolic calculation, numerical calculation, program design, technical documents, report presentation, algorithm development, external program connection, and other functions in a single environment to meet the needs of users at all levels.

### Advantages

- Its symbolic calculation is very powerful and has its own advantages compared with Mathematica;
- Many polynomial operations are faster than Mathematica;
- For some symbolic integrals, Maple also has speed advantages (especially indefinite integrals), but sometimes the returned results are not more rigorous and robust than those given by Mathematica. There are not as many integral types as Mathematica.
- Maple’s “adaptability” is better, and some problems Mathematica needs certain preprocessing to calculate faster and get satisfactory results;
- Maple is better at (partial) differential equations (in fact, both Maple and Mathematica can solve some special differential equations that the other cannot solve).
- Some problems can be solved with steps, while Mathematica requires a third-party package or with the help of Wolfram Alpha;
- Quick to get started, some common operations can be done through the right-click menu without commands.

### Disadvantages

- The interface is a bit stuck (based on Java swing), and the classic interface is smooth but very ugly;
- Simplification ability, inequality solving, logic system are inferior to Mathematica;
- Numerical calculations are generally worse than MATLAB and Mathematica;
- High precision and large number calculations are stronger than MATLAB and weaker than Mathematica;
- It has some weaknesses in statistics.

## Which to pick?

If you require calculation accuracy, symbolic calculation, and programming, it is best to use Maple and Mathematica at the same time. They have their own characteristics in symbol processing. Mathematica can handle some quite special problems that Maple can’t handle, such as certain integrals, seeking limits, etc.

If matrix or graphics processing is required, then MATLAB is the best. Its matrix calculation and graphics processing are its strengths. At the same time, it can be very convenient to use the NoteBook of MATLAB and the editing function of Word to process scientific articles.

**Symbolic Calculation**: Integral and simplification are the strengths of Mathematica. For some integrals, Mathematica can integrate them directly, while Maple needs to use permutation integration. Maple is stronger to find the analytical solutions of differential equations. There are many analytical solutions of differential equations that Maple can calculate, but Mathematica cannot. In addition, Maple is also stronger to solve the integral equations. The intsolve function is built into Maple, so the analytical solution can be calculated.

As a worker of computational mechanics, it is enough to master three computational languages, Mathematica used for the research of analytical methods and mathematical models, MATLAB used to implement numerical algorithms (of course you can still use Mathematica), Fortran used to write executable source code.

To be further optimized ……

## Reference

- Wikipedia and Web
- https://www.sohu.com/a/118679976_500638