Computation in Science (Second Edition). Konrad HinsenЧитать онлайн книгу.
time scales of scientific progress and computing
7.5 The industrialization of science
Preface
In the course of only a few decades, computers have revolutionized scientific research and have become indispensable tools for both experimentalists and theoreticians. More and more scientists are writing computer programs for doing their work, and practically all scientists today use computer programs written by somebody else. Sometimes they do so without even being aware of it, in particular when these programs are integrated into lab instruments.
In spite of the ubiquitous use of computers in science, few researchers in the natural sciences have any formal training in computer science, software engineering, or numerical analysis. They usually acquire their computing knowledge ‘on the job’, and as a consequence it is usually limited to the practical knowledge required for applying computational tools. A big part of this practical knowledge is about specific computing technologies which, given the fast pace of change in this field, tend to be short-lived. Scientists often feel overwhelmed by the amount of computing knowledge they have to absorb, while at the same time lacking a solid understanding of the basic principles of the field.
The goal of this book is to explain these basic principles, and to show how they relate to the tasks of a scientistʼs daily work in the research lab. It provides a high-level overview of those aspects of computer science and software engineering that are most relevant for computational science, using a language familiar to scientists, and places them into the context of scientific computing. References to the literature are provided for readers wishing to study a particular aspect in more depth. My hope is that this book will allow its readers to use computers with more confidence, and to see computing technologies in a different light, evaluating them on the basis of how they contribute to doing better science.
The intended audience for this book includes both graduate students and experienced scientists. Some hands-on experience with computing is highly desirable, but no competence in any particular computing technology is expected. Most of this book is relevant to all of the natural sciences. The frontier between the physical and the life sciences is blurring, and computation plays a big part in this change. An interdisciplinary approach to computational science therefore seems the most appropriate one for the 21st century. Its main drawback is that some misunderstandings are inevitable. Even a term as basic as ‘theory’ or ‘model’ can have different meanings in different fields. My own background in theoretical physics will certainly show through occasionally. If anything I say seems strange or wrong, please consider that this may just reflect a cultural difference.
The website at http://computation-in-science.khinsen.net/ contains complementary material to this book, in particular references to on-line material that I consider of interest for my readers. I will regularly add new references that I discover and remove links that no longer work.
Acknowledgements
In writing this book, critical comments from a diverse team of reviewers have been invaluable. My thanks go to Jane Charlesworth, Alice della Penna, Javier Galgarra, Jeremy Gray, Chris Ing, Arnaud Legrand, Tim Rice, and in particular Ian Hawke. They have all provided valuable feedback to drafts of the text, which I hope to have used wisely for improving the presentation.
Author biography
Konrad Hinsen
Konrad Hinsen is a research scientist with a background in statistical physics. He develops and uses computational methods for the study of complex systems. Most of his work centers around the structure and dynamics of proteins, at the interface of theory and experiment. He holds a PhD in physics from RWTH Aachen University, and conducts his research at the Centre de Biophysique Moléculaire in Orléans and at the Synchrotron SOLEIL in Saint Aubin. In addition to his research activity, he teaches courses on computational science and works as a department editor for Computing in Science and Engineering magazine.
IOP Publishing
Computation in Science (Second Edition)
From concepts to practice
Konrad Hinsen
Chapter 1
What is computation?
This book is about computation in the context of scientific research. Scientists should always try to be precise about what they say, so I will start by explaining what this term actually means. It turns out that this is not as trivial as it may seem to be. Moreover, there are also pragmatic reasons for discussing the nature of computation, because a good grasp of what computation actually is makes it much easier to appreciate what it can and cannot be used for in scientific research.
Common dictionary definitions of computation are remarkably imprecise. Oxford proposes ‘the action of mathematical calculation’ or ‘the use of computers, especially as a subject of research or study’. Merriam-Webster has ‘the act or action of computing: calculation’ or ‘the use or operation of a computer’ but also ‘a system of reckoning’. Both dictionaries refer to ‘calculation’, but do not provide useful definitions for that word either. The vagueness of these dictionary definitions can be traced back to the long-lasting confusion about what computation is and how it relates to mathematics. It was only the development of formal logic and mathematical formalism in the early 20th century that led to a precise definition of computation, which helped to pave the way to the development of automatic computing machines. This definition is the topic of section 1.1.
Beyond the exploration of what defines computation, I will also look at what computation is for scientists, i.e. why computation is so important in scientific research. Most scientists probably think of computers and computation as tools that they use to process experimental data or mathematical equations. However, there are other roles that computation plays in science, and which I will briefly discuss in section 1.2.
1.1 Defining computation
1.1.1 Numerical computation
The most familiar computations are the numerical calculations that we all do in everyday life: adding up prices, multiplying the length and width of a room to compute its surface, dividing a quantity into equal parts, etc. Most people today have even more occasions for doing numerical calculations in their professional lives. Basic arithmetic on anything that can be quantified is so fundamental that it takes up a significant part of training in the first years of school. Mechanical aids for numerical operations, such as the abacus, have been used for at least 2000 years and perhaps even for much longer.
We do not think much about how we do simple arithmetic operations on small numbers, and in fact we often just recall the result that we have internalized due to frequent use. But as soon as we work on larger numbers, mental calculation becomes a mechanical activity based on rules we have learned. An example for such a rule is: to multiply a number by 9, multiply it by ten and then subtract the original number.
When operations become too complex to be handled in the head, we turn to pen and paper for a more reliable record of the intermediate results in our calculations. A large number of calculation techniques with pen and paper have been developed in the course of the centuries, ranging from addition via long division to the calculation of cube roots.
As a simple example, consider adding the numbers 173 and 51. One way to do it systematically starts by writing