Esoterics      11/18/2023

Development of a program for performing calculations on matrices. Programs

With the development of computer technology, automated programs for calculations and calculations began to appear more and more often. Many of them are presented, for example, on our website completely free of charge. Downloading them is not difficult. There are also paid applications, but on our website you will find only proven free programs for calculations and calculations.

It goes without saying that computing and calculation programs touch almost all areas of science and technology. Among such applications you can find quite a lot of software products, ranging from ordinary, engineering or scientific calculators, to entire computing systems and environments designed for more complex calculations. Naturally, many of the latest software products are not free, however, if you search hard, especially on our website, you can download them absolutely free.

So, the simplest programs include all kinds of calculators and programs for solving algebraic and trigonometric equations, matrices, vector systems, complex numbers, calculating function values, integrals, logarithms, etc. In most cases, such programs for calculations and calculations not only produce the final result, but also show a clear progress of the solution. In addition, they are able to build graphs of functional dependencies or, say, determine the extrema of functions. Such graphs can be presented in two-dimensional or three-dimensional form. It seems that functionally they are primarily designed for schoolchildren and students. There are quite a lot of them on the Internet. All that remains is to find the desired software product and download it. Again, many programs are distributed absolutely free of charge and have no restrictions on the period of use. You can also use the search on our website.

The situation is more complicated if we consider programs for calculations and calculations, which are highly complex automated systems. Here you can perform a wide variety of calculations. For example, these could be tensor equations. However, such systems are not limited only to mathematical functions. You can use them in completely different areas, say, for chemical equations, calculations of the strength of materials, or building various models of the behavior of matter in the field of physics. We are not talking about more complex systems in the field of astronomy that are used by aerospace agencies and observatories. It’s simply not possible to download such programs for free, because almost all developments in this area are top secret.

However, despite this, complex computing systems are quite often distributed free of charge and can be downloaded. You can find them on our website. As for such systems, it is enough to set the initial conditions, and the program will select the most optimal parameters or the most rational solution. You understand how much work and brains the developers themselves put into them.

Development of a program for performing calculations on matrices

Introduction

matrix programming language

Today, mathematical programming is an important component of all programming. Large and complex calculations are made simple thanks to simple programs.

In this course work, a program was created for calculations on matrices.

MSVisualStudio 2008 and the C++ programming language were chosen as the programming environment.

.
Vector

A matrix consisting of only one column or row is called a vector. The dimension of a vector is the number of its elements.

1 Sum of two vectors


Then the sum of vectors will be called the following vector:

1.2 Difference of two vectors

Let the vectors be represented in linear space like this:


Then the difference of vectors will be called the following vector:

1.3 Product of a vector and a number

If there is some number x and a vector .

Then the product of the vector and the number x will be called the following vector

1.4 Dot product of two vectors

The scalar product of two vectors and , specified by their coordinates, can be calculated using the formula.

2.
Classes

A class is a type of structure that allows you to include in the type description not only data elements, but also functions (element functions or methods).

To restrict access to class elements, the following access specifiers are used:

· public - no access restrictions;

· protected - available only in generated classes;

· private - available only in its class.

1 Constructors and destructors

Let's add the function Vector(int sz) to the class

This function is called a constructor and is used to initialize the data object being created. The name of the constructor must match the name of the class, the constructor must not return values ​​and contain a return statement. Its type is not explicitly described. Constructor can be overloaded, so any new data type can have multiple constructors.

~Vector() is a special operator called a destructor. It is necessary in order to correctly terminate the existence of our object, that is, to free up memory on the heap.

A destructor, like a constructor, must not return a value and must have an explicit type declaration. Unlike constructors, which can be several for the same class, a destructor must be one and must not have arguments. (const Vector &A) is called a copy constructor. It is used when creating an object and initializing it with an object of the same type.

In addition, the copy constructor is used when initializing a formal parameter of a function in the case of passing an object to it by value, and when returning an object from a function using the return statement. When passing references and pointers, the copy constructor is not used.

The implicit copy constructor provides a simple element-by-element copy of one object to a second. This type of copying is often called superficial.

2 Operation overload

Most C++ operations can be overloaded for new data types. To overload an operation, you must create a function with a name consisting of the keyword operator and the sign of the operation being overloaded. The number of parameters of this function is determined by whether a single or double operation is overloaded, as well as the presence of implicit elements in the class methods.

Overloading operations involves introducing two interrelated features into the language: the ability to declare several procedures or functions with the same names in one scope and the ability to describe your own implementations of operations.

For example, to overload the addition operator, you would define a function called operator+.

Operator functions of overloaded operators, with the exception of new and delete, must obey the following rules:

an operator function must either be a non-static member function of a class, or take an argument of a class type or enum type, or an argument that is a reference to a class type or enumerated type;

an operator function cannot change the number of arguments or operator precedence and order of execution compared to using the corresponding operator for built-in data types;

A unary operator operator function declared as a member function must have no parameters; if it is declared as a global function, it must have one parameter;

an operator function cannot have default parameters, etc.

3 Friendly features

According to the concept of C++ data encapsulation, a function that is not a member of a class cannot access its private members. The C++ language implements the ability to bypass this limitation with the help of friends. C++ allows you to declare 2 types of class friends: a friend function or a friend class. Friend functions are not members of the class, but still have access to its private members. Moreover, one such function can have access to the private members of several classes. To declare a function to be friendly to a class, its prototype is included in the definition of that class, preceded by the keyword friend. ostream&operator<<(ostream& os, const Vector& A)

A friend function is not a member of the class in which it is declared. Therefore, when calling a friend function, you do not need to specify the name of the object or a pointer to the object and the access operation to the class member (dot or arrow). A friendly function gains access to private members of a class only through an object of the class, which therefore must either be declared inside the function or passed to it as an argument.

