Icon Mathematica 5.1 Icon

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