English translation
Probleme der Entwicklung programmgesteuerter Rechengeräte und Integrieranlagen
Complete English translation of the original German-language document (51 pages).
[page 1: title page]
PROBLEMS OF DEVELOPMENT PROGRAM-CONTROLLED COMPUTING DEVICES AND INTEGRATING INSTALLATIONS
Edited by PROF. DR. HUBERT CREMER with the collaboration of members of the MATHEMATISCHES INSTITUT LEHRSTUHL C AACHEN 1953
Table of Contents
| Page | |
|---|---|
| Foreword by the Editor | III |
| First Chapter: Overview of the Literature | 1 |
| by Schöppe & Passer | |
| §1. Introduction | 1 |
| §2. The Integrator as a Computing Element | 1 |
| §3. The Step Function | 5 |
| §4. Generation of Functions of a Single Variable | 9 |
| §5. Generation of Functions of Several Variables | 12 |
| §6. Presentation of a Function as a Lemniscate Function | 14 |
| §7. Computation of Partial Differential Equations | 17 |
| §8. Summary of Results of the Survey | 18 |
| §9 bis. Summary | 18 |
| Second Chapter: On Program-Controlled, Self-Regulating, Electronically Controlled Computing Devices and a Proposal for the Physically Motivated Classification of Scientific Problems for Their Automated Numerical Solution (with 5 figures) | 13 |
| by Steiner | |
| §1. Theoretic | 13 |
| §2. The Discussion with Reference to Measurement Results | 20 |
| §3. Summary | 27 |
| Third Chapter: On the Correct Selection of Integrating Intervals in Electronic Differential-Equation Machines (with 4 figures) | 31 |
| by Lehri & Steiner, Passer | |
| §1. Basis of the Computing Principle | 31 |
| §2. Das Schrittschaltwerk [Step Switching Mechanism] | 32 |
| §3. Selection of Suitable Step Sizes | 35 |
| §4. The Step Size Relationships | 41 |
[page 2: table of contents continued]
| Page | |
|---|---|
| Fourth Chapter: Is a Program-Controlled, Self-Regulating Electronic Differential Equation Machine Technically and Economically Feasible? | 57 |
| by Steiner | |
| §1. The Computing Element as a Machine Component | 57 |
| §2. The Computing Results and Their Variation | 59 |
| §3. The Useful Life of the Machine | 62 |
| §4. Preparation of Values as a Lemniscate Function | 64 |
| §5. Summary of the Results | 66 |
| Appendix: Rendering of Figures from the Discussion at the Meeting in Aachen, January 24, 1953 on the occasion of a demonstration run of the Mathematisches Institut | C1 |
Foreword by the Editor
The present volume contains the essential content of lectures and discussions on problems of program-controlled computing devices and integrating installations for mathematics, mechanics, physics, and theoretical physics, from the course in mathematical auxiliary instruments held at the Institut für Mathematik (Institute for Mathematics) in Aachen in summer 1952. In this course, the Institutes for Mathematics, Mechanics, Physics, and Theoretical Physics at the Rheinisch-Westfälische Technische Hochschule Aachen brought together their knowledge and information on computing devices, and provided the participants with an introduction to their use.
The most important thing is to point out that there are large groups of differential-equation problems that can be solved simply and economically only with electronic integrating machines. The theory of those problems was developed to the point at which a reasonably skilled person can recognize to which class a problem belongs.
There are large groups of differential-equation problems — e.g., problems of flight mechanics, “ballistic problems” — for which specialized computing methods have long been available and for which at this time no satisfactory general solution could be provided. In each case some specific sub-problem may present difficulties, but as a rule one can manage to find a reasonable solution with some skill in the mathematical formulation.
The situation is quite different with those partial differential equation problems that arise in practically every area of technical physics. These appear to be easily soluble in principle through electronic difference-equation machines, and the problem of the programming and interconnection of a system of differential-equation machines (i.e., the problem of the creation of a comprehensive integrating installation) is by no means trivial. The fully program-controlled, self-regulating machine can clearly, in a single computation run, perform tasks that would otherwise require days of work by the mathematician; the pricing for such a machine also does not appear unreasonable.
[page 3: foreword continued]
In conclusion, the development of the computing machines indicated in the foreword must be noted, which is now underway or about to begin. One must draw attention to the fact that through electronic computers the possibility of handling problems in scientific institutions that had hitherto been reserved for a few mathematicians has been considerably expanded. Through electronic computers many problems in research and industry can now be solved jointly, whereas up to now it was frequently impossible to provide enough time for the necessary numerical computations. It is therefore important that the awareness of the scope of the problems for which a solution might be expected from electronic computers is spread as broadly as possible.
There is a great demand for differential-equation problems both in the area of differential-equation problems and in particular in the area of partial differential-equation problems. The machine, while it can be used to solve ordinary differential equations, is above all suited to solving partial differential equations, which represent the most difficult class of problems. Problems that cannot be handled with existing mechanical computers may become tractable with the new electronic machines.
The most fully programmed machines are, to be sure, still in the development phase, and each operator who works through a problem is thereby contributing to a stage of development. It is remarkable that every institution that deals seriously with the programming for the solution of a differential equation problem has often taken a separate development initiative; they not only work on the problem itself but also on the development of the computing device. In this way, the step toward technical realization sometimes comes surprisingly quickly.
[page 4: foreword continued]
To begin with, in the development of the computing machines it was noted that there had been a new state of development, and that one must then expect that the programming possibilities are greatly widened. This is a great simplification. There are several forms of representation for ordinary differential equations, and for each of them the machine can be more or less directly configured.
For a partial differential equation, the situation is far more difficult. There are essentially two main approaches. The first treats the differential equation as a finite-difference approximation; by substituting differences for differentials, the differential equation is transformed into a large system of simultaneous algebraic equations, the solution of which represents an approximation to the solution of the original differential equation. The second approach is to approximate the solution by a series expansion and to determine the coefficients numerically.
Both approaches involve the solution of a large number of simultaneous equations. The program-controlled machine is admirably suited to solving the problem in either of these two formulations. As one example, consider the solution of a partial differential equation by finite differences. One starts with a set of initial values given along a line and proceeds step by step, integrating from one line to the next. In each step the machine carries out essentially the same sequence of operations. The process is therefore highly repetitive and lends itself admirably to automatic programming.
[page 5: foreword continued]
Particularly for solving differential problems from a somewhat wider standpoint — one must not only be able to solve problems that can be formulated with present-day mathematical and physical knowledge, but must also be able to deal with problems that lead to still greater, hitherto unresolved difficulties — the machine will become an irreplaceable instrument.
The machine can be programmed so that it can execute all necessary operations, page by page and problem by problem, automatically with previously programmed inputs.
The tasks for which integrating installations are needed are so large and varied that one can only deal with them systematically. One can draw upon a rich reservoir of past experience in computing methods for the solution of ordinary differential equations. The technical mastery of computation with mechanical computers has, through years of practical application, been brought to a high degree of perfection. The advantage that a machine of the present type will have over a mechanical computer lies primarily in its great speed — the computing time is reduced by a factor of perhaps 1000 or more — and, above all, in its ability to solve partial differential equations, which represent the most difficult class of problems and which cannot be dealt with at all by mechanical computing machines.
[page 6: foreword continued]
In the computing process, to give a still clearer picture of the Schrittschaltwerk [step-switching mechanism], one notes that, e.g., a computation of a ballistic trajectory is performed through the following sequence of arithmetic operations, repeated several times over: addition, multiplication (or division), followed by an integration step. The machine executes this set of operations automatically, without human intervention, passing automatically from one step to the next.
Also for the solution of differential equations in a higher order, such as occur in oscillation problems and in the solution of wave equations and similar problems, it may be remarked that special computation forms have long been developed and that the machine can be used for this without difficulty.
Also, one might also mention the computation of eigenvalue problems, i.e., of problems in which a solution is sought that satisfies not only a differential equation but also certain prescribed boundary conditions. The machine is highly suitable for this type of problem.
A description of the general characteristics of the existing machines is contained in the following survey. The survey will show how greatly the various developments differ from one another in structure, purpose, and state of completion.
[page 7: foreword continued]
In the technical physics area, the calculation of integrating machines makes integrating installations of the greatest importance. There, attention must be paid to the fact that through the enlargement of the Schrittschaltwerk-related computing devices, the total integration performance is considerably increased. The question of the accuracy of the integration must always be regarded as a primary concern.
Also, with the Differenzierungsmaschinen [differentiating machines], the importance is recognized that they too must always be kept in mind alongside the Integriermaschinen [integrating machines]. It must be pointed out, for this reason, that already now the construction of very small machines — so-called “computers” — was considered and that the first results of this construction appeared promising.
Dr. H. Stromberg of the Mathematisches Institut für Rechnermaschinen (Mathematical Institute for Computing Machines), briefly acknowledges Prof. Dr. A. Walther, Director of the Institut für praktische Mathematik (Institute for Practical Mathematics) at the Technische Hochschule Darmstadt, Prof. Dr. W. Müller, Director of the Institut für angewandte Mathematik (Institute for Applied Mathematics) at the University of Hamburg, and the Aachen Colleagues who contributed to the preparation of this volume.
The large computing machines, it must be emphasized, are still only barely known to a wider circle of experts. Through the discussions organized by the Mathematisches Institut Lehrstuhl C, which this volume in part records, it is hoped that a broader awareness of these machines and of the problems associated with them will be promoted.
[page 8: foreword continued]
Finally, the contributions of the following participants are gratefully acknowledged: Prof. Dr. K. Buss, Braunschweig, the Konstrukteur (designer) of the first German electronic computing machine, kindly provided many explanations and clarifications. Dr. A. Walther, Director of the Institut für praktische Mathematik at TH Darmstadt, provided the support necessary for the program, as did Prof. Dr. W. Müller, Director of the Institut für angewandte Mathematik at the University of Hamburg. Dr. L. Collatz of TH Berlin also gave active and friendly support.
The large computing machines are so far little known even within the community of professionals. Through the discussions that the Mathematisches Institut Lehrstuhl C has organized — of which this volume forms a part — it is hoped that broader knowledge of these machines and the problems associated with them will be promoted.
Prof. Dr. H. Stromberg of the Mathematisches Institut für Rechnermaschinen contributed enthusiastically. The volume was prepared under the direction of Prof. Dr. H. Cremer.
Aachen, in January 1953 H. Cremer
[page 9: chapter title page]
Erstes Kapitel
ÜBER DIE ENTWICKLUNG DES INTEGROMATS
Dr. Lehri, D. Steiner Steiner (Bearb.) Ms. Schöppe & Passer
First Chapter
On the Development of the Integromat
Dr. Lehri, D. Steiner Manuscript: Schöppe & Passer
§ 1. Introduction
Several large integrating installations, which call themselves “Integromats,” have been built and at the National Physical Laboratory have been carried to a degree of completeness that made it possible to use them with full electronic speed. Such installations can also process very complicated tasks. It is worth pointing out that for programming, conditions are rather restrictive: one must find a way to set up the problem so that the machine can handle it, and it requires the services of a small team of mathematicians — usually 2–3 persons — working for at least a week before the computation can begin.
One has a small, relatively cheap integrator available — the “Integromat.” It is only a small part of the full integrating installation. The question arises: is it possible, given the rapid development of electronic technology, to build a simple, practically applicable device?
§ 2. The Integromat as a Computing Element
One can construct an extremely simple electronic integrator by using an element that acts as a small capacitor. When a voltage V is impressed upon a capacitor, it produces a charge Q = C·V. If now V varies with time, then Q = ∫C·V dt. The integrating element has found its most direct realization in such a system.
We have taken, in a few years, each Institution and in a small amount we also had a small Integromat at our Institute: one having a 1 billion dollar capacity and not just just two Differential Equations having. This is also a great Integromat having having a different.
[page 10: § 2 continued]
One can construct an extremely simple electronic integrator by means of a capacitor, in that one lets a current flow through a resistance and integrates the voltage drop that appears across the resistance. Fig. 1 illustrates the principle schematically.
The integrator itself consists essentially of a resistance R and a capacitance C. Furthermore, Dr. Stumberg explains that also Prof. Dr. Turing in England had the idea of the electronic integrator at about the same time.
One integrates then a function f(t) [illustration of the integral symbol showing t as the variable of integration]. The integrand is set on the abscissa axis and the ordinate gives the function f(t). So then the integral is that area under the function curve from 0 to t. An electronic integrator can now be set up as shown diagrammatically.
Fig. 1 — In Fig. 1 on the left is sketched the Eingabeimpuls [input pulse] as a function of the time axis — the function to be integrated — and the integral on the right. When V (volts) is on the abscissa and the integral value is on the ordinate.
Fig. 2 — A simple schema: There is an amplifier, the Leitzug [lead circuit], and the Integrationsglieder [integrating elements]. The abscissa runs parallel to the Leitzug. The Ordinate is the function f(t).
Fig. 3 — The same principle demonstrated: the abscissa is t, the function values (Funktionswerte) of f(t) are shown on the ordinate axis. The shaded area under the curve represents the value of the integral.
If the function F(x) is to be integrated, the Schreiber [recorder] draws a continuous line on paper, and from this line the Integromat can, by means of a photo-electric scanner, read off the instantaneous value of the function and form its running integral.
[page 11: § 2–3 continued]
The size of the step of the Integrator — that is, the frequency of the step — is important. The frequency should be such that the error of approximation is small compared with the error of the photocell reading.
If in a given step interval the function changes by a small amount, then the approximation is very good. The limit of accuracy of the reading is about 1/4 percent of the full scale. If one wants to use the Integromat for the solution of differential equations, one must also be able to differentiate with it. This is done by means of a Differentiator, which is the complementary element to the Integrator.
The error is not negligible if the step is too large. The error grows as the square of the step size. One must therefore choose the step size so that the parabola approximation is not too bad within a single step.
The Schreiber draws the curve and the photo-cell reads it. A servo motor drives a Schleifdraht [sliding contact] or a similar device to generate the required instantaneous function value. The output of the photo-cell feeds into a conventional amplifier and the output of this amplifier charges the Integrationskondensator [integration capacitor]. At the end of each step, the accumulated charge is read out from the capacitor and then discharged, so that the capacitor is ready to start a fresh integration for the next step.
§ 3. The Schrittschaltwerk [Step-Switching Mechanism]
The Schrittschaltwerk is that mechanism by means of which the integration is stepped through the successive intervals of the independent variable (ordinarily the time). It sets the boundaries of the integration and advances from one integration interval to the next.
The Schrittschaltwerk essentially consists of a stepping relay and the associated circuitry by means of which the relay is advanced, step by step, from one contact to the next. Each time the relay advances by one step the integration of the current interval is terminated and the result accumulated; then the input is shifted to the next function value and the next integration step begins.
The frequency of the stepping action can be adjusted over a range of about 10:1 in most machines.
[page 12: § 3 continued, with figures]
The size of the error accumulation is important. The frequency must not be set so low that the step-size error becomes dominant, nor so high that the system has no time to settle between steps.
If the Integrationsglieder [integrating elements] are driven at a rate higher than they can follow, an error builds up because the circuit does not reach its final state before the next step begins.
[Figure: schematic of the Schrittschaltwerk, showing step contacts and the integrator circuit]
Fig. 4 — A sketch of the Schrittschaltwerk. The top row of contacts represents consecutive time steps. Below each contact position the integrator receives the function value for that step. The accumulated sum builds up in the integrating capacitor until it is read out. At the bottom is shown the capacitor voltage as a step-by-step staircase function.
Fig. 5 — The accumulation: the staircase represents the running integral. If the step size is large, the staircase departs appreciably from the smooth curve that represents the true integral. If the step size is small, the staircase follows the smooth curve closely.
The total accumulated error is the sum of the individual step errors. When the number of steps is n and the error per step is ε, the total error is of the order nε. Since n = T/h (where T is the total interval and h is the step size), and ε is proportional to h², the total error is proportional to h — it decreases as the step size decreases.
From this point on the Integrator can also easily assume the role of a Subtractor [subtracting element]; by combining two integrators whose outputs are added algebraically, one obtains a Differential-Integrator [differential integrating element], which is a more powerful building block.
[page 13: § 4 continued]
When one considers an integrator of this kind, one must keep in mind that it functions as a very large Summationsapparat [summation apparatus]. The Integrator provides the sum at each step, and this sum is the approximate value of the integral up to that point. The approximation improves as the step size decreases.
For the solution of a differential equation, however, it is not enough to have a single integrator. One generally needs a number of integrators connected together. For a system of first-order ordinary differential equations, one requires one integrator per equation. For a system of second-order equations, one requires two integrators per equation, and so on.
§ 4. Discretization of the Variables
It may be asked how one manages the discretization of the variables in an actual machine. The machine has a finite number of positions along the abscissa axis. The function to be integrated is approximated by a series of discrete values, one at each step. The integration is then performed by summing these discrete values multiplied by the step size h, which is the width of each interval.
The result of this summation is the approximate value of the integral. The error of the approximation depends on how well the chosen step function represents the true continuous function.
In a “linear” interpolation scheme, one assumes that the function is linear within each step — i.e., one uses the trapezoidal rule for integration. In a more sophisticated scheme, one may use quadratic or higher-order interpolation within each step, corresponding to Simpson’s rule and its higher-order generalizations.
The choice of scheme depends on the accuracy required and on the smoothness of the function being integrated. For a smooth, slowly varying function, a simple trapezoidal rule with small step size may be adequate. For a rapidly varying or not particularly smooth function, a higher-order scheme may be needed.
[page 14: figures and continued text]
[page 14: figure only — schematic diagrams of integrator circuits]
In Fig. 5 it is shown that from a single step one can work out an approximation. The slope of the secant of the function curve at the position of the step determines the error of that step. The smaller the step, the smaller the error, and the closer the staircase follows the curve.
In the figure on the right, one sees that the step function follows the true function closely when the step size is small, but departs from it noticeably when the step size is large.
In Fig. 6 and 7 (below in the figure) a more detailed picture of the Schrittschaltwerk is shown. The upper part of the figure shows the Kontaktreihe [contact array] of the Schrittschaltwerk. Below it is shown the block-diagram of the integrator circuit connected to the Schrittschaltwerk. The output of the integrator is shown as a stepped function that follows the continuous curve of the true integral.
One important consequence of this analysis is that the Integromat must work with a step size that is small enough that the step-error is negligible compared to the reading error. The condition for this is:
h² · f”(t) / 2 ≪ δ
where δ is the reading error and f”(t) is the second derivative of the function at the step. This condition sets an upper limit on the permissible step size.
§ 5. Presentation of a Function as a Lemniscate Function
This section describes how any given function of a single variable can be represented in the Integromat as a Lemniscate function (a specific type of functional relationship that is amenable to electronic generation).
The idea is to represent the function as a series of polynomial segments, each defined over one step interval. The coefficients of each polynomial segment are determined by the values of the function at the end-points of the step, and possibly also by the derivative values.
[page 15: § 5 continued]
For this, it is important that one notes the following: the Integrator introduces a kind of “memory” — it accumulates the results of past integration steps and carries them forward. When a differential equation is being solved, the Integrator is used to integrate the derivative of the solution with respect to the independent variable, and the result is fed back to influence the derivative. In this way, the Integrator is a key element in a feedback loop.
The important things are that one also grasps the following: the Integromat can be used to approximate a function tabulated at discrete points. One sets the known values of the function at each step on the “input” side of the Integrator, and the Integrator generates a running sum that approximates the integral of the function.
For the computation of the integral of a function f(t) one proceeds as follows. One first approximates f(t) by a step function (a function that is constant within each step interval and changes only at the step boundaries). One then multiplies each step-value by the step width h to get the contribution of that step to the integral. The sum of these contributions is the approximate value of the integral.
This approximation can be improved by using a better approximation for f(t) within each step interval — for example, a linear interpolation (trapezoidal rule) or a parabolic interpolation (Simpson’s rule). The Integromat can be programmed to implement any of these schemes.
§ 6. Regulation to a Suitable Procedure
One of the key issues in the use of the Integromat is the selection of the step size. The step size must be chosen so that the approximation error is acceptably small, while at the same time the total number of steps is not so large that the computation takes too long or that the accumulated roundoff error becomes unacceptably large.
[page 16: § 6–7 continued]
The step size may be selected to be a fixed constant throughout the computation, or it may be varied adaptively during the computation to track the smoothness of the function being integrated.
An adaptive step-size control algorithm works as follows: at each step, the algorithm estimates the local truncation error of the approximation. If the estimated error is larger than a prescribed tolerance, the step size is reduced; if the estimated error is smaller than the tolerance by a comfortable margin, the step size is increased. In this way, the step size is automatically adjusted to maintain a prescribed level of accuracy.
The Integromat can be equipped with a Schrittschaltwerk that implements such an adaptive control. The Schrittschaltwerk monitors the output of the integrator and compares it with a prescribed tolerance. When the error exceeds the tolerance, it automatically switches to a smaller step size.
It is important to note, however, that this adaptive control does not fully eliminate the need for the user to exercise judgment in the setting up of the computation. The user must still choose the initial step size, the tolerance, and the maximum and minimum step sizes. If the function being integrated has sharp peaks or other singularities, the adaptive control may not be able to deal with them automatically; special handling may be required.
§ 7. The Schrittschaltwerk
The Schrittschaltwerk is the mechanism that controls the stepping of the Integromat through the successive values of the independent variable. It is the heart of the Integromat and determines its computing speed and accuracy.
The Schrittschaltwerk consists essentially of a step-by-step switch (a Schaltwerk) that advances, one step at a time, through a series of contact positions. Each contact position corresponds to one value of the independent variable, and the associated circuit value feeds the appropriate function value to the integrator input.
[page 17: § 7–8 continued, end of Chapter 1; start of Chapter 2]
Starting from the integrator integral, the value that is incorporated corresponds to the Wert [value] of the Integromat’s Integral by the j-th Differentialgleichungsmaschine [differential equation machine]. The value given is then transmitted so that only Integrations-werte [integration values] in the various 5 Integrators become one. One must mark here, that only so many steps can be made as there are 51 Integrations points, and that all five Integrators are combined so that they can be triggered.
The complete integration is then triggered from the Schrittschaltwerk. In the computation of a partial differential equation by the difference method, the Schrittschaltwerk steps through the mesh points of the difference grid. At each mesh point, the Integromat performs the required arithmetic operations and advances to the next mesh point.
It can be noted that in working on problems where large numbers of Integrator outputs are needed, one must still work through these in sequence, as the Integromat is not fully parallel. Multiple integrators can, however, be interconnected so that the output of one feeds the input of another, allowing the construction of more complex computing networks.
§ 8. Summary of the Results of the Survey
From all of the above considerations, the following conclusions may be drawn:
-
The Integromat is a powerful but limited computing device. It is capable of performing integration and the solution of systems of ordinary differential equations. For partial differential equations, it requires the additional step of discretizing the spatial variables by means of a finite-difference approximation.
-
The accuracy of the Integromat is limited by the step-size error, the reading error of the photocell, and the roundoff error of the integrating capacitor. These errors accumulate over many steps, and so the total error grows with the length of the computation.
-
The speed of the Integromat is determined by the Schrittschaltwerk frequency and the number of steps required. The step frequency is fixed within a range of about 10:1. The number of steps is determined by the total integration interval and the step size.
[page 18: start of Chapter 2 — the Bibliography, and beginning of Chapter 2 text]
The program-controlled material from which these machines derive their capabilities consists of 12 Kriegsprioritätsglieder [wartime priority elements], of which also several smaller Electronic Computing Machines have been built. In the first Gliederung [grouping] the elements fall into 12 Gruppen [groups], as follows:
Group I
- ENIAC — built 1945; the first in Detroit, operated
- B N I A C
Group II
- B M E C — Works of Mark IV, B N, New York
Group III
- Works by Mark Manufacturing Co., Boston, built with ONR (Office of Naval Research grant)
- N R A C
Group IV (A)
- Small Electronic Computers (PCIs), such that each has ca. 12 Millionen Schritte [million steps] — Group IVA makes Maschinen [machines]
- P I S A
Group V
- Small Elektronmaschinen [electronic machines] of the PCIs [?]
The Spec-program is strictly arranged, and each machine belongs to 12 Willkürstellen [arbitrary positions]. Groups are finally real groups producing these machines.
Page 19
already a group, from John von Neumann, at the University of Illinois (or at another institution) there are people who are concerned with electronic computers. The group at the University of Illinois for instance is concerned with the programming of the machines in connection with numerical mathematical problems. In England one finds the Institution of Technology (or the Institute of Technology?) at Delft together with the Ordnance Bureau of the Navy (Navy Research Group).
There are now in the world (in planning and in existence) a relatively large number of electronic computers. Whereas in Germany, in the years 1947–1950, it was considered whether it was at all possible to build such machines and whether it was worthwhile, one can now say that:
1.) The machines, that existed at that time at the University of Illinois — the so-called Illiac — were able to handle a specific task for a major firm within 30 minutes, which would otherwise have required the work of 3 to 4 mathematicians over the course of a year.
2.) The machines that one calls by the general name “Electronic Computer” have meanwhile developed to such a degree that the newest models are about 100 times faster than the ones constructed 3 to 4 years ago.
3.) Extraordinarily large businesses have been placed with industrial firms in America, reaching a total value in the billions.
For us here, it is quite natural to deal with this field as a scientific subject. Whereas in America and in England, these machines are used industrially and commercially, it must be our task during the next few years to create the conditions under which this branch of industry can also develop here. It is important that young people are being educated in these areas. The work being carried out, however, is somewhat different: it is not merely industrially oriented, as is the case in America, but also oriented towards scientific research. The Institute for Applied Mathematics at the ETH, to the extent that it concerns itself with this field, is not merely a service institution, but also a scientific research institution.
Page 20
Difficulties arise in small institutions, namely the difficulty that one cannot always speak from one’s own experience. The “Electronic Computer” is built not only simply, but it also requires mathematical knowledge. For the calculation of such a machine, one needs, in addition to technical knowledge, both a good mathematical background and practical computing experience. The development of computing methods requires equally good mathematicians. Without these two prerequisites, one cannot arrive at satisfactory results.
Among the largest machines (in terms of computation speed), one should list the following: the ENIAC, which at that time was already in full operation; the Whirlwind, at the MIT, the Institute of Technology; the University of Illinois — which however is no longer in the first rank (IBM); the EDSAC, at Cambridge, with the famous mathematician Wilkes; the University of Toronto machine; the NBS (National Bureau of Standards), with two examples; the Institute for Advanced Study in Princeton; and the SEAC. We then have, among others, the machines of the University of Pennsylvania, the UNIVAC, and also the NCR (National Cash Register) machines. Among these, the last-named machines are particularly interesting, since they operate on a 100-digit decimal system (whereas the other machines operate in binary). These machines require 1,500 tubes (Röhren), while the other machines of the same computational scope (same Rechenumfang) need about 10 times as many. The machine at the Institute (that is, here at the ETH) is the Ermeth, which will probably be in operation from November onward, and which has been designed as a decimal machine with a 16-digit decimal system.
Page 21
2. Possibilities of Electronic Machines
It is an instructive question, and one that is often asked: how large are the problems that these machines are capable of solving? This question cannot be answered simply; one must always consider it in relation to the problem.
During the last few years, in the period from 1947–1950, certain machines have in particular the following capabilities:
1.) The machines that even then existed at the University of Illinois were able, as already noted, to perform a specific task for a large firm in 30 minutes, which would otherwise have required the work of 3 to 4 mathematicians over an entire year.
2.) The machines that one calls by the general name “Electronic Computer” have meanwhile developed to such a degree that the newest models are approximately 100 times faster than those built 3 to 4 years ago.
For the work that we have before us here, one must note that machines are not simply “bought and used.” Rather, the situation today is, primarily in the scientific domain, that the machine is also a research tool — and not merely a device for numerical computation.
We take a closer look at the overall situation: there are now, worldwide, a rather large number of machines of this type. In Germany they are also building such machines, including the Göttingen machine (of which more in Chapter 3), which, though it is not yet a true electronic machine but more a relay machine, nonetheless constitutes a significant step in this direction.
Page 22
[continued]
The registers themselves, with their electrostatic memories, allow one to carry out the following operations: a.) from one register to another, or b.) to the arithmetic unit — as a kind of intermediate store — and from there the results are returned to a register. There is also the possibility of — depending on the register organization — whether one takes the content of a specified register, or whether one forms from it a specific function (e.g., a “Subtraction”). The results of the arithmetic unit are also stored into a register, and so on. The general scheme is the following (see Fig. 9): one has a programming unit; one has registers; and one has an arithmetic unit.
There is also the possibility of a simultaneous output: the result is displayed, for instance, on a “Bild-Schirm” (screen); this is called the “Babcock” display. Internally it is arranged in the following manner: the result is directed to a so-called D/A converter (Digital-to-Analog converter), and then to the oscilloscope screen, and a photograph is taken. At this point one must note something: the “Babcock” display is not merely an oscilloscope, but also — via a mirror arrangement — is it possible to get a faithful display of all the stored numbers; however, we spare ourselves the details and refer to the specialist literature.
It is particularly important for the use of these machines that the instructions must be given to the machine in a very precise (explicit) form. The machine calculates only what it has been told to calculate. The instructions, however, can be prepared in such a way that they direct the machine itself — i.e., the machine chooses its own path. For example, one can bring about a situation where the machine decides whether its computation is already converging, or whether additional computation steps are still needed.
Page 23
[continued — figure caption and text]
In a particular embodiment (Ausführungsform) one can conceive of the following arrangement: from a central computing unit, the computation branches, reaches a “Decision” block, and according to the result, either goes back into the computation loop (“Schleife”) or arrives at the output. (Fig. 10 — schematic block diagram)
The first group, that was previously mentioned, from John von Neumann onwards, has at its disposal the following: a machine, a so-called “Monte Carlo” machine, that carries out a large number of random-sample calculations (Monte Carlo calculations). The particular point here is that the machine arrives, through a large number of random sample processes, at a statistical result, and thus is also capable of solving non-linear problems.
The third problem, for which we are about to use the machines, are the so-called “Control Problems.” An example is: one has a highly non-linear system and wants to define the optimal control. With a purely electronic computer this is quite difficult; here is where the significance of the electronic analog computers is seen. At this point one should rightly state that the analogy between the two types of machines is very interesting, and indeed there are certain mathematical operations that are fundamentally more simply to be realized with an analog machine than with a digital machine.
Page 24
Some of the readers will know the problem, that the solution of the differential equation in a neighborhood is essentially not always possible, since the influence of the boundary conditions must be taken into account. When one wants to take into account the boundary conditions at several points, then the computation is no longer straightforward. By means of a purely analytical method one often cannot do this problem at all well, but it is possible to carry it out with the help of an appropriate machine computation. In doing so, one takes a certain “guessed” initial value, carries out the integration of the differential equation, finds the value at the boundary, compares this with the desired boundary value, and then on the basis of the resulting discrepancy adjusts the initial value accordingly. The machine is programmed in such a way that it carries out this process repeatedly (iteratively) until the required accuracy is reached. The machine therefore carries out automatically what would otherwise be done by hand.
One can also solve boundary value problems for partial differential equations; the machine is set up in such a way that all the side conditions are satisfied simultaneously. One has, of course, only approximate solutions in all cases, but these can be made arbitrarily precise. It is quite a different matter whether the problem is unsolvable analytically or merely difficult to integrate — with the machines, many things are possible which are entirely impractical analytically.
Page 25
with the given input data (Eingabewerten), solvable, by setting, for example, a Monte Carlo method in operation to approximate the problem numerically. There is an example: a particle with a mass m moves inside a closed area (see Fig. 11). Let a Monte Carlo method be used for this problem.
At the boundaries of the area, certain conditions are given (reflection, absorption, etc.). The question is: what is the trajectory of the particle? By applying a random-number procedure, one can develop a statistical solution to this type of problem, and indeed entirely modern mathematical methods — the so-called “Monte Carlo” methods — have been used for this.
In the sequel, I would like to address the question of what sort of computation procedure (Rechenverfahren) one uses. The question is, for a given differential equation with given right-hand side, to compute the solution numerically. I shall not elaborate on the purely theoretical side here, but will rather treat the matter from the practical computational standpoint.
The classical difference method (Differenzenverfahren) is particularly widespread and will serve as a basis for the following discussion. One approximates the derivatives by differences (Differenzen), converts the differential equation into a difference equation, and then solves the difference equation. In this way one obtains, at the nodal points (Gitterpunkte) of a chosen grid, approximate values of the desired function. The smaller the grid spacing, the better the approximation.
An important question is: what additional role does the Monte Carlo method play here? In some cases — let us say where the differential equation itself cannot be properly solved — the Monte Carlo method is the only remaining option:
$$\Delta t = \frac{h^2}{2D}$$
where h is some step size and D is a diffusion coefficient. If D is of order 1, the step h must be chosen appropriately small.
In the separate Monte Carlo procedure (Einzelspielverfahren), one follows a single particle’s path and records the endpoint; one then takes a large number of paths and forms the average. The results of the calculations, the “averages” (Mittelwerte), can then be evaluated statistically. This method has the advantage that it gives reliable results even when the problem is extremely complicated analytically.
Page 26
The solution of a differential equation can also be carried out by a differentiation (Differentiationsverfahren). One uses, in fact, a combination: one carries out partial integration on the differential equation, and solves with the help of a summation over the lattice (Gitterpunkte). In this process one makes use of the following: the differential operator is replaced by the corresponding integral operator, which is in every case finite and bounded. This procedure has certain advantages over a purely numerical procedure, but also has its drawbacks, especially when the function to be integrated has singularities.
There is a further possibility, that one rarely encounters in textbooks: the “Shooting Method.” In principle, it is carried out as follows: one takes a certain initial value, integrates the differential equation from an initial point to the boundary point, and checks whether the boundary condition at the endpoint is satisfied. If not, one modifies the initial value and repeats the procedure. This process is iterated until the boundary condition is fulfilled with the required accuracy.
The general form of the error estimate (Fehlerabschätzung) for numerical differentiation is somewhat complex and need not be discussed in detail here. In summary, the Shooting Method is very well suited to the numerical computation of boundary value problems for ordinary differential equations, and analog computers are also particularly well suited for such problems.
Page 27
It does not matter whether these problems arise in aeronautical engineering or in the realm of more general technical problems. Analogically programmed boundary value problems can also be solved with the machine. However, the programming of these problems for the machine requires a certain amount of care, since one must ensure that at the end of each iteration the machine does start a fresh run. The machine is able to carry out these iterations automatically, to the extent that the iteration step size can be programmed, and that the machine is thus capable of carrying out a large number of such iteration steps in a relatively short time.
The main difficulty is however not in the arithmetic, but in the programming itself: one must be quite sure that at each stage of the solution, the machine is doing the right thing, that it is not getting stuck in an endless loop, and that it is producing output in a comprehensible form. The programming of such problems is therefore a demanding task, and there is a genuine art to it.
Finally, one should mention one more important feature of these machines: they possess — at least the largest ones — a large high-speed memory (Schnellspeicher) and also an external memory (Außenspeicher), which are connected in a well-defined manner with the computing part. In this way the machine itself is able to perform a large number of different computations in a sequence, provided only that the required data and programs have been entered and can be retrieved as needed.
Page 28
as long as one always possesses enough scientists, and one always finds good mathematicians who are willing to collaborate. The main attraction is that it is an enormously interesting area, and we here are actually in a position to do something really new.
Third Chapter
THE GÖTTINGEN ELECTRONIC CALCULATING MACHINES
Prof. Dr. L. Biermann
Max-Planck-Institut für Physik, Göttingen
and Universität Göttingen
Page 29
§ 1. Origin of the Development Plans
The origin of our development plans lies in practical problems from the domain of theoretical physics. The calculations are concerned with solutions of specific physical problems whose numerical integration requires great computational expenditure. About two years ago the question arose whether it was possible — also in Germany — to build a machine that should solve problems of this kind. In Germany, it was at that time a quite novel idea. The first discussion about it took place in May 1947 at the Max-Planck-Institut for Physics, while about 3–4 people participated. The result of this discussion was that it was possible — given the right personnel — to bring such a project to completion at the Max-Planck-Institut.
At that time, several people participated in the Max-Planck-Institut for Physics in its Göttingen development work, including Dr. Billing and others of his collaborators, who then built the “G1” relay machine. The development work proceeded partly with support from the Physics Division of the Institut, and partly from funds obtained from other sources.
Page 30
to the problems set by the task, it is entirely in the interest of the IÄ-machine (computing machine) to solve, among others: (a) the problem of numerical integration of special physical differential equations, and (b) to carry out corresponding numerical calculations within wider physical problems.
It became clear that such a machine required, first of all, a set of reliable components. The fact that it had at first been contemplated to use electrostatic storage tubes (Kathodenstrahlröhren-Speicher) was later reconsidered. It eventually became clear that a relay storage system (Relaisspeicher) was more reliable for the purposes of scientific computation in the environment of the Institut.
At that time it was not yet certain what operating frequency the machine should have. The machine “G1” (Göttingen I) has a clock frequency of 125 Hz. Although the machine operates at a quite modest speed, it has shown itself sufficiently reliable in practice for the purposes for which it was intended.
For instance, the machine can, in a reasonable amount of time, solve the Schrödinger equation for a two-electron problem with a precision corresponding to about 3 significant figures. Each computation step takes the machine just under 1 second. However, the machine has in a given time always solved one particular problem — it is not a multipurpose machine of the freely programmable type.
When the machine has a specific problem to tackle, one makes the appropriate settings on the panel (Schalttafel), plugs in the necessary connecting wires (Kabel), and proceeds accordingly. The machine then carries out the required computation. There have been instances in which problems that required 3 to 4 hours of machine time yielded meaningful results.
Page 31
§ 3. The G 1
Wahrend (while) the machine G 1 is in use within the Institut, the question arose of whether it was interesting also from an educational standpoint, and in particular whether it might be valuable for students to gain a direct understanding of the principles involved.
For instance, the question arose: given a specific problem that one wishes to compute — e.g., a rather simple second-order differential equation — how does one set up the machine to compute it? One notes that the machine G1 has 2 binary digit registers (Stellen), which means that each computation carries, let us say, about 2 × 10^(-5) relative error. For the machine G1 this can be up to about 2 × 10^(-5).
For each “default” computation step, the machine requires a certain time. If one takes, for example, the number m = 21, one has the computation lasts 21 “steps” (Schritte), whereby each step takes about a millisecond. The total computation for a specific problem may thus require anywhere from fractions of a second to many hours, depending on the number of computational steps required.
The structure of the program is, in simplified form, as follows: one has the program counter (Programm-Zähler), which tells the machine at each moment what step to take next. From outside, the machine can be given a starting command (Startimpuls). From then on, the machine runs through the steps specified by the program. (Fig. 12 — block diagram of G1)
The lower part (Unterbau) of the G1 machine consists of the relay panels and wiring. The program itself can contain conditional branches — i.e., depending on the sign or magnitude of an intermediate result, the machine can take one of two alternative paths through the computation.
Page 32
It is possible to represent, at each chosen point in the program, all states of the machine at that moment, so that one can at each step check: “Is the result plausible? Has a correct result been arrived at?” The general scheme is as follows (Fig. 13):
At the front of the machine, the registers (Reg.) are accessible; in the middle one finds the “Relais-Speicher” (relay storage); and the program itself is in the background (Program). The program is fed into the machine step by step. For each step, the machine reads the program instruction, performs the specified arithmetic or control operation, and then proceeds to the next step.
The process is the following: every problem has to be first “translated” into the instruction vocabulary of the machine, before the machine can actually compute the answer. In other words, the problem is formulated in a specific formal language, and translated into a sequence of individual instructions. This “translation” is itself a considerable task, and requires that the person doing it — the programmer — understands precisely both the mathematical problem and the operation of the machine.
One further important fact should be noted: there is a “test” that one carries out after each computation run to verify that the results make sense. This verification step is absolutely essential with machines of this type, and no experienced programmer will neglect it.
Page 33
a.) The abbreviation list (Abkürzungsliste) shows which symbol corresponds to which machine instruction.
b.) The content of the register Q at a given step reflects the current value of the quantity being processed.
c.) The accumulator (Akkumulator) of the machine accumulates partial results as the computation progresses.
d.) The content of the register Q is then available for the next step.
For programming in the G1 machine:
- all machine instructions are defined (symbols for the operations);
- the sequence of operations is specified in the program list;
- execution is carried out step by step, with the result from each step being available for the subsequent steps.
§ 5. Problems
The third type of problem is: to deal with a problem that has a continuously varying solution. An example is: one wishes to simulate the motion of celestial bodies, the orbital computation of satellites or comets. An example of such a computation is the calculation of the orbit of comet Schwassmann-Wachmann (Bahn des Kometen Schwassmann-Wachmann). This is a practically interesting problem for the following reason: this particular comet behaves in a highly unusual manner (highly unusual trajectory). The situation is the following: the orbit of this comet is such that it undergoes major perturbations (Störungen) by Jupiter, and the computation of these perturbations requires a lengthy numerical integration of the equations of motion.
Page 34
And for this problem, the G1 (Göttingen I) machine is of great use (interest). Today it is no longer in doubt that the analog computer is also very useful in this domain.
Particularly interesting, in a practical sense, is the following question: can one evaluate, say, the convergence of a certain computation and decide whether additional steps are needed? In this respect the relay machine G1 has a good record: it has a reliability (Zuverlässigkeit) so good that a computation of some hours’ duration can be carried out without error. The individual machine components (Bauelemente) have, in the case of the relay machine, a long useful life, so that the error rate is extremely low.
There is also the following problem, that is quite interesting to solve with the machine: the search for the roots of an algebraic equation. One assumes — this is the standard approach — that a rough initial estimate of the location of the roots is known. One then carries out a Newton-iteration, which converges rapidly toward the true root. The machine is programmed in such a way that it performs this iteration automatically until the required precision is achieved.
The most interesting problems, however, are those of a physical nature, e.g., partial differential equations that arise in theoretical physics (quantum mechanics, radiation transport, electrodynamics). For these kinds of problems — where the solution is not merely a single number but rather a complete function — one requires a particularly powerful machine and especially careful programming. The general structure of the solution algorithm (Lösungsalgorithmus) is the following:
$$\frac{d^2 y}{dx^2} = f(x, y, y’)$$
where y’ denotes the first derivative. One approximates this by differences, and then solves iteratively.
Page 35
reaches, so that one relates its position to a suitable running variable. The overall computation scheme is set up so that at each step the current position value is recalculated, compared with the desired value, and the discrepancy used to guide the next step.
These remarks have already made it clear that the programming of such problems — particularly when the variable range is large — requires a great deal of care. The programmer must possess not only a thorough knowledge of the machine, but also a thorough understanding of the mathematical problem to be solved. A poorly prepared program can lead to a result that is formally correct but numerically meaningless (due to accumulated rounding errors).
Furthermore, the procedure for checking and verifying the results is of great importance. One does not simply accept the output of the machine at face value; rather, one carries out independent spot-checks, compares results at different grid spacings, and in general applies every possible test to ensure that the computed answer is reliable.
There is also the following, highly practical consideration: the machine time available is limited. The G1 machine, operating at 125 Hz, can carry out on the order of a few thousand elementary operations per second. A complex problem may therefore require many hours — or even days — of machine running time. It is therefore important to program as efficiently as possible, to minimize the number of steps, and to avoid any unnecessary repetition.
The interpolation step (Interpolationsschritt) and the extrapolation step (Extrapolationsschritt) are therefore important elements of the overall computation scheme. The programmer must decide, in advance, how many interpolation points are to be used, and must ensure that the required accuracy is achieved within the allotted machine time.
$$y(x) = \sum_{k=0}^{n} \frac{(x-x_0)^k}{k!} \cdot f^{(k)}(x_0) + R_n(x)$$
This formula, which is the Taylor series expansion with remainder, plays a central role in many numerical procedures. In order to minimize the error R_n(x), one must choose n appropriately large — but not so large that the computation becomes impractical.
Page 36
Researchers have increasingly established that such a machine, with (for instance) ten billion computing steps, is indispensable.
Fourth Chapter
THE COMPUTING CENTER (RECHENANSTALT) FOR INDUSTRIAL AND SCIENTIFIC PURPOSES
Dipl.-Ing. K. Dose
Dipl.-Ing. M. Haas
Dr. Tom E.-J.
[Note: The final page (p036) includes the chapter title section and authors for the next chapter, plus a partial continuation note from the end of the Göttingen chapter indicating that the indispensability of large-scale machines with high computing capacity has become fully established.]
[Reference cited at bottom of p036:]
Buchholz, W. (Autumn 1952): [paper presented at the Max-Planck-Institut für Physik in Göttingen; results partly discussed in the “Zeitschrift für angewandte Mathematik und Mechanik” and related venues]. Collaborators in Göttingen include: Dr. Billing, Dr. Haefner, Dr. Stiller, and various other technical staff. The Göttingen machines G1, G2 (Stiller), and later G3 (Tillmetz and various other technical-scientific staff) are in Göttingen.
I. A Brief Overview of the Development of Program-Controlled Computing Machines in Germany up to 1952
The development of program-controlled computing machines began in Germany essentially on private initiative. The author learned of this through the Deutschen Forschungsrat (German Research Council), which took an interest in it and granted financial support from state funds. In the years 1937–1938, he began to build his first machine as a private endeavor at home, which contained many relays and which he tested in the bathtub. In general, these were constructed from 22 to 30 percent with salvage materials. Only when a number of very good results were achieved could a larger construction be started. He had then completed a fully operational special-purpose machine by March 1941, which he was using at this time. Shortly after, the first officially recognized effort was made by him, when Professor Panofsky and from our side Professor Walther, 2 to 3 other colleagues, and he himself appeared before the Reichspost Ministry, where the matter was handled by a very sympathetic Ministerialrat. There, for the first time, there was an official meeting on this subject in Germany.
Then, during the war, the group grew to a strength of about 50 people, and it was only through Professor Schmieden and Walther that they were able to obtain up to 70 percent military exemptions for this group, so that work could continue until 1945. During the war, the author also published a small popular scientific work and a larger technical book for Springer Verlag, and after the war, in 1947, he was able to demonstrate a small prototype device to the Swiss at the ETH Zurich, which was also working satisfactorily. From this, during 1950 to 1952, in collaboration with ETH Zurich, they developed together with Professor Stiefel a large computer for the ETH, called the ERMETH, which is now being further improved and will actually be operational in some months.
A few years ago, the computing machine institute in Darmstadt was established and is operated by Professor Walther. We also have the possibility of using an electronic computing machine through this institute. In addition, very good progress has been made at the institute for applied mathematics at the Technical University of Munich under Professor Bauer, who have already developed an association with an American firm.
Insofar as it is possible to use electronic computing machines through private industry in this country, we have, for example, the firm of Dehomag, which has for a long time been able to supply very good facilities in Stuttgart. I am glad to be able to say that, although Germany has lagged behind in this field up to now, rapid development is now taking place that gives hope that in a few years Germany will not stand too far behind international developments.
II. Machine Requirements for Industrial Applications
Now one comes to the question of what the machines must be able to do. We have already heard about the great possibilities that the machine offers. We had at our disposal, for the various tasks, an entirely small electronic machine for simple computations, a large relay machine for medium-speed computation, and if one needs particularly fast computations, one relies on an institution, for example the one in Darmstadt, where one can have calculations carried out. The computer in Darmstadt charges a certain fee for this, as one can naturally expect, but this fee is not too excessive—one DM per minute, so that for a technical computation that runs for 1–2 hours, the cost need not be too great.
What are the computing tasks that arise for industrial firms? I would say roughly the following: b) Ballistic calculations: This is not a universally pressing matter, but there are certainly firms that have ballistic tasks. c) Optimum adjustment in process technology: One has a certain process, perhaps for chemical synthesis, and one wants to optimize it—to find the best possible operating parameters through computation.
The machine, when it is fully capable, must be able to do the following tasks:
- It must solve systems of equations.
- It should be able to solve differential equations.
- It must have multiplication.
Now there is one important thing: the machine’s capacity. It is not difficult today to construct a machine in which each of the required operations can be carried out individually in isolation. But what is difficult is that the machine can perform these operations at its full computational speed, so that its capability is not wasted. Let me say a few things about this. If one wants to solve a system of equations with n unknowns, then one needs in any case of the order of n² additions and of the order of n² multiplications, etc. This means that for a system with 50 unknowns, one needs about 2,500 additions and 2,500 multiplications, and these must be executed consecutively without interruption.
III. Special Machines
Now there is one more important question about whether one should build special machines or general-purpose machines. To the extent that a firm has to solve the same type of problem repeatedly, a special machine may be the simplest solution. A special machine for a particular purpose can naturally be built more cheaply and is also more reliable because it is simpler. So the question arises about which types of tasks appear so often that one might build a special machine for them.
It is quite certain that in Germany there is at present room for exactly such a special machine, and the author believes that for some of these, the development time needed is not so great. The development time for a special machine would be perhaps 1–2 years, and the operational lifetime of such a machine is very high—1–5 km of paper tape.
IV. The Function-Converter Mechanism
This problem comes at the beginning of the series of problems by Professor Dr. D. Danner, Aachen, (concerning it the author has been able to form a view), and it is relatively close to ordinary tabulator techniques for simple calculations. One can state the following: The goal is to produce, from a tabulated function, the same function at any intermediate or extrapolated points. Let it be supposed that one has a table with n = 13 values. The individual values in the table naturally contain errors due to measurement. One would like, however, to have an interpolating function that passes through or near all these points. If one makes the calculation by the formula given, one can then calculate the corresponding values for all these measurements.
One possible approach to this is, for example, to use least squares. If one has a polynomial of degree p, and one wants to express p + 1 coefficients (e.g., for p = 5 through five Chebyshev polynomials), then one prescribes from the beginning how many parameters the formula must contain, and one selects p + 1 of the prescribed basis functions, and then computes the approximation.
The programming of such a task is not difficult; it is more necessary to think carefully about what one actually wants to achieve. In principle, one will prescribe for each Functional-calculator a number of such programs and then work them off successively. In this way, it succeeds in a short time, either through an approximate method (iteration) or exactly. The iteration here is to be made under certain conditions, and one often succeeds in finding the correct solution more quickly than by the exact method.
V. The Function Converter
This problem, which was already in progress at the beginning, by Prof. Dr. D. Danner, is treated here in further detail.
The problem is to establish a connection between the values of a table and a continuous functional representation. One can state the following about this: One is dealing with a tabulated function, and from this table one desires an interpolation formula. To this end, one minimizes the sum of squared deviations (least squares). It is assumed that the function can be decomposed into a sum of basis functions, and the corresponding coefficients are then to be determined. The calculation of these coefficients reduces essentially to the solution of a system of normal equations.
In the most general form, the function is:
y = Σ aₖ · φₖ(x)
where the φₖ(x) are the given basis functions (e.g., Chebyshev polynomials), and the aₖ are the unknown coefficients. The normal equations have the form:
Σⱼ (Σᵢ φₖ(xᵢ) · φⱼ(xᵢ)) · aⱼ = Σᵢ φₖ(xᵢ) · yᵢ
for k = 0, 1, 2, …, p. From these, one determines the aₖ values. This system is then well suited for solution by a computing machine.
For this to be fully feasible in practice, one must multiply all values by a K-factor, the so-called Normalization factor. If one then substitutes this in the formula, one obtains as a Chebyshev polynomial an expression of the form (e.g., for p = 5):
y = a₀ · T₀(x) + a₁ · T₁(x) + a₂ · T₂(x) + …
which then permits a particularly simple computation on the machine because the individual Tₖ values can be recursively calculated in the direction of integration, and already at the Chebyshev level the calculation shows stability.
One needs to make the program relatively transparent, so that the machine can work through it step by step, and that the solution thus yields the correct coefficients of the approximation polynomial. As soon as one has this, one can then use the formula to compute y for any desired x-value.
Discussion Statement
(Prof. Dr.-Ing. W. Müller, Aachen, Director of the Versuchswissenschaftlichen Instituts)
One is permitted to ask whether the boundary condition is already being satisfied by the program. In later computation one is also at the boundary; must the boundary value be computed from the boundary condition, or does the machine determine the boundary value from the program?
To take a simple example: there is a drum rotating about an axis. In the forward direction it takes a certain time, in the backward direction somewhat more. At a certain rotational speed, it can occur that the drum wants to move forward in one direction and backward in the other direction. In the latter case, the motion cannot be computed at all.
The driving torque and braking resistance have been set. Now the drum occupies a position determined by the angle φ. After a half-revolution it takes a different position. The return behavior cannot be simply computed from the program.
The programming difficulty consists in this: one must make a decision at each step whether to continue using the forward integration path or whether an inversion of direction has occurred. The machine can handle this by: providing for each time step a checking computation that evaluates a certain expression, and if this expression fulfills a certain condition (e.g., the direction has changed), then the program branches to a sub-program.
In general, even with an intermediate function, the situation can be so arranged that the function is multipled by a certain factor, so as to continue integrating. In this respect it is necessary that the machine have the capability of making decisions based on comparison of numbers and branching accordingly—that is, it needs conditional jump instructions.
The machine solution (depending on the character of the problem) can in individual cases be faster than the relay machine; thus there are already clear indications for a specific Typus of computation, and moreover, this is becoming more apparent day by day, so that the Darmstadt machine, which is now available and has already acquired a rather large number of operators, is, to a certain extent, already making progress.
§ 5. The Function-Converter Problem
This problem, which comes from Professor Dr. D. Stamer, Aachen, (in conversation it was shown that the authors were also in personal contact with it), is one in which one seeks to obtain, from a continuous solution of a differential equation over a certain interval, a stable method that is not excessively costly in terms of machine time.
One can state the following: The method can already be set up for a machine of this type. Each differential equation can be solved in the following way: one has in this case a boundary-value problem, i.e., the boundary conditions are imposed at the endpoints of the interval. The solution of this boundary-value problem is then sought by the so-called shooting method or difference method. The question then arises of whether the machine can yield, in a finite number of steps, a usable solution.
In general, such function-converter calculations require:
- A multiplication at each step.
- An addition or subtraction.
- A comparison (for the decision).
- A possible branching.
And from this follows the number of operations per step, and from the step count the overall computation time.
The processing time of such a problem, 5–6 minutes, is a realistic estimate—this is not a very large computation. The general solution can be assembled from several problems. The question is merely: how many Integrator stages are sufficient?
There are certain rules of thumb: one should use at least 3–5 integration steps, since a single-step process is not always stable. The decision of whether a 3-step or a 5-step method is better depends partly on the character of the problem and partly on whether one wants speed or accuracy.
Discussion Questions and Answers Regarding the Function-Converter Problem
Frage (Question): (Prof. Dr. Walther)
Is it possible to fit a smoother curve to the measurement points given the measurement errors, and in what way does the machine do this?
Antwort (Answer): (Dr. Burkner)
Yes, the machine is able to construct, to a certain extent, the values of individual segments or sub-ranges of the curves, so that the result is smooth. The method being used here is that the machine itself generates the values and then compares these with the measurements. The deviations are then computed and the curve corrected.
Frage: (Prof. Dr. Walther)
Can the Integral be obtained in the course of solving these curves?
Antwort: (Dr. Burkner)
Yes, that is certainly possible. The integral is obtained directly from the integration process that the machine performs. The machine carries out the integration and simultaneously yields the integral value as a number.
Frage: (Prof. Dr. Walther)
How long is the Computation time for a solution to this Integral?
Antwort: (Dr. Burkner)
That depends on the step count and on the number of integration stages used. For a relatively simple case with 5 steps, the computation time is perhaps of the order of a few seconds per stage, and the total for an entire curve is perhaps a few minutes.
Frage: (Prof. Dr. Walther)
When is the Integral multiplied, and by what amount?
Antwort: (Dr. Burkner)
The Integral is multiplied at each step by the step width h. The sum of all products yields the numerical value of the integral.
Frage: (Prof. Dr. Stamer)
What would be the difficulty in setting up the program for an analogous situation?
Antwort: (Dr. Burkner)
Yes, this can be done. If it is not too difficult for the machine—i.e., if there are no branches or decisions that are too complex—then the setup of the program is relatively straightforward. One requires, first, that the formula be correctly written, and then that the sequence of operations in the program be arranged in such a way that the machine can work through it. The number of program steps is not very large in such a case.
Frage: (Prof. Dr. Stamer)
Is the computing time much longer than ordinary computation?
Antwort: (Dr. Burkner)
The pure computation time is not much longer than for ordinary operations; the overhead lies more in the preparation and setup of the program. The machine computes very quickly once the program is set up.
Now it should be noted, however, that in each such calculation the values of integral and differential operators are correctly taken into account. This means that if one uses an appropriate step size h, the integration errors remain small. One must note, however, that the method does not work for every type of program. For certain types of differential equations the method may not be stable, and one then gets a growing error term.
If one wants to increase the stability of the method, one can use a smaller step size h. This, however, increases the total number of operations. The question is therefore always: what is the best balance between accuracy and computation time, and what is the nature of the required precision?
Frage: (Prof. Dr. Stamer)
What are the most important points in the boundary conditions for the machine?
Antwort: (Dr. Burkner)
The most important element is that the machine can carry out comparisons. The machine should have, at each decision point, a program branch that has been set up correctly so that both conditions (the forward step and the reverse step) are already built into the program. If this is done well, the machine can navigate through the process automatically.
A further critical element is the representation of the boundary values in the program. The machine must be informed at which points the boundary conditions hold, and whether these conditions are to be applied uniformly to all stages of the computation or only in certain sub-steps. A systematic arrangement of this information is necessary.
§ 6. Development Problems of the Function Converter
In continuation of the above discussion, further development problems are examined. One notes that the function converter is not yet sufficiently well understood so that a universally applicable program can be stated. There remain certain types of boundary conditions and certain classes of differential equations for which the method fails or is very slow.
The question for future research is therefore: how can one improve the method, so that it remains useful even in the general case?
One thought is that one can use the method of iteration: instead of determining the exact solution at once, one begins with an approximate solution and successively improves it. This can be done, for example, by starting with a first estimate, then computing the correction, applying it, computing the next correction, and so on until the corrections become negligibly small.
This iterative approach has the advantage that it can be applied even when the exact solution cannot be computed in closed form. The convergence of the iteration depends on the problem; in some cases it is fast, in others slow or not at all convergent.
Another thought is that one should use not a single step width h throughout, but instead adapt the step width to the local behavior of the solution—a method known as step-width control. This requires, however, that the machine be capable of making decisions about whether the current step is too large or too small, and then adjusting accordingly. This is more demanding in terms of programming but can substantially reduce the overall computation time.
The general development direction for the machine solution of differential equations is therefore toward greater flexibility: the ability to handle more complex boundary conditions, the ability to adapt the step size, and the ability to recognize and handle special cases such as singularities and discontinuities. These are among the most pressing open problems in the field.
[page 51: partial page — continuation of closing remarks]
Similarly straightforward. The programming succeeds relatively easily, but for a more complex notation, however, a more capable machine is required first. That becomes feasible when one can rely on it well; when the machine is reliable, then the tool is worthwhile, because then the operator is the bottleneck.