|
By
Dale Farris, Vice President
Golden Triangle PC Club
December 2004
Program Overview
Educational from simple calculator operations to
large-scale programming and interactive document preparation, Mathematica
5.1 is the tool of choice at the frontiers of scientific research, in
engineering analysis and modeling, in technical education from high school
to graduate school, and wherever quantitative methods are used.
Whether you need a sophisticated calculator or an integrated technical
programming environment, Mathematica provides you with a complete
solution. You can perform a single task, such as analyzing data or solving
a tricky differential equation, or develop an entire solution, prototype,
or application.
You probably know
Mathematica by name. Or you may be one of nearly two million users. But do
you really know the breadth of capabilities Mathematica can offer you?
Whatever you're working on--calculating, programming, learning,
documenting or developing--Mathematica is equipped to help.
Mathematica seamlessly integrates a numeric and symbolic computational
engine, graphics system, programming language, documentation system, and
advanced connectivity to other applications. It is this range of
capabilities--many world-leading in their own right--that makes
Mathematica uniquely capable as a "one-stop shop" for you or your
organization's technical work.
With this latest version 5.1, Wolfram Research continues to raise the bar
in mathematical software, providing more than 50 new functions, toolkits,
and performance improvements in an already superb program. The 5.1 version
adds a host of new capabilities, especially for working with large-scale,
diverse types of data. New innovative algorithms are introduced to deliver
unmatched performance for all steps in the data handling process,
importing, analyzing, manipulating, or plotting. When Wolfram Research
says data, then encompass textual and network as well as numerical data.
Complementing these new capabilities are enhancements to the program's
unique Automatic Algorithm Selection, the inherent intelligence that
automatically applies the best algorithm to each task. Mathematica 5.1
also adds more algorithms and better intelligence in a number of key
areas.
When you use a function in Mathematica, you are telling it what you want
it to do, not how to do it. Each function name represents a task, rather
than a simple algorithm, leaving users to concentrate on specifying the
right task while Mathematica focuses on applying the best algorithms. In
many areas, the new version 5.1 will now outperform manual selection of
algorithms by the most advanced practitioners both in performance and
consistency of the results.
What's New in Version 5.1?
Numerical Computation
New highly enhanced algorithms for high-precision LinearSolve
Internal vectorization of high-precision vector operations
New high-performance methods for MatrixExp
Support for sparse singular value decomposition
Support for HessenbergDecomposition
Typeset notation for Transpose and Conjugate
Numerical integration of discontinuous piecewise functions
Numerical integration over implicitly defined regions
Support for event detection in NDSolve
Additional convenience functions Boole, Clip, and Rescale
Package for cluster analysis and dendrograms
Package for interactive exploration of differential equation systems
Symbolic Computation
General vector derivatives, including Gradient, Hessian, and Jacobian
Piecewise construct for representing general piecewise functions
Simplification with piecewise and nested piecewise functions
Reduction of piecewise equations and inequalities, including quantifiers
Limit, Series, and D support for general piecewise functions
Indefinite and definite integration of general piecewise functions
Support for solving piecewise ordinary differential equations
Symbolic multiple integration over regions defined by inequalities
Enhanced support for solving Abel and other differential equations
Support for linear differential equations with nonrational coefficients
Nonlinear partial differential equation solutions based on complete
integrals
Support for equations with multiple moduli in Reduce
Additional methods for solving Diophantine equations
Language and Core System
Full support for optimized string pattern matching
Integrated string and expression pattern language
General support for complement patterns with Except
String patterns integrated into all string operations
Generalized StringCases for string analysis
New functions StringSplit, StringCount, and StringReplaceList
RegularExpression construct for compact string pattern notation
English-language dictionary package
Support for generalized Tuples and Subsets
Expression filtering function Pick
Package for benchmarking of computer systems
Data Handling and Visualization
ArrayPlot for flexible large-scale array visualization
Package for fully automated network and tree layout in 2D and 3D
Highly optimized import and export of binary data
Import and export of XLS spreadsheet files
Support for HDF5, MAT (v5), DIF, and PCX
Export of AVI movie files
Import from http and ftp URLs
Automated encoding and decoding of .gz files
Integrated TeX import and parsing in notebooks
Symbolic names for common colors such as Red and Black
Database Access
DatabaseLink for universal cross-platform database connectivity
Bundled drivers for most common database systems
Integrated language interface for database discovery, query, and updating
Graphical interface for database connection and exploration
Bundled SQL engine for creating custom databases
GUI Tools
Integrated GUIKit for building standalone user interfaces
Platform-independent Mathematica language GUI specification
Over 100 types of controls and widgets
Automatic layout for complex dialog boxes
System for creating sequential wizard interfaces
Large library of sample GUI applications
Web Services
Transparent access to web services from within Mathematica
Support for SOAP and WSDL
Packages for search and lookup on Wolfram Research and other sites
Wide Range of Uses
Handling complex symbolic calculations that often involve hundreds of
thousands or millions of terms
Loading, analyzing, and visualizing data
Solving equations, differential equations, and minimization problems
numerically or symbolically
Doing numerical modeling and simulations, ranging from simple control
systems to galaxy collisions, financial derivatives, complex biological
systems, chemical reactions, environmental impact studies, and magnetic
fields in particle accelerators
Facilitating rapid application development (RAD) for engineering companies
and financial institutions
Producing professional-quality, interactive technical reports or papers
for electronic or print distribution
Illustrating mathematical or scientific concepts for students from K-12 to
postgraduate levels
Typesetting technical information--for example, for U.S. patents
Giving technical presentations and seminars
Works at All Levels
Usually Mathematica is used with its notebook interface directly as it
comes out of the box. However, it is increasingly being used through
alternative interfaces such as a web browser or by other systems as a
back-end computational engine.
Some of these uses require in-depth Mathematica knowledge, while others do
not. Mathematica is unusual in being operable for less involved tasks as
well as being the tool of choice for leading-edge research, performing
many of the world's most complex computations. It is Mathematica's
complete consistency in design at every stage that gives it this
multilevel capability and helps advanced usage evolve naturally.
Fully Featured, Fully Integrated
At a superficial level, Mathematica is an amazing, yet easy-to-use
calculator. The world's most comprehensive set of mathematical,
scientific, engineering, and financial functions is ready-to-use--often
with just one mouse click or command. However, Mathematica functions work
for any size or precision of number, compute with symbols, are easily
represented graphically, automatically switch algorithms to get the best
answer, and even check and adjust the accuracy of their own results. This
sophistication means trustworthy answers every time, even for those
inexperienced with the mechanics of a particular calculation.
While working through calculations, a notebook document keeps a complete
report: inputs, outputs, and graphics in an interactive but typeset form.
Adding text, headings, formulas from a textbook, or even interface
elements is straightforward, making online slide show, web, XML, or
printed presentation immediately available from the original material. In
fact, with notebook document technology, a fully customized interface can
easily be provided so that recipients can interact with the content. The
notebook is a fully featured, fully integrated technical document-creation
environment.
Easy Programming, Powerful Results
The move from immediate calculations to programmed computations can occur
evolutionarily. Just one line makes a meaningful program in
Mathematica--the methodology, syntax, and documents used for input and
output remaining as they are for immediate calculations.
Mathematica is also a robust software development environment. Mathematica
packages can be debugged, encapsulated, and wrapped in a custom user
interface, all from within the Mathematica system. Alternatively, Java, C,
or links to a proprietary system can use Mathematica's power behind the
scenes.
One Unifying Idea
Symbolic programming is the underlying technology that provides
Mathematica this unmatched range of abilities. It enables every type of
object and every operation--be they data, functions, graphics, programs,
or even complete documents--to be represented in a single, uniform way as
a symbolic expression. This unification has many practical benefits from
ease of learning to broadening the scope of applicability of each
function. The raw algorithmic power of Mathematica is magnified and its
utility extended.
Some
of the Ways Mathematica Can
Help You
--Spend more time defining your problem and less on mechanics and
calculations
--Put the world's largest collection of mathematical knowledge at your
fingertips
--Graphically present your results
--Have confidence in the accuracy of numerical results
--Work with problems symbolically
--Automatically pick the best method for solving the problem you specify
--Adopt one technical computing system across your organization
--Organize an entire project from ideas to results in one notebook
--Produce publication-quality papers
--Write up your results and communicate them electronically
--Develop applications rapidly
--Use special classes of equations
--Use special classes of solutions
Super Features
--System-looking independent equations
--Reductions
--Mixed Methods
--Boundary Value Problems
--Partial Differential Equations
--Pattern matcher and compiler
--Integration over inequality defined regions and integration of piecewise
functions
--Optimized statistical algorithms
--Linear Expression to Matrix
--J/Link and Web Integration
--MathML Integration
--Support for IBM Techexplorer
--Improved import and export
--Export and import AutoCAD DXF files
--Export and import CSV files
--RealTime3D support for X
--Sound support under X
--Inequality graphics package
--Supports LinuxPPC and AlphaLinux
--Supports Network Mathematica and MathML
Mathematica is the world’s only fully integrated computing system,
combining interactive calculation (both numeric and symbolic),
visualization tools, and a complete programming environment. Over one
million researchers, students, engineers, physicists, analysts, and other
technical professionals worldwide have discovered Mathematica’s unique
combination of unmatched computational power and unprecedented ease of
use.
This powerful program runs on most all types of computers, from Windows
machines, to Mac machines, to even Linux and Unix machines. Used
internationally by professionals in nearly every area of scientific and
technical computing, Mathematica lets you solve, visualize, and harness
the power of mathematics without pencil-and-paper, calculator, or complex
custom software approaches that were once necessary before the Mathematica
program came along.
Mathematica handles the mechanics of mathematics, so that you can
concentrate on the content and implications of your work. Fast, new
algorithms, increased capabilities for importing and exporting, and
extensive document processing features make Mathematica ideal for final
simulations as well as prototyping, a complete idea-to-result computing
environment.
Mathematica can be used as an interactive calculation tool and as a
high-level programming language. The program will be of great use in:
--Visualization and sound generation system for functions and data
--Modeling, simulation, and data analysis environment
--System for representing knowledge in mathematical and technical fields
--Control language for external programs and processes
--High-level shell for file, text, and data manipulation
--Tool for creating interactive documents mixing text, animated graphics,
and active formulas
--Technical publishing tool for both traditional print and on the Web
Mathematic Notebook Documentation System
Mathematica notebooks
provide a complete technical document system with typeset math, sound,
graphics, and animations. Whether you are creating a report, an academic
paper, courseware, or an electronic book or just want to keep a record of
your work, Mathematica notebooks are the ideal medium for all of your
technical projects. They are the main interface to all Mathematica
computations and let you combine all of your calculations, code, results,
and graphics into one interactive technical document.
Notebooks are platform independent and combine interactive typeset
mathematical expressions, formatted text, hyperlinks, graphics,
animations, sound, and fully customizable buttons and palettes.
Mathematica's user interface includes such word-processing capabilities as
spell checking (with a large technical vocabulary) and automatic
hyphenation.
Mathematica’s integrated notebooks allow you to keep your analysis,
graphics, report, and presentation together in one unified document. You
can send notebooks by email or put them on a website or an FTP site
without affecting their quality, use them to create high-quality printouts
or sophisticated on-screen presentations, or translate them to other
document formats such as HTML, TeX, and MathML, part of the new XML
standard.
Complex Analysis
Mathematica comes with a wide range of high-level statistics and
data analysis functions as well as powerful import, export, and
connectivity functionality, making even complex analysis of large data
sets quick and easy. Mathematica's record-breaking speed for numerical
linear algebra also makes processing large data sets faster than ever.
Mathematica includes import and export filters for over 70 popular file
formats, including XML. Mathematica can also connect to databases with
JDBC or .NET mechanisms through J/Link and .NET/Link. Mathematica's
connection tools also allow you to easily build and access online data
feeds, other data acquisition software such as LabView, and web services.
Once you have read your data files into Mathematica, you can apply
sophisticated analysis or visualization techniques or use Mathematica's
computational power to build complex models. Mathematica comes with fast
tools for data manipulation, descriptive statistics of uni- and
multivariate data, generalized linear and nonlinear fitting,
multidimensional interpolation, convolution, correlation, regression,
ANOVA, hypothesis testing, and visualization and statistical plotting
tools.
Additional packages for specialized analysis including time series,
digital processing, neural networks, and signal processing are available
from Wolfram Research as well as independent developers.
Volumes of Knowledge
Put the world's largest collection of mathematical knowledge at your
fingertips. Mathematica takes the most extensive collection of computation
and visualization tools you'll find anywhere and puts them right on your
desktop. Mathematica contains and surpasses the knowledge of thousands of
mathematical tables, hundreds of reference books, and dozens of software
systems. Yet Mathematica is faster to use, more accurate, and better
integrated than any of them. All of the components you need to pursue a
solution are built into Mathematica, from the basic functions like Sin,
Log, and Eigenvalues to powerful superfunctions such as Solve, Integrate,
and Simplify.
Plotting Functions and Visualization Mathematica provides many flexible
plotting options for visualizing your results: Plot, Plot3D, ContourPlot,
DensityPlot, ArrayPlot, ParametricPlot, MoviePlot, MoviePlot3D, LogPlot,
LogLogPlot, PolarPlot, ImplicitPlot, ListPlot, ScatterPlot3D, and many
other variations. Yet these plotting routines represent only a subset of
Mathematica's extensive graphics and visualization capabilities.
Automatic Numeric-Precision Control Mathematica keeps track of the
precision of its numerical results automatically throughout each
calculation and adjusts its internal algorithms as needed to provide the
precision you require.
Typesetting
Fully typeset input and output are interactive. In addition to working
with pure-text input and output, Mathematica works with typeset
expressions. Both text and mathematical expressions can be formatted in
any typeface, size, or style. Mathematical expressions are also "live,"
and you can use them as input or can make instant modifications. This
feature allows you to work with mathematical expressions that are familiar
from textbooks and to input formulas and parse results far more quickly
than you can in any other program.
Mathematica lets you work with live evaluatable typeset expressions.
Mathematica notebooks fully support standard mathematical notation-- for
both output and input.
Symbolic and Numeric Computations
Every function in Mathematica is implemented as completely as possible,
handling the widest range of numeric and symbolic inputs. Mathematica
knows how to evaluate functions to any precision anywhere in the complex
plane. Along with supporting numerical inputs, Mathematica supports the
world's largest collection of symbolic transformation rules, allowing
sophisticated manipulation and reduction of formulas.
Try a complex value, and you get a complex result. Since all of these
cases are handled simply by calling the function Sin, you won't need to
memorize a different function name for each kind of argument.
Graphics
Choose from over 50 styles of graphics, or create your own. Mathematica
provides over 50 built-in graphics types for visualizing your results,
including a variety of 2D and 3D plots, contour and density graphics, and
a full complement of specialized business and statistical plots.
Mathematica also lets you generate animations and sounds with simple
commands.
However, these plotting routines represent only a subset of Mathematica's
extensive graphics and visualization capabilities. Mathematica also comes
with a graphics language that lets you customize graphics to your exact
specifications or even create your own graphic types from a large set of
built-in primitives.
Develop Applications With Mathematica
Mathematica Link for Excel provides two-way communication between
Mathematica and Excel. In many cases you want not only to publish your
results but also to make your Mathematica applications available to
others--coworkers in your organization, customers, or colleagues around
the world.
Mathematica's combination of computational sophistication and
programmability makes it ideal for prototyping and developing complete
applications. Because it provides a high-level environment, you can
concentrate on what's unique to your work instead of spend time coding
generic, low-level functionality. Once your application is finished,
Mathematica offers numerous ways to rapidly deploy it in the way that is
most efficient for your purpose.
Mathematica Notebooks and Packages
The most direct way of allowing others to use your Mathematica programs is
to send your notebooks or packages to them. All Mathematica documents and
programs are fully platform independent, so you do not have to worry about
portability issues or incompatibilities. You can even add a
point-and-click user interface, using either Mathematica buttons and
palettes or Java, so that end users never have to work with the command
line.
Interactive Web and Intranet Sites
With very little effort almost any Mathematica program can be turned into
an MSP, an interactive web application running on a webMathematica server.
In many cases, the process requires only a few steps--for example, saving
the notebook as HTML, extracting the code, and then adding a few simple
Mathlet tags. The resulting web application can be used from any web
browser and through an interface; no Mathematica knowledge is required.
You can also easily create more-advanced user interfaces using any number
of standard web-development tools and languages such as JavaScript, JSP,
or PHP.
Mathematica as a Software Component
With Mathematica's J/Link and MathLink API, you can also deploy your
Mathematica application as part of a Java, .NET, or C/C++ program right
out of the box. Additional products from Wolfram Research and independent
developers provide prebuilt links to Visual Basic, scripting languages,
and Microsoft Excel, which enable the products to interface with
Mathematica and a variety of application packages.
Programmable Palettes
Programmable palettes let you have instant access to sophisticated
functionality. Mathematica comes with a collection of ready-to-use
palettes that give you instant access to many of the built-in functions
with one click. Because Mathematica is so flexible, you can also easily
create your own palettes in seconds.
Mathematica’s palettes and buttons provide a simple but fully customizable
point-and-click interface. Put the functions and symbols you use most
often on a single palette, or make notebooks interactive by including
custom buttons in them. You can even add the palettes you use most often
to a menu for quick access or can send them via email to your colleagues.
Since you can run any Mathematica function or program from a button, you
can build complete interfaces to your Mathematica packages or
courseware--making Mathematica an even more productive environment in
which to work.
Special-Purpose Interfaces
Create special-purpose interfaces using Java, .NET, or C/C++. Mathematica
lets you easily create graphical user interfaces. Mathematica allows you
to create complete document-centric and graphical user interfaces. You can
build buttons and palettes, input forms and dialogs, and even fully
interactive documents using nothing but built-in Mathematica functions.
Moreover, your programs can generate any of these interface elements on
the fly.
Automatically generate reports with completely cross-referenced
hyperlinks. Create a survey that adapts itself to the answers given by the
user. Make self-modifying palettes. The possibilities are endless, and the
programs and interfaces created are platform independent.
There are many additional ways to generate custom user and programmatic
interfaces for Mathematica. For example, Mathematica now comes with J/Link
and a Java Runtime Environment preinstalled, allowing you to use AWT or
Swing components to create a Java-based graphical user interface to
Mathematica that will run seamlessly on all platforms for which
Mathematica and Java are available.
The Windows version of Mathematica also includes .NET/Link for full
integration with the Microsoft .NET Framework. With .NET/Link, Mathematica
users can load any .NET object into Mathematica and extend it. .NET/Link
also provides an easy way to call any DLL or COM object from within
Mathematica.
Programming Languages
Program in the uniquely productive Mathematica language. Whether you call
them simulations, models, or algorithms, representing your concepts in
Mathematica is easy. There's hardly a distinction between interactive and
programmed calculations in Mathematica. You can build intricate
calculations piece by piece. Specify a definition for an expression. Look
up a formula and add it as a Mathematica transformation rule. Add more
rules for other cases or for related formulas. The intuitive nature of
Mathematica lets you build surprisingly sophisticated calculations easily
and incrementally.
Mathematica includes a modern, wide-ranging, and highly versatile language
that doesn't force you into a single style of programming. Just as a
spoken language gives you many ways to express each idea, Mathematica
provides many different programming paradigms.
Your code reflects your style of specifying the problem, which can make
the command much shorter and easier to read. This unique flexibility makes
switching to Mathematica from other programming languages easy--and cost
effective. Even those who haven't programmed before can write powerful
programs without extensive training.
Concentrate on your ideas. Mathematica takes care of the programming
infrastructure. There is no need to predeclare variable types or
dimensions of lists and arrays, to direct memory management, or to compile
your programs.
Mathematica's high-level programming constructs let you build
sophisticated programs more quickly than ever before. Common procedures
such as sorting, searching, handling files, and manipulating data are
built in and remove peripheral code from your routines. This feature helps
to make typical Mathematica programs only 5 to 10 percent the size of
those created in traditional languages or numerical systems and greatly
shrinks development time.
Mathematica is an unprecedentedly flexible and intuitive programming
language. Mathematica handles problems of any scale and complexity equally
well; it's more than a simple scripting language. One key feature is
dynamic arrays of arbitrary size and dimension; optional compilation is
another. By providing multiple paradigms and the world's most powerful
pattern-matching engine, Mathematica lets you choose the most effective
programming style for your problem. You don't have to work around the
limitations of a restrictive language.
With such a variety of programming approaches, it's easy to see why
Mathematica has become the language of choice for technical professionals
around the world. Add it all together: Mathematica makes you many times
more productive.
Interactive Help Browser
All documentation is available through the interactive Help Browser. The
Mathematica Help Browser includes the complete documentation for all
functions in Mathematica and the entire text of The Mathematica Book as
fully indexed Mathematica notebooks with advanced search capabilities and
comprehensive hyperlinks.
The Help Browser also contains thousands of interactive examples that
demonstrate the use of Mathematica functions, its general capabilities,
and the best way to take advantage of them.
Mathematica's sophisticated Help Browser lets you interact with thousands
of pages of documentation, useful examples, and demos. Unlike any other
software, Mathematica enables users to modify and evaluate expressions
directly within the Help Browser. The online material for the majority of
built-in functions includes several examples to be evaluated or altered,
providing a particularly helpful aid for those who learn best by example.
User modifications of material within the Help Browser are not permanent,
however. If you accidentally delete an example or section of help text,
you need only to exit and reenter that page to restore the original
information.
However, the material presented in the Help Browser is not fixed
permanently to include only what is provided with the Mathematica
installation. Help Browser information is stored as a Mathematica
notebook. Thus, you can create help notebooks that become fully integrated
with other Help Browser information, including the insertion of new
entries into the Help Browser's master index.
Key Technologies
Automatic Algorithm Selection
With automatic algorithm selection, you choose the task you want
performed, and Mathematica picks the best algorithm(s) for performing it.
For example, you might want to solve a differential equation numerically.
With Mathematica you would use the function NDSolve, which would "decide"
which of its dozens of algorithms to deploy to get you an accurate answer
quickly (you could also choose to override this and select manually). With
a traditional system you would need to know which function name (e.g.,
ode113, ode23e) would best solve your problem, and you would select the
algorithm yourself.
As well as picking an algorithm at the start of a calculation based on
your input, Mathematica's automatic algorithm selection can change its
selection in midcalculation, based on the success of the current method,
or preemptively as an optimization for the next stage. This capability
means that automatic algorithm selection can usually outperform an
individual manual selection of algorithms.
Nevertheless, the key benefit of automatic algorithm selection is that it
enables users to quickly get accurate results to problems for which they
do not have a specialist's algorithmic knowledge. In practice, this makes
a dramatic difference in the range of successful computations that most
users can perform and is becoming increasingly important as algorithmic
knowledge becomes more specialized and as the breadth of available
computations in software packages increases.
An additional important feature of Mathematica that is implemented with
automatic algorithm selection is its ability to determine whether an input
contains symbols, exact numbers, or approximate (possibly
arbitrary-precision) numbers. Appropriate algorithms are selected
automatically for each case, producing a result that matches the input
type. For example, if symbolically specified equations are given to Solve,
Mathematica will attempt to produce a symbolic result; if
machine-precision input is given, Solve will utilize appropriate numerical
algorithms and attempt to produce a machine-precision numerical result.
The user does not need to use a different function call in these different
cases.
Mathematica pioneered wide-scale implementation of automatic algorithm
selection at its release in 1988. Since then, the range of algorithms, the
sophistication of selection, and the number of functions for which
automatic algorithm selection operates have all greatly increased. No
other technical system today offers this approach.
Notebook Document-Centered Interface
Mathematica notebooks are today's most sophisticated manifestation of the
document-centered approach to user interfaces and are a departure from the
normal dialog box-based approach.
Traditionally, graphical user interface (GUI) software uses dialog boxes
for actions and documents for user data on which those actions operate.
Dialog boxes are distinguished as having nonscrolling, fixed layouts of
buttons, menus, and so on, while documents are scrolling, increase in size
as necessary, and have interactive structure and updatable content.
With a document-centered interface (DCI) approach, the actions, control
elements for them, and structural information all reside together with the
user data in the document itself.
For technical users this approach is especially beneficial. Technical-user
data is highly complex in structure and content compared to the linear
textual structure of a normal document. Ideally, a technical document must
be "alive" with editable 2D typeset mathematical expressions,
transformable graphics, and automatic formatting of results as they
emerge. In essence, technical documents require actions to occur from
within the document; the barrier between actions and documents in the
traditional GUI approach is highly detrimental to efficient workflow. This
is particularly the case for collaborative work; with a DCI approach,
actions are embedded in any document and can be sent to others to reapply
or adjust.
Standard HTML web pages are an example of a simple form of a
document-centered interface, providing structure, links, and input boxes
but lacking sophisticated interactivity and other elements. More recently,
XML has provided a far more extensive structure for document-centered
interface specification--in particular, supporting MathML and SVG,
features relevant to the technical community.
Mathematica notebooks, first released in 1988, fully exploit the DCI
approach. The notebook interface combines a word processor-like foundation
with a clearly defined notion of "cells," which are arranged vertically in
a scrolling window like paragraphs of text.
The cells are important because they visually and functionally segregate
the text into inputs, outputs, text, graphics, headings, and so on. Yet,
all components of Mathematica notebooks are still simply expressions in
the Mathematica language. Therefore, unlike other more-restrictive
interface models, the cells are flexible enough to support any type and
size of expression, afford easy editing and insertion of contents, and are
easily expandable for large calculations and documents.
As well as providing an optimized environment in which individuals can
perform technical work, the notebook structure has proven to be an
extremely effective tool for writing comprehensive reports and
presentations of results. With most application software there is a huge
gulf between users and developers. In Mathematica, as users work on a
problem, they are automatically creating the outline of a (notebook)
document that can become a useful tool for themselves or others to solve
similar problems in the future.
Often with minimal revision and annotation, users can turn their raw work
into notebooks that can be sent to colleagues who, in turn, can change the
input, tweak the algorithm, and in very little time investigate problems
of their own. In this way, a "user" has in effect become a developer of a
tool that others can use.
Users can also learn to manipulate features of Mathematica that allow them
to add buttons, palettes, and other user interface elements into their
documents as the need and interest arise. But even a simple notebook is
often a powerful, flexible piece of application software in its own
right--an important consequence of the DCI approach.
Notebooks enable a wide range of collaborative and interactive workflows
between, for example:
Researchers testing each other's results
Teachers setting up structured course work for their students
Workgroup members working on a technical report in which they change
parameter values, reevaluate calculations, and regenerate graphics
Depth of Algorithmic Knowledge
Mathematica contains thousands of functions covering many areas--numerical
computation, symbolic computation, graphics, and general programming. Its
collection of mathematical algorithms alone covers most published
algorithms and also contains a significant number of proprietary
algorithms.
These proprietary algorithms are the product of over 16 years of intensive
research and development within Wolfram Research itself. The
mathematicians and computer algorithm specialists on our staff are active
participants in the latest advances and developments in their areas, and
they work vigorously to integrate cutting-edge knowledge and research into
each new version of Mathematica.
The sheer number of built-in algorithms alone would make Mathematica a
leading technical computing package, but the number of algorithms is only
a small part of what makes Mathematica's knowledge base so powerful. A
unique feature of Mathematica is that data and programs in Mathematica are
all the same thing: symbolic expressions. This means that any Mathematica
function can provide input for, or accept output from, any other relevant
Mathematica function.
This feature allows Mathematica functions to combine different algorithms
and methodologies to create optimal results. For example, NDSolve,
Mathematica's function for numerical differential equation solving,
initially analyzes the systems of differential equations symbolically,
transforms them into a form optimized for numerical computation, and
chooses the algorithm that gives the best solution. Mathematica then
compiles the equations for maximum efficiency before running the numerical
solver. During the evaluation, Mathematica constantly analyzes the
solution process and switches between stiff and nonstiff solvers as
appropriate. This automatic algorithm selection process is another of
Mathematica's unique technologies.
Having a vast collection of algorithms that fit together through
Mathematica's symbolic programming paradigm means that new and
sophisticated algorithms can often be implemented with a minimum of effort
since they can draw on many existing algorithms. In fact, many Mathematica
functions combine subalgorithms never previously attempted: numeric
functions that use symbolic algorithms (e.g., to recognize nonlinear least
squares problem for FindMinimum or to symbolically compute derivatives or
gradients) and symbolic functions that use numeric algorithms (e.g., to
safely prove numeric inequalities).
All algorithms are packaged into Mathematica functions according to what
they do, not how they do it. This means that Mathematica users do not have
to know the algorithms or their structure, areas of applicability, or
limitations to make efficient use of them.
gigaNumerics
gigaNumerics represents the unique set of Mathematica technologies that
deliver high-speed numerical computations. Unlike dedicated numerical
systems, Mathematica is known for its generality and accuracy checking.
These characteristics would normally impose speed penalties on numerical
calculations since a number of extra operations have to occur each time a
calculation is executed. Initially, Mathematica checks the input to
determine whether it should be handled symbolically with machine- or
extended-precision arithmetic. Accuracy checks are made during the
calculation, and the accuracy of the calculation is stepped up if
necessary. Over- and underflows are sensed and handled correctly.
Traditional numerical systems fail to carry out these procedures. Yet they
are critical to your getting the right answers without being a numerics
expert, and they contribute to making Mathematica the most accurate and
generally applicable system available.
The challenge Wolfram Research tackled with gigaNumerics was to achieve
exceptional raw computing speed while maintaining Mathematica's generality
and accuracy. This challenge was met successfully by the following
combination of gigaNumerics technologies developed at Wolfram Research:
Precompilation - Compilation can speed up numerical calculations for
certain types of input. Mathematica optimizes its performance and
efficiency by preapplying compilation automatically as a transparent part
of many numerical calculations in cases in which Mathematica assesses that
it is feasible.
Packed Arrays - Computations to be performed on machine-precision matrices
and arrays are analyzed to decide whether packing them into a specialized
format will improve the performance of the computation. This process of
analysis and application occurs transparently, with outputs presented the
same way regardless of which methodology Mathematica chooses.
Automatic Algorithm Adaptation and Selection - Many Mathematica functions
automatically choose between a variety of algorithms and, in addition,
adaptively adjust their sampling rate throughout the calculation to
optimize speed and accuracy.
Processor Optimization - Libraries are optimized for each processor,
including the latest 64-bit varieties.
Symbolic Preprocessing - In some cases the total calculation time is least
if you simplify a problem algebraically before evaluating the result
numerically. Mathematica employs this technique automatically where
appropriate.
Vectorization - Certain Mathematica operations can work on an entire
vector, matrix, or array rather than on just a single element. Operating
on all the data at once reduces the number of top-level calls to
Mathematica, replacing them with optimized internal routines.
For the first time with Version 5.0, Mathematica outperforms traditional
dedicated numerical systems in terms of raw computational speed alone.
Advances in gigaNumerics technologies have achieved this--they more than
cancel out the speed deficit that might be expected from the generality
and accuracy that Mathematica delivers. In the future, Mathematica's lead
is expected to increase because traditional numerical systems do not have
integrated symbolic capabilities with which to perform symbolic
preprocessing.
Symbolic Programming
Mathematica is widely known as the world's most powerful system for
technical computing. What is less widely known is that Mathematica is also
a uniquely powerful programming language based on symbolic
programming--the unifying idea that every element can be represented as a
symbolic expression.
When Stephen Wolfram first began to design Mathematica in the mid-1980s,
he saw that no existing programming paradigm could support everything he
wanted to do. Convinced from his discoveries in science that a much more
powerful paradigm should be possible, he built on disparate ideas from
computer science, logic, and mathematics to create the new paradigm of
symbolic programming.
In this paradigm all different kinds of objects--formulas, lists, data,
and graphics, to name a few--are represented in a uniform way as
expressions. A prototypical example of a Mathematica expression is f[x].
This expression can represent a mathematical function, a graphic, a sound,
a program, or even a complete Mathematica notebook. Functions can be both
input and output of another function, enabling very concise and simple
coding. Also, since algorithms can be parameterized not only by numbers or
some fixed number of parameters but also by functions, algorithms are
infinitely more flexible.
Another key feature of Mathematica's programming language is the ability
to write programs that generate or manipulate other programs, commonly
known as metaprogramming. In Mathematica, any expression can be generated
programmatically at run-time. For example, it is entirely possible to
create and manipulate Mathematica notebook documents algorithmically, a
feature many of our customers now use to generate customized reports, web
pages, and even printed marketing materials automatically.
The symbolic programming paradigm has served as the foundation for
Mathematica since its first release in 1988. Over the past 14 years, the
programming language embodied in Mathematica has been used in an immense
number of technical computing applications and has become well integrated
into many areas of technical education. Now, what is emerging is the use
of the symbolic programming capabilities of Mathematica as the basis for a
new generation of implementation strategies for general computing
applications.
In the last couple of years, symbolic programming has come to the
forefront of computing as the next large-scale change in programming
paradigms, with the last having been object-oriented programming. An
example of a new technology that draws a number of design concepts from
symbolic programming is Extensible Markup Language (XML), the new
universal standard for machine-to-machine communication.
Like Mathematica, XML provides a uniform way to represent arbitrary
objects, whether they are data structures, documents, or even program
code. Both ways of representation are basically trees of expressions
called Mathematica expressions and XML documents respectively. In
Mathematica these expressions are operated on by transformation rules, and
in XML they are operated on by programming methodologies such as
Extensible Stylesheet Language Transformations (XSLT) and the Document
Object Model (DOM).
Mathematica's rich symbolic programming language was designed from the
ground up for manipulation of structured expressions, and operations that
can be expressed naturally in a single line of Mathematica input are
generally much more difficult to write in Java or XSLT. This fact alone
makes Mathematica an ideal tool for dealing with XML data and documents.
Fully Interactive Math Typesetting
Mathematical expressions are used in virtually every field from medicine
to engineering to social policy research to economics and finance.
Mathematica provides a robust, platform-independent file format that
allows mixed text and graphics and that fully supports mathematical
expressions embedded in both text and graphics.
Unlike in other systems, in Mathematica interactive editing of
mathematical expressions is not an afterthought or a separate, poorly
integrated module. Mathematica's math editor remains, 10 years after its
first introduction, the only interactive editing system that is fully
integrated from the ground up with a rich text-editing environment and a
rich mathematical engine able to perform sophisticated mathematical
operations on fully typeset expressions.
Mathematica's typesetting system is so efficient and easy to use that it
was selected as the math typesetting system to use for entering, checking,
and printing every math formula in every U.S. Patent. Several thousand of
these patents are processed every week.
However, the system is not just for typographical uses. Wolfram Research
leverages its typesetting system to allow very natural, convenient input
of mathematical expressions in its custom products, including
CalculationCenter, The Mathematical Explorer, A New Kind of Science
Explorer, and others. These products, though inexpensive, support the full
range of traditionally typeset mathematics as input to their computational
features. This integration of typeset input, a text-rich environment, and
computational ability is unavailable at any price in any other system in
the world.
In Publicon, Wolfram Research's world-class math typesetting system is
combined with a robust set of import/export routines, allowing individual
expressions or entire documents to be exported in XML, HTML, TeX, and
other formats that include those required by specific journals and society
publishers.
In the full Mathematica product, mathematical typesetting, typeset input
to computation, and export in industry-standard formats are integrated in
a research, development, and publishing environment of unequaled power.
Symbolic XML
XML has become the universal file format, and Mathematica is the ideal
universal processing system for converting, analyzing, mining, or
otherwise working with XML files.
Rather than being a single language, XML is a framework in which specific
languages can be defined--for example, MathML, ChemML, XHTML, SVG for
graphics, and countless other field-specific languages. Some XML files
represent printable documents, while others are pure data that represent
financial information, medical data, real-time transaction records, and
other information.
XML is so flexible and popular because it is based on a very simple
notion: a generic tree-structured expression in which each node in the
tree has a name and contains a specific piece of data such as a number,
string, or subtree containing more nodes. Specific XML application
languages define sets of names and ways of combining them that have
meanings in that language, but every XML language represents information
in the same generic expression structure.
Mathematica, as it happened, had been using a similar generic
tree-structured expression idea for many years before the advent of XML.
In fact, Mathematica's powerful pattern-matching language is based
entirely on the notion of transforming complex tree-structured expressions
on the basis of rules written in a pattern language.
It should thus come as no surprise that Mathematica is an outstanding
language for generating, processing, or transforming XML expressions.
Using Mathematica's general-purpose XML import and export features, XML
documents in any XML language or dialect can be imported in the form of a
Mathematica symbolic expression called SymbolicXML.
Once the document is in Mathematica form, it can, for example, be analyzed
statistically, and plots can be generated on the basis of the results. The
document can also be transformed and written back out in another XML
format. Because Mathematica is handling the document as a native
Mathematica expression, the range of operations that are convenient to
carry out in the Mathematica environment is nearly unlimited.
Unlike other XML tools, Mathematica is not limited to simple
transformations. Once in SymbolicXML form, the XML data can be analyzed
using the full range of Mathematica's mathematical, statistical, plotting,
data analysis, and other tools, none of which is available in any other
general-purpose XML tool.
Mathematica's interactive working environment is ideal for the development
of new, innovative applications of XML technology. Ideas can be developed
and prototyped in far less time than possible with other systems and can
then be deployed on a large scale using webMathematica server technology.
Targeted Customers
Mathematica is tailor-made
for all scientific organizations and businesses heavily involved in
technical research and development requiring sophisticated mathematical
analysis of data. Engineering firms and most all major industry settings
are also going to find the power of this super program to be essential in
their technical and research departments.
Mathematica fulfills many different needs for many different audiences.
Over the years, it has commonly been labeled in a variety of ways,
including a computer algebra system, symbolic calculator, or math package.
Mathematica can also be considered a numerics package, technical
documentation system, or programming language.
Wolfram Research now refers to the program as a "technical computing
system," something to aid users through anything from daily tasks to
multiyear projects. Mathematica can be thought of as having a variety of
pieces that contribute to its overall capability: the numeric and
symbolic computational engine, graphics system, programming language, and
document system. These elements are all tightly integrated an intertwined
so that, for example, what seems to be a numerical computation may
actually employ symbolic capabilities behind the scenes.
Far from being just for mathematicians, Mathematica is involved in every
area of technical endeavor. Scientists, analysts, engineers, and educators
account for the vast majority of user. Mathematica is used directly out of
the box, with its notebook interface. However, it is increasingly being
used through alternative interfaces, such as a web browser, or by other
systems as a back-end computational engines.
Around the world and even in space, ordinary and extraordinary people are
using Mathematica to design innovative products, to make groundbreaking
discoveries, and to learn. This is no surprise: Mathematica's
integrated environment provides the ideal platform for people of all
specialties and levels to utilize its technical capabilities to enhance
theirs.
Universities heavily involved in all these fields, especially mathematics
and higher level conceptual mathematics research will definitely want to
add this tool to their toolkit. If Mathematica already exists in these
organizations, then this latest update to version 5.1 is definitely worth
seriously considering.
Here is just a few of the current uses of Mathematica:
Recreational user maps Trinity
Site radiation levels with Mathematica
Computer science professor sculpts award-winning art with Mathematica
Mathematica Helps a 17-Year-Old in "Junior Nobel Prize" Contest
Mathematica simulates the sound of the Big Bang
Blind optical physicist pursues technical career with the aid of
Mathematica
Math professor uses Mathematica to create educational animations
The Harker School is teaching its students to think more Mathematicaly
Mathematica enters the ring in the new fighting-robot craze
Denmark is among the first to use webMathematica technology for education
Researchers at Stanford University develop a prototype of a live board
interface to Mathematica
A new generation of finance professionals is learning its skills in a new
way using Mathematica
"6 Integers" is a Mathematica-generated musical composition
Scientists at CERN create a new state of matter called "quark-gluon
plasma."
Mathematica helps discover the largest known prime number
A Mathematica animation in physical 3D was one of the works on display in
the Art Gallery at SIGGRAPH 2000
Cryptonomicon author Neal Stephenson uses Mathematica to illustrate his
best-selling novel
Finance professionals are finding that the standard textbook models for
derivatives trading are flawed and are correcting them with Mathematica
Insolvable until recently, the Robbins conjecture was visualized with help
from Mathematica (downloadable Mathematica notebook)
Mathematica is used for medical studies, including AIDS research
Mathematica assessed risk in the Cassini space launch to Saturn.
Boeing engineers use Mathematica to create a new precision surface-coating
technology
Mathematica offers a new twist on skateboard turning
Möbius Climber lands at Sugar Sand Science Playground
Mathematica makes possible a vanishing velodrome at the 1996 Olympics
Mathematica probes decline in sea lion population
Target location system gets a closer look
Mathematica gets slick with rebuild of paper machine
Textile design comes under the influence of Mathematica
What's your preference--corn flakes or granola, "NYPD Blue" or "The
Simpsons"?
Mathematica designs betting games
Mathematica aids in tsunami tracking
Mathematica turns mathematics into graphics for TV
Mathematica helps prepare the Bay Bridge for Earth's next tremble
Threatened species are studied with Mathematica
Price
Retail CD ROM Price
$1,880 Windows, Mac, Linux x86, Linux x/86 (64-bit) - Retail
$3,135 Unix and Linux-Itanium - Retail
(Includes one year of Premier Service)
Download Price
$1,880 Windows, Mac, Linux x86 (64-bit), Linux PC
$3,135 HP Tru64 Unix, HP-UX, IBM AIX, Linux-Itanium, SGI IRIX, Solaris
Academic Price
$895
Wolframe Research, Inc. makes available Mathematica for Students (www.wolfram.com/mathforstudents).
This is the same software and functionality as the professional version of
Mathematica, but priced very low for students. It's only $140. Parents should
consider it for their kids in high school and college taking
math-intensive courses. There are also the new semester and annual
download editions, for students who may only want Mathematica for a class
or two. The Semester Edition is only $45.
Note: Wolfram Research, Inc., also sells many specialized mathematical
applications, or MathLink products, for numerous specialized industries.
Check the Wolfram Research web site for more detailed information on these
products.
The Mathematica
Book, 5th Edition
When considering this powerful mathematical analysis program, many
customers might also consider this helpful tutorial book.
Author:
Stephen Wolfram
Publisher:
Wolfram Media, Inc.
Date:
2003
ISBN:
1579550223
Pages:
1,488
Format:
Hardcover / English
Price:
$49.95
As both a highly readable tutorial and a definitive reference for over a
million Mathematica users worldwide, this book covers every aspect of
Mathematica. It is an essential resource for all users of Mathematica from
beginners to experts. This expanded fifth edition presents Mathematica
Version 5 for the first time and is important for anyone interested in the
progress of advanced computing.
Included in this new edition are the following:
Visual tour of key features
Practical tutorial introduction
Full descriptions of 1,200+ built-in functions
Thousands of illustrative examples
Easy-to-follow descriptive tables
Essays highlighting key concepts
Mathematica language tutorial
Guide to symbolic programming
Introduction to document-centered interfaces
Guide to the MathLink API
Notes on internal implementation
Index with 10,000+ entries
Contents:
A Tour of Mathematica
A Practical Introduction to Mathematica
Principles of Mathematica
Advanced Mathematics in Mathematica
Appendix: Mathematica Reference Guide
Minimum System Configuration Requirements
Pentium II or compatible processor
Windows 98, ME, NT 4, 2000, XP
Macintosh G3, G4, G5 processor
Macintosh OS X 10.2, 10.3
Linux (64-bit optimized)
Red Hat Enterprise Linux 3 x86 (64 bit)
Red Hat Enterprise Linux 2.1, 3 Itanium 2
Linux (32-bit)
Red Hat Linux 9.0 Pentium II or compatible
Red Hat Enterprise Linux 3 Pentium II or compatible
Red Hat Fedora Core 2 Pentium II or compatible
Unix (64-bit optimized)
Sun Solaris 8, 9 UltraSPARC
HP Tru64 Unix 5.1 Alpha
HP-UX 11 PA-RISC
IBM AIX 5.1, 5.2 Power
SGI IRIX 6.5 MIPS
For questions about whether your system is supported, please send email to
info@wolfram.com and provide a
specific description of your hardware and operating system.
About Wolfram Research, Inc.
Through innovation
and progressive growth, Wolfram Research, Inc. continues to thrive as the
world's leading technical software company. Wolfram Research products
maintain a reputation for innovation, power, quality, and elegance. The
company's aim can be summarized: "Pushing the Envelope of Technical
Computing."
While remaining privately held, Wolfram Research has been continuously
profitable, and it has thus been able to fund unusually long-term R&D
projects and to port Mathematica, its flagship product, to a wide
selection of operating systems.
The Wolfram Group consists of four companies: Wolfram Research, Inc. and
Wolfram Media, Inc. in the United States, Wolfram Research Europe Ltd. in
the United Kingdom, and Wolfram Research Asia Ltd. in Japan. The UK office
coordinates the sales, marketing, and support of all European distributors
and customers, and the office in Japan is a direct sales and marketing
liaison to distributors and resellers.
The Wolfram Group has employees in research and development, marketing,
sales, support, and customer service. An Executive Committee of six
long-serving Wolfram Research members, representing each division of the
Group, reports to the president and CEO, Stephen Wolfram. The creator of
Mathematica, Wolfram maintains close involvement with the development of
Mathematica and the overall design of its new features.
Wolfram Research's leadership in technical computing stems from its
ability to set the direction for new technology. The Wolfram Group is
characterized by an individualist approach, a "no compromises" attitude to
design, the welcoming of innovation, a deep respect for the Mathematica
user base and users' suggestions, and the constant search for good general
approaches rather than quick fixes or purely cosmetic solutions.
Management fosters a lively, informal atmosphere with a flat
organizational structure more like a research department than a typical
company and recruits from a wide range of backgrounds. The selection of
candidates to join the company is decided more by raw ability than by
traditional qualifications in that field.
Wolfram Research sponsors both the academic and the corporate communities
with direct contributions to education-related programs and scientific
research. These programs range from the Mathematica Academic Grant
Programs, which award grants to select academic institutions and educators
showing outstanding creative promise in using Mathematica to enhance their
education and research activities, to the Mathematica Author and Publisher
Program, which provides support and tools for authors and publishers of
Mathematica-related books. The Student Intern Program recruits talented
students who would like to gain real-world experience and offers
internships in all departments of the company each summer.
Stephen Wolfram, the founder of Wolfram Research, is widely regarded as
the most important innovator in technical computing today. A distinguished
scientist particularly known for his fundamental discoveries in complex
systems research, Wolfram has been a leading user and developer of tools
for scientific and technical computing for over 20 years. In 1987, Wolfram
founded Wolfram Research to provide an organizational environment in which
software of the highest quality could be produced and distributed.
Mathematica Version 1.0 was released on June 23, 1988, and was immediately
lauded by the scientific and technical community, as well as the media, as
a dramatic advance. Within months, there were tens of thousands of users
around the world, and today Mathematica's reach has grown to several
million enthusiastic users around the world.
Mathematica has been adopted in an unprecedented range of fields both in
industry and in academia. In fact, Mathematica has been responsible for
bringing advanced mathematics and computing to fields that were
traditionally less technical, and in so doing it has substantially
increased the market for technical software in general. A growing industry
of applications, consulting services, books, and courseware serves the
international community of Mathematica users.
As Wolfram Research continues to grow and as Mathematica's use continues
to expand into a variety of fields, Mathematica's influence will be seen
in the products of the future, in significant research findings, and in
classrooms worldwide.
Contact Information
Wolfram Research,
Inc.
100 Trade Center Drive
Champaign, Illinois 61820-7237
217-398-0700
1-800-WOLFRAM (965-3726)
1-800-441-MATH (6284) (U.S. and Canada only)
Customer service: 217-398-5151
Technical support: 217-398-6500
Fax: 217-398-0747
info@wolfram.com
support@wolfram.com
press@wolfram.com
www.wolfram.com
|