Computer Mathematics


Computer Mathematics

 

a branch of mathematics dealing with problems that are solved by computers. The definition of the term “computer mathematics” should not be considered fixed, since this field is developing intensively in connection with the ever-increasing uses of computers in new areas. Computer mathematics is often understood to mean the theory of numerical methods and algorithms for solving typical mathematical problems. This interpretation of the term was common in computer mathematics’ early stages, when the use of computers imposed new demands on numerical methods. The major task during this stage involved working out new methods “convenient” for computers. In what follows below, computer mathematics is under-stood in the first, broader sense of the term.

Computer mathematics can be divided into three large branches. The first is connected with the use of computers in areas involving scientific and practical activities and can be characterized as the analysis of mathematical models. The second branch deals with working out techniques and algorithms for solving typical mathematical problems arising during the investigation of mathematical models. The third branch deals with the problem of simplifying man-computer interactions, including the theory and practice of programming problems for computers, in particular, automation of programming problems.

The analysis of mathematical models includes the study of problem formulation, the selection of models, analysis and processing of input information, the numerical solution of mathematical problems arising during the investigation of the models, analysis of the computed results, and, finally, the problems connected with attaining the results obtained. Model selection must be made with the following consideration: The degree of reliability, with which the results of analyzing a model make it possible to study a specific phenomenon (or class of phenomena), must correspond to the accuracy of the input information. In this case, the possibility of obtaining more accurate information generally results in the necessity of improving the assumed model and, in a number of cases, even its complete replacement. For such problems, the processing of input information becomes of vital importance, and this in most cases requires the use of methods of mathematical statistics. Mathematical models have played an important role in the development of natural science. Presently, the use of mathematical models is an essential factor in many areas of man’s activities (including problems of control, planning, forecasting, and so on).

The investigation of real phenomena on the basis of constructed mathematical models usually requires the development of numerical methods and the use of electronic computers. Thus, an important place in computer mathematics is occupied by the numerical methods of solving formulated mathematical problems and, first and foremost, by those of solving typical mathematical problems (computer mathematics in the narrow sense of the word).

An example of typical applied mathematical problems frequently encountered in applications is that of algebra: of great significance here are the numerical methods of solving systems of linear algebraic equations (in particular, large systems), matrix inversion, finding matrix eigenvalues (both of starting values, which is the bounded eigenvalue problem, and of all the eigenvalues, which is the complete eigenvalue problem). Other examples are numerical methods of differentiation and integration of functions of one or several variables and numerical methods of solving ordinary differential equations (this includes, in particular, the study and comparative analysis of various types of numerical methods, for example, Adams’ method and the Runge-Kutta method). Many studies are devoted to the numerical methods of solving partial differential equations. These concentrate on finding “economical methods,” that is, methods requiring relatively few mathematical operations.

A rapidly developing field of computer mathematics is that of the numerical methods of optimization. Optimization consists in the study of the extremal (greatest or least) values of functionals on sets of generally very complex structure. Let us first mention problems in mathematical programming (including linear and dynamic) to which many economic problems are reduced. Minimax problems (and the corresponding numerical methods) are optimization problems; they arise in solving problems in operational research and the theory of games. Especially complex minmaxminmax problems arise in multistage (dynamically developing) games. Here, even mathematical experimentation (playing over the variants of the players’ behavior) is impossible without the use of large computers.

The use of computers to solve complex problems, especially problems of large size, has created a major trend in the theory of numerical methods—the study of the stability of methods and algorithms toward various errors (including round-off errors).

Inverse problems, for example, the problem of determining the element x from the equation Ax = b with the known information about the operator A and the element/?, are often unstable (incorrectly formulated) problems (small errors in input data have corresponding large errors in x}. Moreover, inverse problems often do not have a solution for all fc; thus, in assigning an approximate value to b, we must keep in mind that a formal solution to the problem may not exist.

Unstable problems required a special definition of the concept of approximate solutions and the development of the corresponding methods of finding them. Among the unstable problems is a broad class of problems connected with problems in automating the processing of experimental results.

A significant place in most branches of computer mathematics is occupied by problems in optimizing the methods of solving problems. This is particularly significant in problems of large size (for example, a large number of variables).

The use of computers is constantly expanding the number of users, and thus there is a tendency toward such a degree of automation where it becomes less important for the user to be familiar with numerical methods. This makes new demands on algorithms, their classification, and on standard programs of solving typical problems.

At the present time, a number of trends have evolved in the applied sciences, where the modern rate of scientific and technical progress would be impossible without the development of numerical methods and the use of computers.

The primary problem of programming theory is the facilitation of the relationships between man and machine, although this point of view and concrete trend in research has changed radically with the development of computer technology. The replacement of generations of computers caused the replacement of the three stages in the development of programming.

From writing programs in the language of the machine, programming rapidly proceeded to writing standard programs for solving typical problems and complexes of such programs. With their use for a wide class of problems, the need for programming methods of solution disappears; the user need only specify the input information. However, the specification of such information and the writing of non-standard blocks still require a large amount of programming in the language of the machine. The appearance of the next generation of machines, having greater operating speed, was accompanied by a greater number of problems requiring solution; as a result, there arose a narrow area of man-machine studies: the study of programming speed. This led to a new stage of programming development—the creation of algorithmic languages with translators to translate the algorithmic language to machine language. Owing to the greater similarity between algorithmic languages and human language, their introduction simplified programming and considerably broadened the number of users.

Together with the creation of universal algorithmic languages (ALGOL, FORTRAN), a number of problem-oriented languages were developed for a specific group of users, for example, that connected with processing economic data. Such specialized languages were created because universal languages and translators, which were intended for solving a broad class of problems, sometimes do not take into account the specifics of individual important classes of problems, a situation that lowers the effectiveness of using all the machine’s capabilities.

A more specialized field of study of the man-machine system became devices for input and output of information; their slow operation brought to naught the high speed of the central unit. The necessity of overcoming this contradiction was one of the reasons for designing systems for the simultaneous solution of several problems on a single machine. Another reason was to enable a large group of users to work simultaneously on the machine (the latter is particularly important when computers are used in automatic control systems). Together with a number of other reasons, this led to a new stage in the development of programming—system programming. The major problem of system programming is the design of such operation systems controlling the work of the machine that its capabilities are extended by the programs and additional services are afforded to the user not provided by the machine hardware: the possibility of data input and output simultaneously with the solution of the problem, automation of output editing, output of diagrams, input and output of cathode-ray-tube displays, dialogue with the machine, and the possibility of simultaneously solving many problems (time-sharing).

The development of computer use is characterized also by the organization of the operation of complexes, including a large number of devices: various types of machines, input devices, communication channels between machines and users, and often physical equipment. Such highly productive systems are designed, for example, to solve problems in economics and in processing the data of physical experiments, which require the input and processing of large amounts of information.

The development of computational systems, in particular information systems and automated control systems, is one of the most active scientific problems.

A. N. TIKHONOV