 |
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.
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.
|