ULR - Unlimited Learning Resources
HOME PRODUCTS ORDER ABOUT US
WHAT'S NEW

What Is Mathematica?

Key Elements of Mathematica

Quick Tour

What's New in Mathematica 5?

Key Technologies

Deployment

Users and Uses

Reviews

Platform Availability

Pricing

Q&A

 

Mathematica Questions and Answers

Why Choose Mathematica?
Technical computing systems rank among the most complex off-the-shelf software available today. Given this, it's hardly surprising that comparing capabilities of different products can be a daunting prospect. Even if you select a system that satisfies today's needs, will it meet the demands of tomorrow? This Q&A is designed to help you pick through a few of the key issues that make Mathematica so exceptional.

  • Is there a fundamental difference between Mathematica and other computation systems?
  • What does this "fully integrated technical computing system" design approach mean for my day-to-day work?
  • Why should I consider a system as comprehensive as Mathematica when I have only a small range of tasks to do?
  • Are Mathematica's numerical answers fast? I thought dedicated systems were faster.
  • What is this mixed numeric-symbolic approach that Mathematica uses?
  • Does this mean that Mathematica performs numeric calculations differently than other systems do?
  • How can I be assured that Mathematica's answers are accurate?
  • What is Mathematica's programming language like?
  • How do I learn Mathematica? How widespread is the use of Mathematica?
  • Can Mathematica work with XML?

  • In what ways can Mathematica interact with the web?
  • Is all the code in Mathematica created by Wolfram Research?

  •  

    Q: Is there a fundamental difference between Mathematica and other computation systems?
    Yes, there definitely is. Most computation systems have been designed to operate purely numerically, some adding capabilities from "algebra systems" they link to. These so-called "algebra systems" work primarily with algebraic calculations and offer limited numerical capabilities. By contrast, Mathematica was designed from the outset as a fully integrated technical computing system, combining all of the key aspects for technical work — numerical, symbolic, and graphical computations as well as a programming language and a technical document system. Its innovative symbolic structure integrates these wide-ranging aspects coherently.

    Q: What does this "fully integrated technical computing system" design approach mean for my day-to-day work?
    First, the approach makes the system quicker to learn since knowing a few simple rules provides an understanding of how a large number of functions operate. Rather than learn the operation of each function individually, you have to learn only a few simple rules in order to predict many details of how other functions will operate.
    Second, outputs from calculations are structured correctly to be used immediately as input for other calculations — even when the latter calculations are of a very different nature.

    Third, you can be confident that work you do today will continue to be compatible with future versions of Mathematica; careful design makes later design changes unnecessary even when features or underlying algorithms are improved.

    It takes time to appreciate the value of Mathematica's meticulous design, but the more heavily you rely on your technical computing system, the more crucial good design becomes. Wolfram Research is unique in ascribing this level of importance to design.


    Q: Why should I consider a system as comprehensive as Mathematica when I have only a small range of tasks to do?
    If your work involves just one well-defined task that fits precisely into one of the traditional categories of software (e.g., numerics, algebra, graphics) and will never change, you might find it acceptable to use a specialized product — but this situation is very rare! Usually you'll want other capabilities too — if not immediately, then after a little while. At some point your specialized system simply may not be capable of doing what you want it to do, giving you stark choices: abandon what you wanted to do with it or move to another system and invest more time and money. That's why so many people start with Mathematica — and why those who don't often end up switching to Mathematica later.

    In addition, there are other reasons to use Mathematica for specialized tasks. First, by providing an all-in-one environment, Mathematica allows standardization in technical computing tools across an organization. Second, Mathematica's mixed numeric-symbolic approach helps give you the right answers. For example, you might want to use only Mathematica's numerics, but internally Mathematica uses symbolic computation to optimize the numerical answers it gives you.

    Q: Are Mathematica's numerical answers fast? I thought dedicated systems were faster.
    Mathematica's answers are fast, and Mathematica 5 is highly competitive with dedicated numerical systems, outpacing them in key numerical calculations. Our giganumerics technology, developed as a result of Mathematica's mixed numeric-symbolic approach to computation, has been responsible for achieving great speed increases in numerical calculations for Version 5. Mathematica is now ideally suited as a numerically intensive production system.

    Q: What is this mixed numeric-symbolic approach that Mathematica uses?
    While most computation systems represent all calculations or information as numbers or arrays of numbers, Mathematica represents everything symbolically and also gives you the ability to move freely between symbolic and numeric computations.

    Symbolic computations provide a general solution to your problem for a wide range of cases rather than just at selected points. That means you can look at the form of your model, plot it, test it numerically, and continue to transform it symbolically without loss of accuracy. Additionally, some techniques are only applicable symbolically. For these reasons, you ideally want to maintain your solution in a symbolic form as far into a computation as possible.

    Keeping computations symbolic has traditionally meant doing them by hand, which is far less productive than doing numerical computations by computer. Mathematica's symbolic capability not only changes this but also greatly enhances the sophistication of symbolic calculations that can be done at all. This is achieved by combining the world's largest collection of mathematical knowledge with the ability to process far larger expressions more quickly than they can be processed by hand. Moreover, the ability to mix symbolic manipulation, programmed computation, and numerical substitutions seamlessly is more powerful than any of these individual abilities alone.


    Q: Does this mean that Mathematica performs numeric calculations differently than other systems do?
    Yes, Mathematica's numerics differs in several ways. First, Mathematica automatically chooses the best algorithm for your problem and applies it adaptively, and you don't need to be a numerics expert to get reliable results quickly even with the toughest of problems. Traditional numerics applications force users to manipulate input expressions by hand to get them into the restrictive forms that the applications require for further processing (e.g., the need to transform by hand a higher-order differential equation into a system of first-order equations before entering them into the application). Mathematica's numerics utilizes Mathematica's symbolic capabilities to preprocess input and constructs the appropriate form for its numerical algorithms automatically.

    Moreover, Mathematica can repeat this strategy at any stage of the computation, choosing from and switching between a broad range of algorithms. Because Mathematica can switch algorithms during a computation to optimize suitability for different parts of that computation, it can often outperform any manually selected single algorithm. Experts who wish to override Mathematica's automatic selection for any operation can do so.

    Mathematica is not limited to just machine-precision arithmetic (usually 16 digits) but can compute with any size number of any accuracy. Moreover, as Mathematica is computing, it tracks the precision of your calculations and ensures that the accuracy it ascribes to the results is justifiable.


    Q: How can I be assured that Mathematica's answers are accurate?
    First, Mathematica is extensively tested by Wolfram Research. Every week throughout the development process, Mathematica is subjected to an extensive battery of manual and automated testing, including comparisons with known results of nearly a half-million computations (chosen from books of tables, bug reports, documented behavior, and other Wolfram Research-generated tests).
    Second, arbitrary-precision numerical calculations in Mathematica offer the highest possible precision, ensuring that answers do not display false or unknown digits.

    In addition, Mathematica's ability to solve many problems in a variety of different ways allows for self-checking within the system.

    For these reasons, Mathematica is renowned as the technical system delivering the most trustworthy and accurate answers. Many major companies specifically test their products against it.


    Q: What is Mathematica's programming language like?
    For simple programs, Mathematica's language is a natural extension of performing interactive calculations in Mathematica with the same natural symbolic syntax and interface. It is very easy to start programming in Mathematica, and Mathematica's programming language combined with its built-in mathematical capabilities make it very powerful.
    From a programming language perspective, Mathematica offers an unrivaled range of language styles from procedural (similar to Fortran and C++) to functional, pattern-matching, and object-oriented approaches (similar to Lisp, APL, and others). Users can select the style that best fits the problem at hand or their experience (rather than manipulate the problem to fit with the language, as usually occurs), and this method results in succinct, highly readable programs. Not all styles or structures have to be learned at once for Mathematica to be an effective language, thereby allowing users to start with a familiar style.


    Q: How do I learn Mathematica?
    A good first step in learning Mathematica is to spend 20 minutes working through the introductory slide show that is available when you start up Mathematica. For specific operations you want to try, the supplied palettes covering many standard functions (e.g., solving, plotting, simplifying) require just a mouse click to activate. The online help provides a mechanism to search The Mathematica Book and its reference section, testing evaluation of the functions interactively in the Help Browser with your parameters as well as pasting them into your notebook. Getting familiar with the online help can be a good next step.
    Mathematica should prove easy to learn for solving a given complexity of problem, but since Mathematica is a very extensive system, knowing its every aspect takes a little longer. Nevertheless, because of Mathematica's consistency across all areas, transferring knowledge about how to work one aspect of the system to other areas is very easy.

    Wolfram Education Group offers Mathematica training courses, and over three hundred books are available on Mathematica in 18 languages.


    Q: How widespread is the use of Mathematica?
    Mathematica has been used by over two million people on every continent, from high school to higher education, and in government and commercial organizations. The world's 50 largest corporations, all of the U.S. government agencies, and the top 50 U.S. universities use Mathematica.

    Q: Can Mathematica work with XML?
    Yes, it can. Mathematica 5 fully supports XML import and export, including SVG graphics and MathML typesetting. Wolfram Research was central to defining MathML as part of the World Wide Web Consortium (W3C), with key constructs in MathML being based on Mathematica's typesetting system.

    Q: In what ways can Mathematica interact with the web?
    One straightforward way is by saving HTML or XML for immediate incorporation into web pages. At the other end of the spectrum, all computations, graphics, and programming can be performed interactively behind a website by webMathematica (a special version of Mathematica). webMathematica fully supports Web Services Package.

    Q: Is all the code in Mathematica created by Wolfram Research?
    Several third party libraries are included.