📜 ⬆️ ⬇️

Mathematica 10 is released, containing 700+ new features and an incredible amount of R & D.


Translation of Stephen Wolfram's article on the Wolfram Mathematica 10 system, which was released on July 9, 2014.
The original text can be found here .
I express my deep gratitude to those who helped me translate this article: Vladislav Glagolev ( Himura ), Sylvia Torosyan and Rukk Natalia Samuilovna .

This summer we are releasing a truly huge range of new technologies. Two weeks ago we launched Wolfram Programming Cloud . And today, I am pleased to present to you a largely updated version of Mathematica : Mathematica 10 .

Wolfram Mathematica 10
')
We released Mathematica 1 a little over 26 years ago, on June 23, 1988. Since then, we have constantly and systematically made Mathematica even more, more powerful, wider, and deeper. But Mathematica 10, released today, is perhaps the biggest leap in functionality in the entire history of Mathematica .

Personally, I am very pleased after so many years to see how well the principles have manifested themselves, which I defined at the very beginning of the development of Mathematica . And it's also very nice to see how far we have come thanks to our talented employees and the hard work of developing Mathematica for almost three decades.

Probably, we will never be able to find out if our commitment to R & D (R & D) for so many years has a purely commercial meaning. But it always made sense to me - and the success of Mathematica , like our entire company, allows us to make plans for the distant future, continuously investing in building the most powerful technology layer by layer.

One of our latest projects is the creation of the Wolfram Language (Wolfram Language), derived from the combination of Mathematica , Wolfram | Alpha and other technologies. As a result, Mathematica has now become the main application based on the Wolfram Language (Wolfram Language).

But Mathematica still, to a large extent, retained its individuality, as our oldest flagship product, as well as a system that has continuously changed the concept of technical computing for almost a quarter of a century.

And today in Mathematica 10 you can see more new functionality than in any of the previous versions of Mathematica . It is pleasant to observe such a long curve of the constantly accelerating development process and to realize that more new functions were added to Mathematica 10 than there were in the whole Mathematica 1.

Mathematica functions over time, by version

So what is the new functionality of Mathematica 10? This is a mix of completely new areas and directions (for example, geometric calculations , machine learning, and geographical calculations ), along with extensive enhancement and expansion of existing areas . As well as a mixture of various objects that I had already planned for a long time to solve by our company, but the implementation of which required the development of appropriate technologies by us, along with those objects, the understanding of the possibility of implementation of which our company came to me only recently.

New functionality in Mathematica 10

When you first start Mathematica 10, there are some things you will notice right away. First, Mathematica 10 immediately establishes a connection directly to the Wolfram Cloud (Wolfram Cloud). Unlike Wolfram Programming Cloud ( Wolfram Programming Clouds) - or Mathematica Online Coming Soon ( Mathematica Online) - Mathematica 10 does not launch its interface or computing in the cloud. Instead, it supports all the benefits of running directly on your local computer - but it connects to the Wolfram Cloud (Wolfram Cloud), so it can have files stored in the cloud, work with the cloud API and other cloud capabilities, and it also has access to the cloudy parts of the Wolfram Knowledgebase ( Wolfram Knowledge Base).

If you are the “current” user of Mathematica , then you will notice some changes at the beginning of working with the document (laptop) of Mathematica 10. Now everywhere there is autocompletion of the commands entered - for the values ​​of function options, strings - everywhere. There is also a drop-down help menu that immediately provides function templates or documentation for them. There is also - at the request of the user community - the possibility of multiple undo (Undo). It is extremely difficult to determine how and when correct cancellation of calculations and other actions in Mathematica is permissible, however, in Mathematica 10 this problem — repeated cancellation of actions — is solved.

Another noticeable change in Mathematica 10 is that the charts and graphs have, by default , a new, improved look (you can of course return to the previous look with the appropriate value of the PlotTheme option).

Some new default styles in Mathematica 10

And for many other areas, this is just the tip of the iceberg. In the invisible part of the iceberg there is a new, very powerful mechanism for changing “graphic themes” - when instead of many individual options you only need to define a general theme for a graphic, for example, “web” (web), ”minimal” (minimal) or “scientific” (scientific ).

Plot themes in Mathematica 10

What about algorithms? Mathematica 10 has an amazing amount of new algorithms. Many new algorithms, many of which we have developed for internal use. For example, an algorithm that allows Mathematica 10 to solve in the normal mode systems of polynomial equations with numerical coefficients that have more than 100,000 solutions . Or a cluster of algorithms, which we developed for the first time, which gives exact symbolic solutions for all types of hybrid differential equations or differential equations with delay , turning such equations into standard, ordinary differential equations .

Solving differential equations in Mathematica 10

Of course, during the development of algorithms we are in high spirits. Because our long-term contribution to the design of coherent systems now means that when developing any algorithm, we can easily combine the algorithmic capabilities of the entire system. If, for example, we develop a numerical algorithm, then we can easily create for this complex algebraic preliminary calculations or apply graph theory, or combinatorial optimization or something like that. And we can create new types of algorithms that combine all their types, as well as approaches, in ways that were previously impossible.

From the very beginning, one of our basic principles was to automate everything as much as possible - and create not just algorithms, but complete meta-algorithms that automate the whole process of transition from the “goal of calculations” to how and by what algorithm calculations, to achieve this goal. We have developed a method of similar automation, which has allowed us to “absorb” more and more areas of computing over the years, while making them available not only to experts, but also to everyone in the form of ordinary building blocks of calculations.

In Mathematica 10 one of the most important areas in which this happens is machine learning . All types of powerful fundamental algorithms are built into the core of the system: logistic regression, random forests, support vector machines (SVM), etc. And also, all types of data preprocessing procedures and their evaluation. But for the user, all this is represented by the two most automated functions: Classify and Predict . Now, having these functions, it is easy to introduce machine learning to any area.

Machine learning in Mathematica 10

In Mathematica 10 there is a huge range of new algorithmic possibilities in the field of graph theory , image processing , control theory and in many other areas . Sometimes it doesn’t seem surprising to someone that, at least, you can have such and such a function, even though it’s actually more pleasant that it is as perfect as in Mathematica 10. However, in other cases, at first it seems impossible that the function might work.

Tasks are different. Maybe the problem is unsolvable in general or theoretically intractable. Or it is badly conditioned. Or there are too many options. Or it requires too much data. It is noteworthy that usually, using the mechanisms built into Mathematica and Wolfram Language (Wolfram Language), it becomes possible to solve such problems, as well as to create functions that cover a wide range of important applied problems associated with this task.

Another important task is how to present the most diverse data in a suitable format and make calculations on them. Its solution is the strongest side of the Wolfram Language (Wolfram Language), which is constantly being improved, and all the improvements go straight to Mathematica 10. For example, in Mathematica 10 there is a direct symbolic form for the following data types: date and time , time series , geolocation , geodata , etc.

An example of geographic visualization in Mathematica 10

The Wolfram Language has ways for a symbolic representation of an incredibly wide range of real-world phenomena. But what about the data on these phenomena? Many of them are available in the Wolfram Knowledgebase ( Wolfram Knowledge Base) in the cloud. Soon we are going to launch the Wolfram Discovery Platform , which is designed for large-scale access to data from the cloud. And since this is not the usual way to use Mathematica (the basic versions of Mathematica 10 are designed only for small amounts of requested data from the cloud), the expansion of capabilities will require the use of a “currency” - Wolfram Cloud Credits .

However, in Mathematica 10, there are many exciting new things that can be done with just a small amount of data from the Wolfram Knowledgebase (Wolfram Knowledge Base).

Some time ago I found a list of what is needed for Mathematica , which I wrote back in 1991. Some items from this list have been made for several years. But the majority required the development of a huge stack of technologies, the construction of which required many years. At the same time, at least one item could not be implemented all these years, right up to the present.

In this list, he was simply referred to as “PDEs” (Partial Differential Equations). But behind these four letters lie hundreds of years of development of mathematics and a huge number of required algorithms and technologies. Yes, of course, Mathematica could work with PDE (partial differential equations) for the past 20 years. But in Mathematica, we always strive for the greatest possible generality and reliability of the built-in algorithms, and this was precisely the greatest difficulty. In particular, we wanted the system to cope with the PDCs defined on areas of arbitrary geometry. And although there are standard methods, say, the finite element method, solutions of PDE for various regions and bodies, they, nevertheless, do not provide a reasonably good way to describe the corresponding geometry of regions and bodies in sufficient generality.

Over the years, we have made great efforts to develop Mathematica and what is now called the Wolfram Language (Wolfram Language). At the same time, part of this development process led to the development of extensive computational concepts of what is traditionally regarded as mathematical concepts. This is hard, but fascinating, intellectual work, which consists in, in fact, studying all the "underside" of mathematics, in order to understand new, often more general, computational ideas.

A few years ago we did this for probability theory and everything that is closely connected with it, say, statistical distributions and random processes . Now, in Mathematica 10, we did this for another area: geometry .

Geometry examples in Mathematica 10

What we actually got is a truly fundamental extension of the concept of “area”, which can be represented in a computational form, and it becomes an important building block for many things that will appear in the future. On the basis of this, new, very powerful capabilities have been created in Mathematica 10, including the solution of the PDC and work with finite elements.

So, what is difficult about representing geometry in computational form? The problem is not that you need to work with different cases - there are many methods for this - but to get something really common, expandable later, easy to apply to all kinds of frequent and special cases. We have been thinking about how to implement this for more than 10 years and it's great to finally have a solution.

It turns out that mathematics actually does part of this work for us - since it follows that there are different types of geometric objects, from points to lines, surfaces and volumes, which, from the point of view of mathematics, differ only in dimension. In computer systems, however, these objects usually appear quite differently. 3D graphic systems, for example, tend to work with points, lines, and surfaces, but, in essence, they do not have the concept of volume or body. CAD – systems (CAD), on the other hand, work with volumes and bodies, but usually do not work with points, lines, and surfaces. GIS-systems (GIS) can work with borders and internal points of regions, but only in two-dimensional space (on a plane).

So why can't we "just use math"? The problem is that special mathematical theories — and concepts — provide, again, the opportunity to work, or at least are suitable, only for special cases. So, for example, you can describe geometric objects in terms of equations and inequalities, in fact, using algebraic geometry in the field of real numbers - but in fact it is convenient only for simple "mathematical" domains. You can use combinatorial topology, which is essentially based on the grid representation of domains and is really quite a general method that is very difficult to use directly, and also it works with great difficulty with unlimited domains. Alternatively, one can use differential geometry that works well with manifolds, but is hardly applied to objects of mixed dimension and is not closed with respect to operations of Boolean algebra.

What we have created works, in essence, “like mathematics”: this is a general symbolic representation of geometric objects, which makes it convenient to use any of these various mathematical or computational approaches. And instead of having different types of various concepts, such as, say, “a point in a polygon,” “a point in a grid,” “a point on a line,” etc., and the functions that work with them, in our system everything is based on one common function RegionMember . Similarly, concepts such as area area ( Area function), area volume ( Volume ), or arc length ( ArcLength ), along with all their generalizations, are based on a single RegionMeasure function.

As a result, we got a surprisingly uniform and powerful way to work with geometric objects, which easily works with school tasks on triangles , as well as with the most complex geometric objects from the field of physics and technology. What is also important — and characteristic of our approach to everything — is that all these geometric possibilities are deeply integrated with the entire system. So, for example, you can get a solution to an equation (or system) inside a certain region , find the maximum of a function in this region, or, say, calculate the integral over this region , or, for that matter, solve a partial differential equation given in this area, with all the different kinds of boundary conditions that you can easily set.

The geometric language that we received is very simple and straightforward. But it is based on a huge amount of algorithmic functionality, which is based on a large number of areas that we have developed over the past quarter century. For the average user, there are several indicators of the complexity of the device of this language, although perhaps a treatise occupying several hundred pages devoted to all sorts of details of manual adjustment of the methods for working with finite elements in Mathematica 10 will show this with greater clarity.

Geometry is only one of the new areas. We seek community in other areas too. So, let's say in the field of image processing , in which now our system supports the work of most image processing operations not only in 2D (for ordinary flat images), but also for 3D images. Or, in the field of all sorts of calculations on graphs , where everything now works in a uniform way for both directed graphs, and for nondirectional graphs, mixed graphs, multigraphs, and weighted graphs. As usual, it took the development of various types of algorithms and methods to work with these tasks, which are actually interdisciplinary, which means that they have not been studied before, although it is obvious that they can be found in practice.

As I already said, there are things in Mathematica 10 that we were able to accomplish because our technology stack has already reached the point where the solution of these problems becomes possible. There are others who have solved problems, including those that we have been thinking about for the past ten or twenty years. An example is the system of working with mathematical operations and operators in an analytical form in Mathematica 10.

In a sense, what we are doing is transferring the idea of ​​a symbolic representation of objects to a new level. , , , , , . , f , . , , , ? , . “” , , (), .

Inactive functionality in Mathematica 10

— , , , , , , , , , .

Mathematica 10, . , Mathematica , , , . , , . , . . Mathematica 10 , , .

Wolfram Language ( Wolfram) Mathematica , Mathematica 10. , , . - , “ ” , , , Wolfram Language ( Wolfram). , , -.

Using associations in Mathematica 10

Wolfram Language ( Wolfram) : , , . , , Mathematica . . , Wolfram Language ( Wolfram) Mathematica .

. — , , . — R&D ().

( 700 ), . Mathematica 10. 19 ( 588 ) Mathematica 9, 700 Mathematica 10. , .

, , — , , , , .

R&D, Mathematica 10. , , 26 , , . Mathematica . , 26 , . .

, «» R&D : Mathematica 10 .

Source: https://habr.com/ru/post/229347/


All Articles