A function can be friendly to several classes at once.

4 Implicit this pointer

Each class method contains as data the following pointer, passed when calling the method as a parameter:

type_name *this;

This pointer represents the address of the specific object on which the method was called.

It is possible to use the this pointer to access class elements, but it is hardly advisable, since this is already the default. It is necessary to use this explicitly only in cases where you need to work directly with object addresses, for example, when organizing dynamic data structures.

Program code

#include"stdafx.h"

#include

#include"conio.h"

#include"time.h"namespace std;

// CLASS VectorVector

(:*V;sz; // number of lines:

// default constructor();

// constructor(int sz);

// copy constructor(const Vector &A);

// filling the vector with random numbers SetVector();

// overloading the addition operatoroperator+(Vector &);

// overloading the subtraction operator operator-(Vector &);

// overloading the operator of multiplication by a numberoperator*(const int&);

// overloading the operator multiplying a vector by a vectoroperator*(Vector &);

// overloading the output operator into the streamostream&operator<<(ostream& os, const Vector& A);

// destructor

// Default constructor::Vector()

// Constructor::Vector(int _sz)

(= _sz;= new double ;(int i = 0; i< sz; i++)[i] = 0;

// Copy constructor::Vector(const Vector &A)

(= A.sz;= new double ;(int i = 0; i< sz; i++)[i] = A.V[i];

// Filling the vector with random numbersVector::SetVector()

((int i = 0; i< sz; i++)

([i]=(double)((rand()%200)-100.0);

// Overloading the assignment operator& Vector::operator =(Vector &A)

)= new double ;= A.sz;(int i = 0; i< sz; i++)[i] = A.V[i];*this;

// Addition of vectorsVector::operator+(Vector &A)

(temp(sz);(sz!=A.sz)

{<<"Сложение векторов невозможно.\n"

((int i = 0; i< sz; i++).V[i] = V[i] + A.V[i];temp;

// Subtract vectorsVector::operator-(Vector &A)

(temp(sz);(sz!=A.sz)

{<<"Сложение векторов невозможно.\n"

"Vector sizes do not match!\n"

"The program has terminated.\n";(0);

((int i = 0; i< sz; i++).V[i] = V[i] - A.V[i];temp;

// Multiplying a vector by a numberVector::operator*(const int&k)

(temp(sz);(int i = 0; i< sz; i++).V[i] = V[i]*k;temp;

// Multiplying a vector by vectorVector::operator*(Vector &A)

(temp(1);(int i = 0; i< sz; i++).V += V[i] * A.V[i];temp;

// Destructor::~Vector()

// Output operation&operator<<(ostream& os, const Vector& A)

{<< "\n";(int i = 0; i < A.sz; i++)

{<< A.V[i] << "\t";

)_tmain(int argc, _TCHAR* argv)

((LC_CTYPE, "Russian_Russia.1251");((unsigned)time(NULL));k, l, m, x;numb;<< "Введите размеры векторов: " << endl;<< "\tПервый вектор: ";>>k;<< endl << "\tВторой вектор: ";>>l;<< endl << "\tВведите число: " ;>> x;(k == l)= k;

{<< "Размеры векторов не совпадают. Операции невозможны";

)v(k), s(l), res(m);.SetVector();.SetVector();<< endl << v << endl;<< s << endl;<< "\nВыберете операцию:";<< "\nСложение двух векторов №1";<< "\nРазность двух векторов №2";<< "\nУмножение двух векторов №3";<< "\nУмножение вектора на число №4";<< "\nВыход - введите 0\n";>>numb;<< endl;(numb == 0)0;

Harvey Deitel, Paul Deitel. How to program in S. - Binom-Press, 2008. - 1024 p.

Symbolic, or, as they also say, computer mathematics or computer algebra, is a large section of mathematical modeling. In principle, programs of this kind can be classified as computer-aided design engineering programs. Thus, in the field of engineering design there are three main sections:

  • CAD - Computer Aided Design;
  • CAM - Computer Aided Manufacturing;
  • CAE - Computer Aided Engineering.

Today, serious design, urban planning and architecture, electrical engineering and a host of related industries, as well as technical educational institutions, can no longer do without computer-aided design (CAD), production and calculation systems. And mathematical packages are an integral part of the world of CAE systems, but this part cannot in any way be considered secondary, since some problems cannot be solved at all without the help of a computer. Moreover, today even theorists (the so-called pure, not applied mathematicians) resort to systems of symbolic mathematics, for example, to test their hypotheses.

Just some 10 years ago, these systems were considered purely professional, but the mid-90s became a turning point for the global market of CAD/CAM/CAE systems for mass use. Then, for the first time in a long time, packages for parametric modeling with industrial capabilities became available to users of personal computers. The creators of such systems took into account the requirements of a wide range of users and thus gave the opportunity to tens of thousands of engineers and mathematicians to use the latest scientific achievements in the field of CAD/CAM/CAE systems technology at their personal workstations.

So what can mathematical modeling programs do? Do they really require scientists to be able to program in certain algorithmic languages, debug programs, catch errors and spend a lot of time getting results? No, those days are long gone, and now mathematical packages use the principle of model construction, rather than the traditional “art of programming.” That is, the user only poses the problem, and the system finds the methods and algorithms for solving it itself. Moreover, such routine operations as opening parentheses, transforming expressions, finding roots of equations, derivatives and indefinite integrals are independently carried out by the computer in symbolic form, and with virtually no user intervention.

Modern mathematical packages can be used both as a regular calculator, and as a means to simplify expressions when solving any problems, and as a graphics or even sound generator! Interface with the Internet has also become standard, and HTML pages are now generated as part of the calculation process. Now you can solve a problem and at the same time publish the progress of its solution to your colleagues on your home page.

We can talk about mathematical modeling programs and possible areas of their application for a very long time, but we will limit ourselves to only a brief overview of the leading programs, indicating their common features and differences. Currently, almost all modern CAE programs have built-in symbolic calculation functions. However, Maple, MathCad, Mathematica and MatLab are considered the most well-known and suitable for mathematical symbolic calculations. But, while reviewing the main symbolic mathematics programs, we will also point out possible alternatives that are ideologically similar to one or another leading package.

So what do these programs do and how do they help mathematicians? The basis of a course in mathematical analysis in higher education is made up of such concepts as limits, derivatives, antiderivatives of functions, integrals of various types, series and differential equations. Anyone familiar with the basics of higher mathematics probably knows dozens of rules for finding limits, taking integrals, finding derivatives, etc. If you add to this the fact that to find most integrals you also need to remember the table of basic integrals, you get a truly enormous amount of information. And if you don’t practice solving such problems for some time, then a lot is quickly forgotten and to find, for example, a more complex integral, you will have to look in reference books. But taking integrals and finding limits in real work is not the main goal of calculations. The real goal is to solve problems, and calculations are just an intermediate step on the way to this solution.

Using the described software, you can save a lot of time and avoid many errors in calculations. Naturally, CAE systems are not limited to only these capabilities, but in this review we will focus on them.

Let us only note that the range of problems solved by such systems is very wide:

  • conducting mathematical research that requires calculations and analytical calculations;
  • development and analysis of algorithms;
  • mathematical modeling and computer experiment;
  • data analysis and processing;
  • visualization, scientific and engineering graphics;
  • development of graphic and calculation applications.

However, we note that since CAE systems contain operators for basic calculations, almost all algorithms that are not included in the standard functions can be implemented by writing your own program.

Mathematica (http://www.wolfram.com/)

  • 400-550 MB of disk space;
  • operating systems: Windows 98/Me/NT 4.0/2000/2003 Server/2003x64/XP/XP x64.

Wolfram Reseach, Inc., which developed the computer mathematics system Mathematica, is rightfully considered the oldest and most respected player in this field. The Mathematica package (current version 5.2) is widely used in calculations in modern scientific research and has become widely known in the scientific and educational environment. You could even say that Mathematica has significant functional redundancy (in particular, there is even the ability to synthesize sound).

However, it is unlikely that this powerful mathematical system, which claims to be a world leader, is needed by a secretary or even the director of a small commercial company, not to mention ordinary users. But, undoubtedly, any serious scientific laboratory or university department should have a similar program if they are seriously interested in automating the performance of mathematical calculations of any degree of complexity. Despite their focus on serious mathematical calculations, Mathematica class systems are easy to learn and can be used by a fairly wide category of users - university students and teachers, engineers, graduate students, researchers, and even students in mathematics classes in general education and special schools. All of them will find numerous useful possibilities for application in such a system.

At the same time, the program’s extensive functions do not overload its interface and do not slow down calculations. Mathematica consistently demonstrates high speed of symbolic transformations and numerical calculations. Of all the systems under consideration, the Mathematica program is the most complete and universal, however, each program has both its advantages and disadvantages. And most importantly, they have their own adherents, whom it is useless to convince of the superiority of another system. But those who seriously work with computer mathematics systems should use several programs, because only this guarantees a high level of reliability of complex calculations.

Note that in the development of various versions of the Mathematica system, along with the parent company Wolfram Research, Inc., other companies and hundreds of highly qualified specialists, including mathematicians and programmers, took part. Among them there are also representatives of the Russian mathematical school, which is respected and in demand abroad. Mathematica is one of the largest software systems and implements the most efficient calculation algorithms. These include, for example, the context mechanism, which eliminates the appearance of side effects in programs.

The Mathematica system is today considered as the world leader among computer symbolic mathematics systems for the PC, providing not only the ability to perform complex numerical calculations with the output of their results in the most sophisticated graphical form, but also carrying out particularly labor-intensive analytical transformations and calculations. Windows versions of the system have a modern user interface and allow you to prepare documents in the form of Notebooks. They combine source data, descriptions of problem solving algorithms, programs and solution results in a wide variety of forms (mathematical formulas, numbers, vectors, matrices, tables and graphs).

Mathematica was conceived as a system that would automate the work of scientists and analytical mathematicians as much as possible, so it deserves study even as a typical representative of elite and highly intelligent software products of the highest degree of complexity. However, it is of much greater interest as a powerful and flexible mathematical toolkit that can provide invaluable assistance to most scientists, university teachers, students, engineers and even schoolchildren.

From the very beginning, much attention was paid to graphics, including dynamic ones, and even multimedia capabilities - the reproduction of dynamic animation and sound synthesis. The range of graphics functions and options that change their effect is very wide. Graphics have always been the strength of various versions of the Mathematica system and provided them with leadership among computer mathematics systems.

As a result, Mathematica quickly took a leading position in the market for symbolic mathematical systems. Particularly attractive are the system’s extensive graphical capabilities and the implementation of a Notebook-type interface. At the same time, the system provided a dynamic connection between document cells in the style of spreadsheets, even when solving symbolic problems, which fundamentally and advantageously distinguished it from other similar systems.

By the way, the central place in Mathematica-class systems is occupied by a machine-independent core of mathematical operations, which allows the system to be transferred to various computer platforms. To transfer the system to another computer platform, a Front End software interface processor is used. It is he who determines what type of user interface the system has, that is, the interface processors of Mathematica systems for other platforms may have their own nuances. The kernel is made compact enough so that any function can be called from it very quickly. To expand the set of functions, use the Library and a set of Add-on Packages. Extension packages are prepared in the Mathematica systems' own programming language and are the main means for developing system capabilities and adapting them to solve specific classes of user problems. In addition, the systems have a built-in electronic help system - Help, which contains electronic books with real examples.

Thus, Mathematica is, on the one hand, a typical programming system based on one of the most powerful problem-oriented high-level functional programming languages, designed to solve various problems (including mathematical ones), and on the other hand, an interactive system for solving most mathematical problems. tasks online without traditional programming. Thus, Mathematica as a programming system has all the capabilities to develop and create almost any control structures, organize input-output, work with system functions and service any peripheral devices, and with the help of expansion packages (Add-ons) it becomes possible to adapt to the needs of any user (although the average user may not need these programming tools - he will get by with the built-in mathematical functions of the system, which amaze even experienced mathematicians with their abundance and variety).

The disadvantages of the Mathematica system include only a very unusual programming language, which, however, is facilitated by a detailed help system.

Simpler but ideologically similar alternatives to Mathematica include packages such as Maxima ( /) and Kalamaris (developer.kde.org/~larrosa/kalamaris.html).

Note that the Maxima system is a non-commercial open source project. Maxima uses a language similar to Mathematica to do math work, and the graphical interface follows the same principles. Initially, the program was called Xmaxima and was created for UNIX systems.

In addition, Maxima now has an even more powerful, efficient, and user-friendly cross-platform graphical interface called Wxmaxima (http://wxmaxima.sourceforge.net). And although this project currently exists only in beta version, it is gradually turning into a very serious alternative to commercial systems.

As for the Kalamaris program, it is also a new project that has an approach and ideology similar to the Mathematica system. The project is not yet completed, but it is also a good free alternative to such a commercial monster as Mathematica.

Maple (http://www.maplesoft.com/)

Minimum system requirements:

Processor Pentium III 650 MHz;

400 MB of disk space;

Operating systems: Windows NT 4 (SP5)/98/ME/2000/2003 Server/XP Pro/XP Home.

The Maple program (latest version 10.02) is a kind of patriarch in the family of symbolic mathematics systems and is still one of the leaders among universal symbolic computing systems. It provides the user with a convenient intellectual environment for mathematical research at any level and is especially popular in the scientific community. Note that the symbolic analyzer of the Maple program is the most powerful part of this software, therefore it was borrowed and included in a number of other CAE packages, such as MathCad and MatLab, as well as in the packages for preparing scientific publications Scientific WorkPlace and Math Office for Word .

The Maple package is a joint development of the University of Waterloo (Ontario, Canada) and the ETHZ, Zurich, Switzerland. A special company was created for its sale - Waterloo Maple, Inc., which, unfortunately, became more famous for the mathematical study of its project than for the level of its commercial implementation. As a result, the Maple system was previously available primarily to a narrow circle of professionals. Now this company works together with the company MathSoft, Inc., which is more successful in commerce and in developing the user interface of mathematical systems. - the creator of the very popular and widespread systems for numerical calculations MathCad, which have become the international standard for technical calculations.

Maple provides a convenient environment for computer experiments, during which different approaches to a problem are tried, particular solutions are analyzed, and, if programming is necessary, fragments that require special speed are selected. The package allows you to create integrated environments with the participation of other systems and universal high-level programming languages. When the calculations have been made and you need to formalize the results, you can use the tools of this package to visualize the data and prepare illustrations for publication. To complete the work, all that remains is to prepare printed material (report, article, book) directly in the Maple environment, and then you can proceed to the next study. The work is interactive - the user enters commands and immediately sees the result of their execution on the screen. At the same time, the Maple package is not at all similar to a traditional programming environment, which requires strict formalization of all variables and actions with them. Here, the selection of suitable types of variables is automatically ensured and the correctness of operations is checked, so in the general case there is no need to describe variables and strictly formalize the record.

The Maple package consists of a core (procedures written in C and well optimized), a library written in the Maple language, and a developed external interface. The kernel performs most of the basic operations, and the library contains many commands - procedures that are executed in interpretive mode.

The Maple interface is based on the concept of a worksheet, or document, containing input/output lines and text, as well as graphics.

The package is processed in interpreter mode. In the input line, the user specifies a command, presses the Enter key, and receives the result - an output line (or lines) or a message about an erroneously entered command. An invitation is immediately issued to enter a new command, etc.

Maple interface

Working windows (sheets) of the Maple system can be used either as interactive environments for solving problems, or as a system for preparing technical documentation. Executive groups and spreadsheets simplify user interaction with the Maple engine by serving as the primary means by which requests to perform specific tasks and output results are sent to the Maple system. Both of these types of primary tools allow Maple command input.

The Maple system allows you to enter spreadsheets containing both numbers and symbols. They combine the mathematical capabilities of Maple with the familiar row and column format of traditional spreadsheets. Maple spreadsheets can be used to create formula tables.

To make it easier to document and organize calculation results, there are options for breaking into paragraphs, sections, and adding hyperlinks. A hyperlink is a navigation aid. With one click you can go to another point within the worksheet, to another worksheet, to a help page, to a worksheet on a Web server, or to any other Web page.

Worksheets can be organized hierarchically into sections and subsections. Sections and subsections can be expanded or collapsed. Maple, like other text editors, supports a bookmark option.

Computing in Maple

The Maple system can be used at the most basic level of its capabilities - as a very powerful calculator for calculations using given formulas, but its main advantage is the ability to perform arithmetic operations in symbolic form, that is, the way a person does it. When working with fractions and roots, the program does not convert them to decimal form during the calculations, but makes the necessary reductions and transformations into a column, which allows you to avoid rounding errors. To work with decimal equivalents, the Maple system has a special command that approximates the value of an expression in floating point format. The Maple system calculates finite and infinite sums and products, performs computational operations with complex numbers, easily reduces a complex number to a number in polar coordinates, calculates the numerical values ​​of elementary functions, and also knows many special functions and mathematical constants (such as "e" " and "pi"). Maple supports hundreds of special functions and numbers found in many areas of mathematics, science, and engineering. Here are just a few of them:

  • error function;
  • Euler constant;
  • exponential integral;
  • elliptic integral function;
  • gamma function;
  • zeta function;
  • Heaviside step function;
  • Dirac delta function;
  • Bessel and modified Bessel functions.

The Maple system offers various ways to represent, reduce, and transform expressions, such as operations such as simplifying and factoring algebraic expressions and reducing them to different forms. Thus, Maple can be used to solve equations and systems.

Maple also has many powerful tools for evaluating expressions with one or more variables. The program can be used to solve problems in differential and integral calculus, calculus of limits, series expansions, summation of series, multiplication, integral transformations (such as the Laplace transform, Z-transform, Mellin or Fourier transform), as well as to study continuous or piecewise continuous functions.

Maple can calculate the limits of functions, both finite and tending to infinity, and also recognizes uncertainties in the limits. This system can solve a variety of ordinary differential equations (ODEs) as well as partial differential equations (PDEs), including initial condition problems (IVPs) and boundary condition problems (BVPs).

One of the most commonly used software packages in Maple is the linear algebra package, which contains a powerful set of commands for working with vectors and matrices. Maple can find eigenvalues ​​and eigenvectors of operators, compute curvilinear coordinates, find matrix norms, and compute many different types of matrix decompositions.

For technical applications, Maple includes reference books of physical constants and units of physical quantities with automatic conversion of formulas. Maple is especially effective for teaching math. The highest intelligence of this system of symbolic mathematics is combined with excellent mathematical numerical modeling tools and simply stunning possibilities for graphical visualization of solutions. Systems such as Maple can be used both in teaching and for self-education when studying mathematics from the very beginning to the top.

Graphics in Maple

The Maple system supports both 2D and 3D graphics. Thus, you can represent explicit, implicit and parametric functions, as well as multidimensional functions and simple data sets in graphical form and visually look for patterns.

Maple graphical tools allow you to build two-dimensional graphs of several functions at once, create graphs of conformal transformations of functions with complex numbers, and build graphs of functions in logarithmic, double logarithmic, parametric, phase, polar and contour forms. You can graphically represent inequalities, implicit functions, solutions of differential equations, and root hodographs.

Maple can generate surfaces and curves in 3D, including surfaces defined by explicit and parametric functions, as well as solutions to differential equations. At the same time, it can be presented not only in a static form, but also in the form of two- or three-dimensional animation. This feature of the system can be used to display processes occurring in real time.

Note that in order to prepare the result and document research, the system has all the possibilities for choosing fonts for names, inscriptions and other text information on the graphs. In this case, you can vary not only the fonts, but also the brightness, color and scale of the graph.

Specialized Applications

A comprehensive set of powerful Maple PowerTools and packages for areas such as finite element analysis (FEM), nonlinear optimization, and more, fully satisfy users with a university mathematics background. Maple also includes packages of routines for solving problems of linear and tensor algebra, Euclidean and analytical geometry, number theory, probability theory and mathematical statistics, combinatorics, group theory, integral transformations, numerical approximation and linear optimization (simplex method), as well as problems financial mathematics and many, many others.

The Finance software package is designed for financial calculations. With its help, you can calculate the current and accumulated amount of annuity, total annuity, amount of life annuity, total life annuity and interest income on bonds. You can build an amortization table, determine the actual rate amount for compound interest, and calculate the current and future fixed amount for a specific rate and compound interest.

Programming

The Maple system uses a 4th generation procedural language (4GL). This language is specifically designed for the rapid development of mathematical routines and custom applications. The syntax of this language is similar to the syntax of universal high-level languages: C, Fortran, Basic and Pascal.

Maple can generate code that is compatible with programming languages ​​such as Fortran or C, and with the LaTeX typesetting language, which is very popular in the scientific world and is used for publishing. One of the advantages of this property is the ability to provide access to specialized numerical programs that maximize the speed of solving complex problems. For example, using the Maple system, you can develop a certain mathematical model, and then use it to generate C code that matches that model. The 4GL language, specially optimized for the development of mathematical applications, allows you to shorten the development process, and Maplets elements or Maple documents with built-in graphics components help you customize the user interface.

At the same time, in the Maple environment you can prepare documentation for the application, since the package’s tools allow you to create professional-looking technical documents containing text, interactive mathematical calculations, graphs, drawings and even sound. You can also create interactive documents and presentations by adding buttons, sliders and other components, and finally publish documents on the Internet and deploy interactive computing on the Web using the MapleNet server.

Internet compatibility

Maple is the first universal math package to offer full support for the MathML 2.0 standard, which governs both the look and feel of mathematics on the Web. This exclusive feature makes the current version of MathML the primary tool for Internet mathematics and also sets a new level of multi-user compatibility. TCP/IP provides dynamic access to information from other Internet resources, such as real-time financial analysis or weather data.

Development prospects

The latest versions of Maple, in addition to additional algorithms and methods for solving mathematical problems, have received a more convenient graphical interface, advanced visualization and charting tools, as well as additional programming tools (including compatibility with universal programming languages). Starting with the ninth version, import of documents from the Mathematica program was added to the package, and definitions of mathematical and engineering concepts were introduced into the help system and navigation through the help pages was expanded. In addition, the printing quality of formulas has been improved, especially when formatting large and complex expressions, and the size of MW files for storing Maple working documents has been significantly reduced.

Thus, Maple is perhaps the most well-balanced system and the undisputed leader in symbolic computing capabilities for mathematics. At the same time, the original symbolic engine is combined here with an easy-to-remember structured programming language, so that Maple can be used for both small tasks and large projects.

The only disadvantages of the Maple system include its somewhat “thoughtful” nature, which is not always justified, as well as the very high cost of this program (depending on the version and set of libraries, its price reaches several tens of thousands of dollars, although students and researchers are offered cheap versions - for several hundred dollars).

The Maple package is widely distributed in universities of leading scientific powers, research centers and companies. The program is constantly evolving, incorporating new areas of mathematics, acquiring new functions and providing a better environment for research work. One of the main directions of development of this system is to increase the power and reliability of analytical (symbolic) calculations. This direction is most widely represented in Maple. Already today, Maple can perform complex analytical calculations that are often beyond the capabilities of even experienced mathematicians. Of course, Maple is not capable of brilliant guesses, but the system performs routine and mass calculations brilliantly. Another important area is increasing the efficiency of numerical calculations. As a result, the prospect of using Maple in numerical modeling and in performing complex calculations, including with arbitrary precision, has significantly increased. And finally, close integration of Maple with other software is another important direction in the development of this system. The Maple symbolic computing kernel is already included in a number of computer mathematics systems - from systems for a wide range of users such as MathCad to one of the best systems for numerical calculations and modeling, MatLab.

All these features, combined with a well-designed and user-friendly user interface and a powerful help system, make Maple a first-class software environment for solving a wide variety of mathematical problems, capable of helping users effectively solve educational and real-world scientific and technical problems.

Alternative packages

Simpler, but ideologically similar alternatives to the Maple program include such packages as Derive (http://www.chartwellyorke.com/derive.html), Scientific WorkPlace (http://www.mackichan.com/) and YaCaS (www.xs4all.nl/~apinkus/yacas.html).

As we have already said, Scientific WorkPlace (SWP, current version 5.5) was initially developed as a scientific text editor, allowing you to easily type and edit mathematical formulas. However, over time, MacKichan Software, Inc. (developer of Scientific WorkPlace) has licensed the Maple symbol engine from Waterloo Maple, Inc., and the program now combines an easy-to-use math word processor and a computer algebra system in one environment. With built-in computer algebra, you can perform calculations right in the document. Of course, this program does not have the same capabilities as Maple, but it is small and easy to use.

As for YaCaS (an acronym for Yet Another Computer Algebra System), it is a free cross-platform alternative to Maple, built on the same principles. The powerful and highly efficient YaCaS engine is fully implemented in C++ under an open license (OpenSource). The interface, of course, is poorer and simpler than that of its venerable competitors, but quite convenient.

But the small commercial mathematical system Derive (current version 6.1) has existed for quite a long time, but, of course, cannot be considered as a full-fledged alternative to Maple, although it is still attractive to this day for its undemanding nature of PC hardware resources. Moreover, when solving problems of moderate complexity, it demonstrates even higher performance and greater reliability of the solution than the first versions of the Maple and Mathematica systems. However, it is difficult for the Derive system to seriously compete with these systems - both in terms of the abundance of functions and rules of analytical transformations, and in terms of computer graphics capabilities and the convenience of the user interface. For now, Derive is more of an entry-level computer algebra training system.

And although the latest version of Derive 6 for Windows already has a modern, user-friendly interface, it is in many ways inferior to the sophisticated interface of its venerable competitors. And in terms of the ability to graphically visualize calculation results, Derive generally lags far behind its competitors.

MatLab (http://www.mathworks.com/)

Minimum system requirements:

  • processor Pentium III, 4, Xeon, Pentium M; AMD Athlon, Athlon XP, Athlon MP;
  • 256 MB of RAM (512 MB recommended);
  • 400 MB of disk space (only for the MatLab system itself and its Help);
  • operating system Microsoft Windows 2000 (SP3)/XP.

The MatLab system is a mid-level product designed for symbolic mathematics, but is designed for widespread use in the CAE field (that is, it is also strong in other areas). MatLab is one of the oldest, carefully developed and time-tested systems for automating mathematical calculations, built on an advanced representation and application of matrix operations. This is reflected in the very name of the system - MATrix LABoratory, that is, matrix laboratory. However, the syntax of the system's programming language is thought out so carefully that this orientation is almost not felt by those users who are not directly interested in matrix calculations.

Despite the fact that MatLab was originally intended exclusively for computing, in the process of evolution (and now version 7 has already been released), in addition to excellent computing tools, a symbolic transformation kernel was purchased from Waterloo Maple under a license for MatLab, and libraries appeared that provide functions in MatLab that are unique to mathematical packages. For example, the well-known Simulink library, implementing the principle of visual programming, allows you to build a logical diagram of a complex control system from just standard blocks, without writing a single line of code. After constructing such a circuit, you can analyze its operation in detail.

The MatLab system also has extensive programming capabilities. Its C Math library (MatLab compiler) is object-based and contains over 300 data processing procedures in the C language. Inside the package, you can use both MatLab procedures and standard C language procedures, which makes this tool a powerful tool for developing applications (using the C compiler Math, you can embed any MatLab procedures into ready-made applications).

The C Math library allows you to use the following categories of functions:

  • operations with matrices;
  • comparison of matrices;
  • solving linear equations;
  • expansion of operators and search for eigenvalues;
  • finding the inverse matrix;
  • search for a determinant;
  • matrix exponential calculation;
  • elementary mathematics;
  • functions beta, gamma, erf and elliptic functions;
  • fundamentals of statistics and data analysis;
  • searching for roots of polynomials;
  • filtering, convolution;
  • fast Fourier transform (FFT);
  • interpolation;
  • operations with strings;
  • file I/O operations, etc.

Moreover, all MatLab libraries are distinguished by high speed of numerical calculations. However, matrices are widely used not only in such mathematical calculations as solving problems of linear algebra and mathematical modeling, calculation of static and dynamic systems and objects. They are the basis for the automatic compilation and solution of equations of state of dynamic objects and systems. It is the universality of the matrix calculus apparatus that significantly increases interest in the MatLab system, which has incorporated the best achievements in the field of quickly solving matrix problems. Therefore, MatLab has long gone beyond the scope of a specialized matrix system, becoming one of the most powerful universal integrated systems of computer mathematics.

To visualize the simulation, the MatLab system has the Image Processing Toolbox library, which provides a wide range of functions that support visualization of calculations performed directly from the MatLab environment, magnification and analysis, as well as the ability to build image processing algorithms. Advanced graphics library techniques coupled with the MatLab programming language provide an open, extensible system that can be used to create custom applications suitable for graphics processing.

The main tools of the Image Processing Tollbox library:

  • building filters, filtering and image restoration;
  • image enlargement;
  • analysis and statistical processing of images;
  • identification of areas of interest, geometric and morphological operations;
  • color manipulation;
  • two-dimensional transformations;
  • processing unit;
  • visualization tool;
  • writing/reading graphic files.

Thus, the MatLab system can be used for image processing by constructing its own algorithms that will work with graphics arrays as data matrices. Because MatLab is optimized for working with matrices, the result is ease of use, high speed, and cost-effectiveness of performing image operations.

Thus, the MatLab program can be used to restore damaged images, pattern recognition of objects in images, or to develop any of your own original image processing algorithms. The Image Processing Tollbox library simplifies the development of high-precision algorithms because each of the functions included in the library is optimized for maximum speed, efficiency and accuracy of calculations. In addition, the library provides the developer with numerous tools for creating their own solutions and for implementing complex graphics processing applications. And when analyzing images, having instant access to powerful visualization tools helps you instantly see the effects of enlargement, reconstruction, and filtering.

Among other libraries of the MatLab system, one can also note the System Identification Toolbox - a set of tools for creating mathematical models of dynamic systems based on observed input/output data. A special feature of this toolkit is the presence of a flexible user interface that allows you to organize data and models. The System Identification Toolbox library supports both parametric and non-parametric methods. The system's interface facilitates data pre-processing, working with the iterative process of creating models to obtain estimates and highlight the most significant data. Quickly perform, with minimal effort, operations such as opening/saving data, highlighting the area of ​​possible data values, removing errors, and preventing data from leaving its characteristic level.

Data sets and identified models are organized graphically, making it easy to recall the results of previous analyzes during the system identification process and select the next possible steps in the process. The main user interface organizes the data to show the result already obtained. This facilitates quick comparisons of model estimates, allows you to graphically highlight the most significant models and examine their performance.

And when it comes to mathematical calculations, MatLab provides access to a huge number of routines contained in the NAG Foundation Library of Numerical Algorithms Group Ltd (the toolkit has hundreds of functions from various areas of mathematics, and many of these programs were developed by well-known specialists in the world). This is a unique collection of implementations of modern numerical methods of computer mathematics, created over the past three decades. Thus, MatLab has absorbed experience, rules, and methods of mathematical calculations accumulated over thousands of years of development of mathematics. The extensive documentation supplied with the system alone can be considered a fundamental multi-volume electronic reference book on mathematical software.

Among the shortcomings of the MatLab system, we can note the low integration of the environment (a lot of windows, which are better to work with on two monitors), a not very clear help system (and yet the volume of proprietary documentation reaches almost 5 thousand pages, which makes it difficult to review) and specific code editor for MatLab programs. Today, the MatLab system is widely used in technology, science and education, but still it is more suitable for data analysis and organizing calculations than for purely mathematical calculations.

Therefore, to carry out analytical transformations in MatLab, the Maple symbolic transformation kernel is used, and from Maple you can access MatLab for numerical calculations. It is not without reason that symbolic mathematics Maple has become an integral part of a number of modern packages, and numerical analysis from MatLab and toolboxes are unique. Nevertheless, the mathematical packages Maple and MatLab are intellectual leaders in their classes, they are models that determine the development of computer mathematics.

Simpler but ideologically similar alternatives to the MatLab program include packages such as Octave (www.octave.org), KOctave (bubben.homelinux.net/~matti/koctave/) and Genius (www.jirka.org/genius .html).

Octave is a numerical calculation program that is highly compatible with MatLab. The interface of the Octave system, of course, is poorer, and it does not have such unique libraries as MatLab, but it is a very easy-to-learn program that does not require system resources. Octave is distributed under an open source license (OpenSource) and can be a good help for educational institutions.

The KOctave program is essentially a more advanced graphical interface for the Octave system. As a result of using KOctave, the Octave system becomes completely similar to MatLab.

The simple mathematical program Genius, naturally, cannot compete in power with its famous competitors, but its ideology of mathematical transformations is similar to MatLab and Maple. Genius is also distributed under an open source license (OpenSource). It has its own GEL language, a developed Genius Math Tool and a good system for preparing documents for publication (using design languages ​​such as LaTeX, Troff (eqn) and MathML). A very good graphical interface of the Genius program will make working with it simple and convenient.

MathCad (http://www.mathsoft.com/, http://www.mathcad.com/)

Minimum system requirements:

  • Pentium II processor or higher;
  • 128 MB RAM (256 MB or more recommended);
  • 200-400 MB of disk space;
  • operating systems: Windows 98/Me/NT 4.0/2000/XP.

In contrast to the powerful MatLab package, which is focused on highly efficient calculations in data analysis, the MathCad program (current version 13) is rather a simple but advanced mathematical text editor with extensive symbolic calculation capabilities and an excellent interface. MathCad does not have a programming language as such, and the symbolic calculation engine is borrowed from the Maple package. But the interface of the MathCad program is very simple, and the visualization capabilities are rich. All calculations here are carried out at the level of visual recording of expressions in commonly used mathematical form. The package has good tips, detailed documentation, a training function, a number of additional modules and decent technical support from the manufacturer (as you can see from the product version, this program is updated more often than others mentioned in this review, although the year of release of the first version is approximately the same - 1996-1997). However, so far the mathematical capabilities of MathCad in the field of computer algebra are much inferior to the systems Maple, Mathematica, MatLab and even the little Derive. However, many books and training courses have been published using the MathCad program, including in Russia. Today, this system has literally become an international standard for technical computing, and even many schoolchildren are learning and using MathCad.

For a small amount of calculations, MathCad is ideal - here everything can be done very quickly and efficiently, and then the work can be formatted in the usual form (MathCad provides ample opportunities for formatting the results, even publishing them on the Internet). The package has convenient data import/export capabilities. For example, you can work with Microsoft Excel spreadsheets directly inside a MathCad document.

In general, MathCad is a very simple and convenient program that can be recommended to a wide range of users, including those who are not very knowledgeable in mathematics, and especially those who are just learning its basics.

Cheaper, simpler, but ideologically similar alternatives to the MathCad program include such packages as the already mentioned YaCaS, the commercial MuPAD system (http://www.mupad.de/) and the free KmPlot program (http://edu.kde .org/kmplot/).

The KmPlot program is distributed under an open source license (OpenSource). It is very easy to learn and is suitable even for schoolchildren.

As for the MuPAD program, it is a modern integrated system of mathematical calculations, with which you can perform numerical and symbolic transformations, as well as draw two-dimensional and three-dimensional graphs of geometric objects. However, in terms of its capabilities, MuPAD is significantly inferior to its venerable competitors and is, rather, an entry-level system designed for training.

Conclusion

Despite the fact that in the field of computer mathematics there is not such diversity as, say, in the field of computer graphics, behind the apparent limitations of the market for mathematical programs, their truly limitless possibilities are hidden! As a rule, CAE systems cover almost all areas of mathematics and engineering calculations.

Once upon a time, symbolic mathematics systems were aimed exclusively at a narrow circle of professionals and worked on large computers (mainframes). But with the advent of PCs, these systems were redesigned for them and brought to the level of mass serial software systems. Nowadays, symbolic mathematics systems of various calibers coexist on the market - from the MathCad system designed for a wide range of consumers to the computer monsters Mathematica, MatLab and Maple, which have thousands of built-in and library functions, extensive capabilities for graphical visualization of calculations and developed tools for preparing documentation.

Note that almost all of these systems work not only on personal computers equipped with popular Windows operating systems, but also on Linux, UNIX, Mac OS operating systems, as well as on PDAs. They have long been familiar to users and are widespread on all platforms - from handhelds to supercomputers.

This program creates examples with ordinary fractions. You can select the range of numbers in the numerator and denominator, as well as the type of examples based on the sign of the action. Random generation of examples is available. Correctly solved examples, incorrectly solved and missed examples are counted.

To skip an example, just click on the example with the mouse. For the program to work, a JRE version of at least 1.4.0 must be installed on the computer.

Updated: Version 2.0 added. In this version, at the moment, the font in the example output area has been increased, the division sign (slash to colon) has been replaced, the code has been optimized and other small changes have been made.

Updated: Version 3.0 added. This version fixes a bug with calculating the integer part.

It was just necessary to automate routine work. It was possible to use Excel, but suddenly the idea came to create a simple
program for working with matrices. This is how the Matrix Calculator came into being.

Tested with examples from the manual by E. Danko, A. G. Popov, T. Ya. Kozhevnikova “Higher Mathematics in Exercises and Problems.”

The new version of the application adds the ability to show prime numbers.

Based on the number n specified by the user, the nth prime number in order is displayed. In addition, it is possible to demonstrate the first n prime numbers coming after the specified number m and prime numbers smaller than the number m. To do this, you need to select one of three buttons.

The application has two tabs. Tab<Делители, простые делители, вид и разложение>- for information about the divisors of a user-specified number (this part has been significantly redesigned in the new version).

Tab<Простые числа>- to demonstrate prime numbers. If you need to get the first n natural numbers, then you should specify the value for m 0 or 1.

The program is designed for 6th grade students. The program generates random numbers and offers to perform addition, multiplication and division operations with ordinary fractions; the screen shows the correct answer and the student's answer.

The program only works on the Windows operating system. The computer program simulator “actions with ordinary fractions” can be used to practice counting skills in the form of individual independent work during the lesson and outside of class time.

Target audience: for 6th grade

The program was created for students in grades 5 and 6. The program generates random numbers and offers to perform addition, multiplication and division operations with decimal fractions; the screen shows the correct answer and the student's answer. The separator between the integer and fractional parts is a dot instead of a comma. The program only works on the Windows operating system. If the buttons do not fit on the screen, you should set the screen resolution to 1024 by 768 or higher. Computer program “5th and 6th grades. Actions with decimal fractions can be used to practice counting skills with decimal fractions in the form of individual independent work during the lesson and after school hours, as well as for making cards.

Target audience: for 5th grade

Common fractions are entered into text fields. The program calculates the sum, product and quotient of two and three fractions. Fractions can be either positive or negative. The program can be used for self-control when doing independent work.

Target audience: for 6th grade

Trigonom is an application that is compiled from previously compiled and posted applications on individual trigonometry issues on the portal.

Some improvements have been made, the ability to “perform” transformations of graphs of trigonometric functions has been added, the properties of trigonometric functions are not only demonstrated on the graph, but also indicated, this also applies to basic equations and inequalities. Basic concepts are not only shown visually, it is possible to read numerical values. I think the app will be used by math teachers.

Target audience: for teachers

The program generates examples and equations using 14 different schemes. The program allows you to record results and also assigns grades on a five-point system. The program requires the presence of a Java virtual machine on the user's computer and, if it is not available, will help install it.