There are four major mathematical software programs that are well-known and popular in the fields of science and engineering: MATLAB, MathCAD, Maple, and Mathematica.
Each has its own characteristics depending on different fields or target directions.
MATLAB System
MATLAB originally stands for Matrix Laboratory. It was developed in the 1970s to provide an interface for the Linpack and Eispack software packages, written in C language. The DOS version 3.0 emerged in the 1980s and gradually became a tool for scientific computing, interactive visualization systems, and programming language. MATLAB can run on several operating platforms, commonly including Windows 9X/NT, OS/2, Macintosh, Sun, Unix, and Linux.
MATLAB programs mainly consist of a main program and various toolboxes. The main program includes hundreds of internal core functions, while the toolboxes cover complex system simulation, signal processing, system identification, optimization, neural networks, control systems, μ-analysis and synthesis, spline, symbolic mathematics, image processing, statistics, and more. Additionally, version 5.x includes a set of dozens of PDF files that provide detailed introductions from MATLAB usage to other specialized applications.
MATLAB is a pioneer in numerical computation, using matrices as the basic data unit. It has become the preferred tool for applying linear algebra, mathematical statistics, automatic control, digital signal processing, and dynamic system simulation. It is also a powerful tool for researchers, college students, and graduate students in scientific research. MATLAB is convenient for input, allowing the use of its internal Editor or any text processor, and it can also integrate with Word 6.0/7.0, enabling direct calls to most of MATLAB’s functionalities within Word, granting it special computational capabilities.
Advantages:
-
Significant advantages in linear algebra and numerical computation,
-
Vectorized operations are often faster than similar software,
-
Has numerous toolboxes for simulation, image processing, signal processing, finance, statistics, optimization, etc.
-
The programming language is relatively easy to learn, with a good editing and debugging environment.
-
Convenient for building GUIs.
Disadvantages:
-
Does not natively support symbolic computation (symbolic computation is far more than just deriving formulas). The new mupad kernel is decent, but there is a significant gap compared to Mathematica and Maple in terms of depth, breadth, and speed.
-
Recursion is particularly slow, slower than Mathematica, Maple, and common scripting languages.
-
Relatively weak in some mathematical areas, such as number theory, graph theory, and discrete mathematics.
-
High precision and large number calculations are comparatively slow (e.g., accurately calculating the factorial of 1 million or the first 5 million digits of π).
-
The collaboration capability between toolboxes is not very good.
-
The interface is not very appealing (the new R2013a Ribbon interface is nice).
-
Default plots are not aesthetically pleasing, with jagged edges, and system function naming is not standardized enough.
MathCAD System
MathCAD is an interactive mathematical system software launched by Mathsoft in the USA. From the early DOS version 1.0 and Windows version 4.0 to the current version 8.0, its functionality has evolved from simple numerical calculations to utilizing Maple’s powerful symbolic computation capabilities, resulting in a qualitative leap.
MathCAD integrates text editing, mathematical computation, program editing, and simulation into one software. MathCAD 7.0 Professional runs under Win9X/NT, and its main feature is that its input format is very similar to the mathematical writing format people are accustomed to, using a WYSIWYG (What You See Is What You Get) interface, making it particularly suitable for users who do not need to perform complex programming or require special calculations. MathCAD 7.0 Professional also comes with a program editor, which can be used for shorter programs or when computation speed requirements are lower. The advantage of this program editor is its particularly simple syntax.
MathCAD can be seen as a powerful calculator without complex rules; it can also work well with word processing software like Word, Lotus, and WPS2000, serving as an excellent full-screen mathematical formula editor.
MathCAD is an interactive mathematical system software launched by Mathsoft in the USA. From the early DOS version 1.0 and Windows version 4.0 to the current version 8.0, its functionality has evolved from simple numerical calculations to utilizing Maple’s powerful symbolic computation capabilities, resulting in a qualitative leap.
Maple V System
Maple V is a mathematical system software developed by the University of Waterloo. It not only has precise numerical processing capabilities but also unparalleled symbolic computation capabilities. The symbolic computation ability of Maple V is the core of symbolic processing in software like MathCAD and MATLAB. Maple offers over 2000 mathematical functions, covering ordinary mathematics, advanced mathematics, linear algebra, number theory, discrete mathematics, and graphics. It also provides a built-in programming language that allows users to develop their own applications, and the more than 2000 functions in Maple are primarily developed using this language.
Maple uses a character line input method, and input must follow a specific format. Although it differs from the common mathematical format, it is flexible and easy to understand. Output can be selected in character or graphical form, and the resulting graphics can be easily pasted into Windows applications.
It is a five-star mathematical software, a giant in pure mathematics. If you want to do mathematics and applied mathematics (excluding numerical aspects), it is the best choice. However, this software’s secondary development capabilities are poor, focusing solely on mathematical development without extending into other fields. The language that Maple comes with is relatively easy to understand, similar to speaking in English.
Advantages:
-
Symbolic computation is very powerful, with strengths compared to Mathematica.
-
Many polynomial operations are faster than those in Mathematica.
-
Maple also has speed advantages in some symbolic integrations (especially indefinite integrals), though sometimes the results returned are not as rigorous and robust as those given by Mathematica, and it can handle fewer types of integrals than Mathematica.
-
Maple’s adaptability is better; some problems that Mathematica requires preprocessing to solve faster can yield satisfactory results in Maple.
-
Maple is better at (partial) differential equations (in fact, both Maple and Mathematica can solve some special differential equations that the other cannot).
-
Can solve some problems step-by-step, while Mathematica requires third-party packages or the use of WolframAlpha.
-
Easy to get started, with some common operations completed without commands via the right-click menu.
Disadvantages:
-
The interface can be a bit sluggish (based on Java Swing), while the classic interface is smooth but outdated.
-
The included algebra packages are quite rich.
-
Its simplification ability, inequality solving, and logical systems are somewhat inferior to Mathematica.
-
Overall numerical computation is somewhat worse than MATLAB and Mathematica.
-
High precision and large number calculations are stronger than MATLAB but weaker than Mathematica.
-
Some weaknesses in statistics.
Mathematica System
Mathematica is a mathematical system software developed by Wolfram Research, led by American physicist Stephen Wolfram. It has powerful numerical and symbolic computation capabilities, similar to Maple, but its symbolic computation is not based on Maple; it is developed independently.
The basic system of Mathematica is mainly developed in C language, making it relatively easy to port to various platforms. Mathematica is an interactive computing system where calculations are performed through the exchange of information and data between the user and Mathematica. The commands accepted by the Mathematica system are referred to as expressions. After the system receives an expression, it processes it and returns the computation results. Mathematica has strict requirements for input format; users must input according to the specified mathematical format for the system to process correctly. However, since version 3.0 introduced an input panel and allows modification and reorganization of the input panel, the cumbersome method of constantly switching between upper and lower case characters for input commands in previous versions has been greatly improved. Version 3.0 can save files and clipboard content in various formats, including RTF, HTML, BMP, etc.
Mathematica’s symbolic functionality is the strongest, and its architecture is also the most optimal. Its architecture consists of a core system and a frontend system, which cooperate and operate independently, making it more rational than MATLAB’s architecture. Mathematica is developed specifically for researchers. In horizontal comparisons, Mathematica’s symbolic capabilities are much stronger than Maple’s; Maple is primarily developed for high school and college students, not suitable for physical and technical science applications, while Mathematica is the best tool for physics research, and MATLAB is the best tool for numerical solutions in technical sciences.
Four-star “mathematical” software, the quotation marks around the word mathematics indicate that it has transcended pure mathematics, primarily reflected in its continuously developed toolkits aimed at different disciplines. In terms of mathematics and applied mathematics capabilities, Mathematica is not as strong as Maple (this does not mean it cannot do it; if you do not mind programming, it can be done, but fundamentally programming basic tasks makes it no different from languages like Fortran). Another issue is that Mathematica’s kernel is not as stable as Maple’s (the computation speed is slower than Maple’s; I mean pure computation time, not input command time; the current Java interface of Maple is quite poor, giving the impression that Maple is slow, but this is not the case). The attraction of Mathematica lies in its ability to perform symbolic calculations compared to other numerical software, and it has better secondary development capabilities and better toolkits than Maple. Additionally, its built-in language is object-oriented, very powerful, and flexible.
Advantages:
-
Very strong symbolic computation, with the widest range of solvable equation types.
-
A very powerful and flexible language; to accomplish the same task, the amount of code is often less than in similar languages.
-
The language is highly unified, supporting many programming paradigms: procedural, functional, metaprogramming, logical programming, rule-based…
-
Loops are relatively slow but can be accelerated using Compile or by replacing loops with Map, Table, Nest, etc.
-
Many built-in functions have AAS mechanisms (Automatic Algorithm Selection).
-
Good at high precision and large number calculations; graphical function capabilities are rich, and default plots are more visually appealing than those from MATLAB and Maple.
-
The interface is attractive, and inputting formulas is very convenient.
-
The help documentation is very user-friendly.
Disadvantages:
-
High price, more expensive than MATLAB (the price of MATLAB depends on which toolboxes you need).
-
Vectorized operations are slightly slower than MATLAB, and sometimes more memory-intensive.
-
Code debugging is not very convenient, but can be improved using Wolfram Workbench (an IDE based on Eclipse).
-
The programming language has a steep learning curve, excluding those familiar with functional languages like Scheme, Haskell, or those using it as a high-level calculator.
-
(The syntax of Mathematica is quite different from common procedural programming languages; although it can also be used as a procedural language, the code’s speed and elegance suffer significantly.)
Comparison of the Four Software
Which mathematical software to choose? If only general calculations or daily use by ordinary users are required, MathCAD is the first choice. Its capabilities in advanced mathematics are sufficient for the needs of general customers, and its input interface is particularly user-friendly.
If precision in calculations, symbolic computation, and programming are required, it is best to use both Maple and Mathematica, as they each have unique strengths in symbolic processing. Some problems that Maple cannot handle, Mathematica can, such as certain integrals and limits, which are relatively special. If matrix or graphical processing is required, then MATLAB should be chosen, as its matrix computation and graphical processing are its strengths. Additionally, using MATLAB’s Notebook function combined with the editing features of Word 6.0/7.0 allows for easy handling of scientific documents.
If only general calculations or daily use by ordinary users are required, MathCAD is the first choice. Its capabilities in advanced mathematics are sufficient for the needs of general customers, and its input interface is particularly user-friendly. If precision in calculations, symbolic computation, and programming are required, it is best to use both Maple and Mathematica, as they each have unique strengths in symbolic processing. Some problems that Maple cannot handle, Mathematica can, such as certain integrals and limits, which are relatively special. If matrix or graphical processing is required, then MATLAB should be chosen, as its matrix computation and graphical processing are its strengths. Additionally, using MATLAB’s Notebook function combined with the editing features of Word allows for easy editing of scientific documents.