| Mathematica | |
|---|---|
| Developed by | Wolfram Research |
| Initial release | 1988 (19–20 years ago) |
| Stable release | 6.0.3 (June 10th 2008) [+/−] |
| Preview release | 6.0.3 (n/a) [+/−] |
| Platform | Cross-platform (list) |
| Available in | multilingual |
| Genre | Computer algebra, numerical computations, Information visualization, statistics, user interface creation |
| License | Proprietary |
| Website | Mathematica homepage |
Mathematica is a computer program used widely in scientific, engineering and mathematical fields. A software developer is a person or organization concerned with facets of the software development process wider than design and coding a somewhat broader scope of Year 1988 ( MCMLXXXVIII) was a Leap year starting on Friday (link displays 1988 Gregorian calendar) A software release is the distribution whether public or private of an initial or new and upgraded version of a Computer software product Events 1190 - Third Crusade: Frederick I Barbarossa drowns in the Sally River while leading an army to Jerusalem 2008 ( MMVIII) is the current year in accordance with the Gregorian calendar, a Leap year that started on Tuesday of the Common A software release is the distribution whether public or private of an initial or new and upgraded version of a Computer software product In Computing, a platform describes some sort of Hardware architecture or Software framework (including Application frameworks, that allows In computing cross-platform (also known as multi-platform) is a term used to refer to Computer software or computing methods and concepts that are implemented A language is a dynamic set of visual auditory or tactile Symbols of Communication and the elements used to manipulate them Computer software can be organized into categories based on common function type or field of use A computer algebra system ( CAS) is a software program that facilitates Symbolic mathematics. Listed here are a number of computer programs used for performing numerical calculations acslX is a software application for modeling and evaluating the performance Information graphics or infographics are visual representations of Information, Data or Knowledge. A statistical package is a suite of Computer programs that are specialised for statistical analysis. A software license (or software licence in commonwealth usage is a Legal instrument governing the usage or redistribution of copyright protected software Proprietary software is Computer software on which the producer has set restrictions on use private modification copying, or republishing. A website (alternatively web site or Web site, a back-construction from the Proper noun World Wide Web) is a collection of Web pages It was originally conceived by Stephen Wolfram and developed by a team of mathematicians and programmers that he assembled and led. Stephen Wolfram (born August 29, 1959 in London) is a British Physicist, Mathematician and Businessman known for his It is developed by Wolfram Research of Champaign, Illinois. Champaign is a city in Champaign County, Illinois, in the United States. [1]
Contents |
Mathematica is split into two parts, the "kernel" and the "front end". In Computer science, the kernel is the central component of most computer Operating systems (OS The kernel interprets expressions (Mathematica code) and returns result expressions. The Front End provides a document centered GUI.
Some features of Mathematica include[2]:
The Mathematica Front End provides an interface which allows the creation and editing of Notebook documents which can contain program code with prettyprinting, formatted text together with results including typeset mathematics, graphics, GUI components, tables and sounds. Complex plane In Mathematics, the complex numbers are an extension of the Real numbers obtained by adjoining an Imaginary unit, denoted On a Computer, arbitrary-precision arithmetic, also called bignum arithmetic is a technique whereby Computer programs perform Calculations on To prettyprint (or pretty-print) is to present an object to a human reader so that it is easier to perceive the object's structure or less commonly to simply make it more All contents and formatting can be generated algorithmically or interactively edited and most standard word processing capabilities are supported but only one level of "undo" is supported.
Documents can be structured using a hierarchy of cells, which allow for outlining and sectioning of a document and support automatic numbering index creation. Documents can be presented a slide show environment for presentations. Starting with version 3. 0 of the software, notebooks and their contents are represented as Mathematica expressions that can be created, modified or analysed by Mathematica programs. This allows conversion to other formats such as TeX or XML. TeX (ˈtɛx as in Greek, often /ˈtɛk/ in English; written with a lowercase 'e' in imitation of the logo is a Typesetting system designed and mostly Don't change "Extensible"
The Mathematica Front End includes development tools such as a debugger, input completion and automatic syntax coloring.
The kernel and the front end communicate via the MathLink protocol. Mathematica is a computer program used widely in scientific engineering and mathematical fields It is possible to use the kernel on one computer and the front end on another.
The standard Mathematica front end is used by default, but alternative front ends are available:
In recent years the capabilities for High-performance computing have been extended with the introduction of packed arrays (version 4, 1999) [6], sparse matrices (version 5, 2003)[7], and by adopting the free GNU Multi-Precision Library to evaluate high-precision arithmetic. High-performance computing (HPC uses Supercomputers and Computer clusters to solve advanced computing problems The GNU Multiple-Precision Library, also known as GMP, is a free library for Arbitrary-precision arithmetic, operating on signed Integers
Version 5. 2 (2005) added automatic multi-threading when computations are performed on modern multi-core computers. [8] This release included CPU specific optimized libraries. In addition Mathematica is supported by third party specialist acceleration hardware such as ClearSpeed. ClearSpeed Technology PLC is a corporation based in Bristol England that sells Attached Processors (APs or Coprocessors as they are also called for use as accelerators in High Performance [9]
In 2002 gridMathematica was introduced to allow user level parallel programming on heterogeneous clusters and multiprocessor systems and supports grid technology such as the Microsoft Compute Cluster Server. gridMathematica is a product sold by Wolfram Research which is based on its main product Mathematica. Parallel computing is a form of computation in which many instructions are carried out simultaneously operating on the principle that large problems can often Windows Server 2003 (also referred to as Win2K3 is a server Operating system produced by Microsoft. [10]
Several solutions are available for deploying applications written in Mathematica:
Communication with other applications occurs through a protocol called MathLink. It allows communication between the Mathematica kernel and front-end, and also provides a general interface between the kernel and other applications. Wolfram Research freely distributes a developer kit for linking applications written in the C programming language to the Mathematica kernel through MathLink. tags please moot on the talk page first! --> In Computing, C is a general-purpose cross-platform block structured [12] Two other components of Mathematica, whose underlying protocol is MathLink, allow developers to establish communication between the kernel and a . NET or Java program: . NET/Link. [13] and J/Link[14]
Using . NET/Link, a . NET program can ask Mathematica to perform computations; likewise, a Mathematica program can load . NET classes, manipulate . In Object-oriented programming, a class is a Programming language construct that is used as a blueprint to create objects This blueprint includes attributes NET objects and perform method calls. This makes it possible to build . NET graphical user interfaces from within Mathematica. Similar functionality is achieved with J/Link, but with Java programs instead of . NET programs.
Communication with SQL databases is achieved through built-in support for JDBC. Java Database Connectivity (JDBC is an API for the Java programming language that defines how a client may access a Database. [15].
Mathematica can also install web services from a WSDL description[16][17]. A Web service (also Web Service) is defined by the W3C as "a software system designed to support interoperable machine-to-machine interaction The Web Services Description Language (WSDL pronounced 'wiz-dəl' or spelled out 'W-S-D-L' is an XML -based language that provides a model for describing Web services
The following Mathematica sequence will find the determinant of the 6×6 matrix whose i, j'th entry contains ij. In Algebra, a determinant is a function depending on n that associates a scalar, det( A) to every n × n In Mathematics, a matrix (plural matrices) is a rectangular table of elements (or entries) which may be Numbers or more generally
In[1]:= Det[Array[Times, {6, 6}]]
Out[1]= 0
So the determinant of such a matrix is 0 (i. e. it is singular). In Linear algebra, an n -by- n (square matrix A is called invertible or non-singular if there exists an n -by-
The following numerically calculates the root of the equation ex = x2 + 2, starting at the point x = -1.
In[2]:= FindRoot[Exp[x] == x^2 + 2, {x, -1}]
Out[2]= {x -> 1. 3190736768573652}
Mathematica can do integral and differential calculus, in particular evaluation of integrals in terms of special functions. Calculus ( Latin, calculus, a small stone used for counting is a branch of Mathematics that includes the study of limits, Derivatives Special functions are particular mathematical functions which have more or less established names and notations due to their importance for the Mathematical analysis For example:
In[3]:= Integrate[x/Sin[x], x]//OutputForm Out[3]= x (Log[1 - EI x] - Log[1 + EI x]) + I (PolyLog[2, -EI x] - PolyLog[2, EI x])
Here, E and I are the fundamental constants e and i respectively, and PolyLog[s,z] is the polylogarithm function
. The Mathematical constant e is the unique Real number such that the function e x has the same value as the slope of the tangent line Definition By definition the imaginary unit i is one solution (of two of the Quadratic equation The polylogarithm (also known as de Jonquière's function) is a Special function Li s ( z) that is defined by the sum
Symbolic sums can be calculated. For example:
In[4]:= Sum[z^k/k^s, {k, 1, Infinity}]
Out[4]= PolyLog[s, z]
Mathematica permits multiple approaches to programming. Consider this example: we want a table of values of gcd(x, y) for 1 ≤ x ≤ 5, 1 ≤ y ≤ 5.
The most concise approach is to use one of the many specialized functions:
In[3]:= Array[GCD, {5, 5}]
Out[3]= {{1, 1, 1, 1, 1}, {1, 2, 1, 2, 1}, {1, 1, 3, 1, 1}, {1, 2, 1, 4, 1}, {1, 1, 1, 1, 5}}
There are at least three other approaches to this:
In[4]:= Table[GCD[x, y], {x, 1, 5}, {y, 1, 5}]
Out[4]= {{1, 1, 1, 1, 1}, {1, 2, 1, 2, 1}, {1, 1, 3, 1, 1}, {1, 2, 1, 4, 1}, {1, 1, 1, 1, 5}}
An APL-style approach:
In[5]:= Outer[GCD, Range[5], Range[5]]
Out[5]= {{1, 1, 1, 1, 1}, {1, 2, 1, 2, 1}, {1, 1, 3, 1, 1}, {1, 2, 1, 4, 1}, {1, 1, 1, 1, 5}}
Outer corresponds to the generalized outer product operator, Range corresponds to the iota operator. Outer admits general functions, whether they be named, or anonymous. Anonymous functions are specified by using #n to as the function argument and appending an &. The above function could be equivalently specified as Outer[GCD[#1, #2] &, Range[5], Range[5]].
An approach using loops:
In[6]:= l1 = {}; (* initialize as empty list, since we want a list in the end *)
Do[l2 = {};
Do[l2 = Append[l2, GCD[i, j]], {j, 1, 5}];
l1 = Append[l1, l2], (* append the sublist, that is, the row *)
{i, 1, 5}]
In[7]:= l1
Out[7]= {{1, 1, 1, 1, 1}, {1, 2, 1, 2, 1}, {1, 1, 3, 1, 1}, {1, 2, 1, 4, 1}, {1, 1, 1, 1, 5}}
Observe that this solution is considerably larger than the previous ones.
One guiding principle in Mathematica is a unified structure behind almost all objects representable in Mathematica. For example, the expression x4 + 1 if entered will be represented as if it were written:
In[8]:= x^4 + 1 Out[8]= 1+x4
If the FullForm command is used on this expression however:
In[9]:= FullForm[x^4 + 1] Out[9]= Plus[1, Power[x, 4]]
All objects in Mathematica, except atomic ones such as symbols, numbers, and strings, have the basic form head[e1, e2, . . . ] (which may be displayed or entered in some other fashion). For example, the head of the above expression is Plus. Lists have this structure too, where the head is List, and the elements are e1, e2, etc. The concept of head is defined for atomic objects as well (Symbol for symbols, Integer for whole numbers, etc. ), but they have no extractable subparts.
The principle permits ordinary expressions unrelated to lists to be operated on with list operators:
In[10]:= Expand[(Cos[x] + 2 Log[x^11])/13][[2, 1]] Out[10]= 2/13
The reverse can also occur -- lists can be modified to behave like ordinary expressions:
In[11]:= Map[Apply[Log, #] &, {{2, x}, {3, x}, {4, x}}]
Out[11]= {Log[x]/Log[2], Log[x]/Log[3], Log[x]/Log[4]}
where the Apply function changes the head of its second argument to that of the first, and Map behaves like the map function found in many functional languages. In Mathematics and Computer science, higher-order functions or '''functionals''' are functions which do at least one of the following Note that Log[b,x] is the base b logarithm, which is converted to Log[x]/Log[b] on input. In Mathematics, the logarithm of a number to a given base is the power or Exponent to which the base must be raised in order to produce
Because of this equivalence between a regular mathematical object represented in Mathematica to that of a simple list structure, some built-in Mathematica functions permit threading, where functions map themselves over lists without much further specification. Indeed, Apply threads itself over lists when invoked as
In[12]:= Apply[Log, {{2,x}, {3,x}, {4,x}}, 1]
Out[12]= {Log[x]/Log[2], Log[x]/Log[3], Log[x]/Log[4]}
where the third argument being a 1 specifies that Apply replaces the heads of its argument only at the first level in the list, which is what we want, and is equivalent to the above example.
When writing a large piece of code ("Module"), variables references are by default global rather than local and must be declared at the top rather than inline, violating DRY. Contrast with redundancy and mirror. Don't Repeat Yourself (DRY also known as Single Point of Truth is a process philosophy aimed
Mathematica is proprietary software protected by both trade secret and copyright law. Proprietary software is Computer software on which the producer has set restrictions on use private modification copying, or republishing. A trade secret is a Formula, practice, Process, Design, instrument, Pattern, or compilation of Information which Copyright is a legal concept enacted by Governments, giving the creator of an original work of authorship Exclusive rights to control its distribution usually for [18]
A regular single-user license for Mathematica 6. 0 includes one year of service which includes updates, technical support, a home use license, a webMathematica Amateur license. [19] and a Wolfram Workbench license. Discounts are available for government, charity, educational, pre-college, school, student and retiree use and depend on geographical region. Educational site licenses allow use by students at home. A license manager similar to Flexlm is available to provide efficient sharing of licenses within a group.
Mathematica 6 is supported on various versions of Microsoft Windows, Apple's Mac OS X, Linux, Sun's Solaris (UltraSPARC and AMD x86 processors only), HP's HP-UX and IBM's AIX platforms. Microsoft Windows is a series of Software Operating systems and Graphical user interfaces produced by Microsoft. Mac OS X (mæk oʊ ɛs tɛn is a line of computer Operating systems developed marketed and sold by Apple Inc, the latest of which is pre-loaded on all currently Linux (commonly pronounced ˈlɪnəks Solaris is a Unix -based Operating system introduced by Sun Microsystems in 1992 as the successor to SunOS. HP-UX (Hewlett Packard UniX is Hewlett-Packard 's proprietary implementation of the Unix Operating system, based on System V (initially All platforms are supported with 64-bit implementations. [20]
Mathematica built on the ideas in Cole and Wolfram's earlier Symbolic Manipulation Program (SMP). Symbolic Manipulation Program, usually called SMP, was a Computer algebra system designed by Chris A [21][22]
Wolfram Research has released the following versions of Mathematica: