In this article, I want to show some methods and tools for creating interactive software modules in Wolfram Mathematica with the ability to symbolic calculations, illustrate mathematical transformations and calculations, graphically visualize functions and data, export generated dynamic images.
Introduction
Computer algebra systems emerged in the middle of the 20th century at the junction of mathematics and computer science and are intensively developing as a fundamental scientific direction - computer algebra, namely, the science of efficient algorithms for calculating mathematical objects. The synonyms for the term computer algebra include such concepts as symbolic calculations, analytical calculations, analytical transformations, formal calculations.
In the second half of the last century, the main results of computer algebra were obtained in the theory of Gröbner bases, factorization of polynomials, and integration in a finite form. At present, the theory is developing and the field of application of factorization algorithms is expanding, covering, for example, the case of polynomials with coefficients from finite fields or from fields of algebraic numbers. Many scientific works are devoted to the further study of Gröbner bases and their generalizations (Shirshov-Gröbner bases, involutive bases), finding optimal algorithms for their construction. Solving cryptography problems stimulated research on the factorization of natural numbers, on algorithms for generating large primes, checks for simplicity, on algorithmic problems of the arithmetic of elliptic curves.
A lot of mathematical problems that can be solved using computer algebra systems are constantly expanding. Considerable efforts of researchers are directed to the development of algorithms for calculating topological invariants of manifolds, knots, calculating topological invariants of manifolds of knots of algebraic curves, cohomology of various mathematical objects, arithmetic invariants of rings of integer elements in fields of algebraic numbers. Another example of modern research is quantum algorithms, which sometimes have polynomial complexity, while existing classical algorithms have exponential complexity.
Computer algebra is represented by theory, technology, software. The applied results include the developed algorithms and software for solving problems using a computer, in which the initial data and results are in the form of mathematical expressions, formulas. The main product of computer algebra has become computer algebra software systems. There are a lot of systems in this category, many publications are devoted to them, systematic updates are published with the presentation of the capabilities of new versions.
Using the Code
Analytical transformations, calculations, work with documents in Mathematica comes down to a set of expressions (for example, mathematical) in the input sections and their execution. To get the result, while in the executable section, press the SHIFT and ENTER keys simultaneously. To simplify expressions, Mathematica uses various functions, the simplest of which is Simplify
. This function performs algebraic transformations of the specified expression (expansion of brackets, factorization, etc.), and as a result, returns its simplified form. As an additional argument to this function, you can set conditions on the variables included in the simplified expression. Such conditions can be equations, inequalities, an indication of the type of a variable. Let's look at an example (Image 1):
Image 1 - Simlife function example
In this example, we simplify the first expression using the Simplify
function.
You can work with documents (software applications) prepared in Mathematica even without an installed system, but then the free Wolfram CDF Player have to be installed. It is important that the CDF format software modules retain the functionality of dynamic interactivity, all the tools for user interaction with the application, programmed in Mathematica. Here are a couple of examples and explanations of the basic simplest tools of interactivity when performing analytical transformations and graphic visualization. In the next example, it is possible to manipulate transformations, expression calculations using sliders. The animation parameters can be changed by pressing the buttons on the control panel (opened by clicking on the "+" button to hide, you can "-"), the action of each button is explained if you move the pointer to it. This code can manipulate the result dynamically.
Manipulate[
Expand[(x + ey)^a], {{a, 10, "exponent a"}, 0, 30, 1,
Appearance -> "Labeled"}, {{e, 1, "coefficient"}, -10, 10, 1,
Appearance -> "Labeled"}]
The result is shown in image 2.
Image 2 - Manipulating of the result
Moreover, you can use various manipulation elements when constructing graphics. Consider the instance on image 3.
Image 3 - Manipulation graphic elements
As you can see from the example, we can manipulate the graph. Another of the most powerful parts of graphics in Mathematica is its interactivity, high speed of formation and output of graphics, which is especially important when rendering 3D graphics. Rotation, scaling, movement of 3D objects provide a clearer visual representation; such actions allow you to consider objects from any angle and demonstrate them in the best possible angle. Controls for 3D objects consist of different tools such as scaling, rotations around axes and center. Let's look at an example:
Graphics3D[{EdgeForm[{Thick, Red}], FaceForm[Opacity[0.5]],
PolyhedronData["TriangularCupola", "Faces"]}, ImageSize -> Large,
ViewPoint -> {-2, -1, 1}]
We have the result (Image 4).
Image 4 - 3D graphics technology in the Worfram Mathematica
This is just a small part of what you can do in Wolfram Mathematica, moreover, with the help of different manipulators, you can create a user interface. Wolfram Mathematica provides the ability to create your own user interfaces using its extremely simple symbolic interface design technologies. It is possible to build simple interactive models very quickly and gradually evolve them to the scale of large applications.
Conclusion
In conclusion, my point is that you shouldn't undervalue modern computer algebra systems because they allow you to do amazing things.
History
- 10th November, 2020: Initial version