Computational science (or
scientific computing) is the field of study concerned with constructing
mathematical modelA mathematical model uses mathematical language to describe a system. Mathematical models are used not only in the natural sciences and engineering disciplines but also in the social sciences ; physicists, engineers, computer scientists, and economists use...
s and numerical solution techniques and using computers to analyse and solve scientific, social scientific and
engineeringEngineering is the discipline, art and profession of acquiring and applying technical, scientific and mathematical knowledge to design and implement materials, structures, machines, devices, systems, and processes that safely realize a desired objective or inventions.The American Engineers' Council...
problems. In practical use, it is typically the application of
computer simulationA computer simulation, a computer model, or a computational model is a computer program, or network of computers, that attempts to simulate an abstract model of a particular system...
and other forms of
computationComputation is a general term for any type of information processing. This includes phenomena ranging from human thinking to calculations with a more narrow meaning. Computation is a process following a well-defined model that is understood and can be expressed in an algorithm, protocol, network...
to problems in various scientific disciplines.
The field is distinct from
computer scienceComputer science is the study of the theoretical foundations of information and computation, and of practical techniques for their implementation and application in computer systems. It is frequently described as the systematic study of algorithmic processes that create, describe and transform...
(the mathematical study of
computationComputation is a general term for any type of information processing. This includes phenomena ranging from human thinking to calculations with a more narrow meaning. Computation is a process following a well-defined model that is understood and can be expressed in an algorithm, protocol, network...
,
computerA computer is a machine that manipulates data according to a set of instructions.Although mechanical examples of computers have existed through much of recorded human history, the first electronic computers were developed in the mid-20th century . These were the size of a large room, consuming as...
s and
information processingInformation processing is the change of information in any manner detectable by an observer. As such, it is a process which describes everything which happens in the universe, from the falling of a rock to the printing of a text file from a digital computer system...
).
Computational science (or
scientific computing) is the field of study concerned with constructing
mathematical modelA mathematical model uses mathematical language to describe a system. Mathematical models are used not only in the natural sciences and engineering disciplines but also in the social sciences ; physicists, engineers, computer scientists, and economists use...
s and numerical solution techniques and using computers to analyse and solve scientific, social scientific and
engineeringEngineering is the discipline, art and profession of acquiring and applying technical, scientific and mathematical knowledge to design and implement materials, structures, machines, devices, systems, and processes that safely realize a desired objective or inventions.The American Engineers' Council...
problems. In practical use, it is typically the application of
computer simulationA computer simulation, a computer model, or a computational model is a computer program, or network of computers, that attempts to simulate an abstract model of a particular system...
and other forms of
computationComputation is a general term for any type of information processing. This includes phenomena ranging from human thinking to calculations with a more narrow meaning. Computation is a process following a well-defined model that is understood and can be expressed in an algorithm, protocol, network...
to problems in various scientific disciplines.
The field is distinct from
computer scienceComputer science is the study of the theoretical foundations of information and computation, and of practical techniques for their implementation and application in computer systems. It is frequently described as the systematic study of algorithmic processes that create, describe and transform...
(the mathematical study of
computationComputation is a general term for any type of information processing. This includes phenomena ranging from human thinking to calculations with a more narrow meaning. Computation is a process following a well-defined model that is understood and can be expressed in an algorithm, protocol, network...
,
computerA computer is a machine that manipulates data according to a set of instructions.Although mechanical examples of computers have existed through much of recorded human history, the first electronic computers were developed in the mid-20th century . These were the size of a large room, consuming as...
s and
information processingInformation processing is the change of information in any manner detectable by an observer. As such, it is a process which describes everything which happens in the universe, from the falling of a rock to the printing of a text file from a digital computer system...
). It is also different from theory and experiment which are the traditional forms of science and engineering. The scientific computing approach is to gain understanding, mainly through the analysis of mathematical models implemented on
computerA computer is a machine that manipulates data according to a set of instructions.Although mechanical examples of computers have existed through much of recorded human history, the first electronic computers were developed in the mid-20th century . These were the size of a large room, consuming as...
s.
Scientists and engineers develop computer programs,
application softwareApplication software is a computer program that functions and is operated by means of a computer, with the purpose of supporting or improving the software user's work. In other words, it is the subclass of computer software that employs the capabilities of a computer directly and thoroughly to a...
, that model systems being studied and run these programs with various sets of input parameters. Typically, these models require massive amounts of calculations (usually floating-point) and are often executed on
supercomputerA supercomputer is a computer that is at the frontline of current processing capacity, particularly speed of calculation. Supercomputers were introduced in the 1960s and were designed primarily by Seymour Cray at Control Data Corporation , and led the market into the 1970s until Cray left to form...
s or
distributed computingDistributed computing is a field of computer science that studies distributed systems. A distributed system consists of multiple autonomous computers that communicate through a computer network. The computers interact with each other in order to achieve a common goal...
platforms.
Numerical analysisNumerical analysis is the study of algorithms for the problems of continuous mathematics .One of the earliest mathematical writings is the Babylonian tablet YBC 7289, which gives a sexagesimal numerical approximation of , the length of the diagonal in a unit square.Being able to compute the sides...
is an important underpinning for techniques used in computational science.
Applications of computational science
Problem domains for computational science/scientific computing include:
Numerical simulations
Numerical simulations have different objectives depending on the nature of the task being simulated:
- Reconstruct and understand known events (e.g., earthquake, tsunamis and other natural disasters).
- Predict future or unobserved situations (e.g., weather, sub-atomic particle behaviour).
Model fitting and data analysis
- Appropriately tune models or solve equations to reflect observations, subject to model constraints (e.g. oil exploration geophysics, computational linguistics)
- Use graph theory
In mathematics and computer science, graph theory is the study of graphs: mathematical structures used to model pairwise relations between objects from a certain collection. A "graph" in this context refers to a collection of vertices or 'nodes' and a collection of edges that connect pairs of...
to model networks, especially those connecting individuals, organizations, and websites.
Optimization
- Optimize known scenarios (e.g., technical and manufacturing processes, front end engineering).
Methods and algorithms
Algorithms and mathematical methods used in computational science are varied. Commonly applied methods include:
- Numerical analysis
Numerical analysis is the study of algorithms for the problems of continuous mathematics .One of the earliest mathematical writings is the Babylonian tablet YBC 7289, which gives a sexagesimal numerical approximation of , the length of the diagonal in a unit square.Being able to compute the sides...
- Application of Taylor series
In mathematics, the Taylor series is a representation of a function as an infinite sum of terms calculated from the values of its derivatives at a single point. It may be regarded as the limit of the Taylor polynomials. Taylor series are named after the English mathematician Brook Taylor...
as convergent and asymptotic series
- Computing
Computing is usually defined as the activity of using and developing computer technology, computer hardware and software. It is the computer-specific part of information technology...
derivatives by Automatic differentiationIn mathematics and computer algebra, automatic differentiation , sometimes alternatively called algorithmic differentiation, is a method to numerically evaluate the derivative of a function specified by a computer program....
(AD)
- Computing
Computing is usually defined as the activity of using and developing computer technology, computer hardware and software. It is the computer-specific part of information technology...
derivatives by finite differences
- Graph theoretic suites
- High order difference approximations via Taylor series
In mathematics, the Taylor series is a representation of a function as an infinite sum of terms calculated from the values of its derivatives at a single point. It may be regarded as the limit of the Taylor polynomials. Taylor series are named after the English mathematician Brook Taylor...
and Richardson extrapolationIn numerical analysis, Richardson extrapolation is a sequence acceleration method, used to improve the rate of convergence of a sequence. It is named after Lewis Fry Richardson, who introduced the technique in the early 20th century. In the words of Birkhoff and Rota, ".....
- Methods for integration on a uniform mesh: rectangle rule, trapezoid rule, midpoint rule, Simpson's rule
In numerical analysis, Simpson's rule is a method for numerical integration, the numerical approximation of definite integrals. Specifically, it is the following approximation:.- Quadratic interpolation :...
- Runge Kutta method for solving ordinary differential equations
- Monte Carlo method
Monte Carlo methods are a class of computational algorithms that rely on repeated random sampling to compute their results. Monte Carlo methods are often used when simulating physical and mathematical systems. Because of their reliance on repeated computation of random or pseudo-random numbers,...
s
- Numerical linear algebra
Numerical linear algebra is the study of algorithms for performing linear algebra computations, most notably matrix operations, on computers. It is often a fundamental part of engineering and computational science problems, such as image and signal processing, computational finance, materials...
- Computing
Computing is usually defined as the activity of using and developing computer technology, computer hardware and software. It is the computer-specific part of information technology...
the LUIn linear algebra, the LU decomposition is a matrix decomposition which writes a matrix as the product of a lower triangular matrix and an upper triangular matrix. The product sometimes includes a permutation matrix as well. This decomposition is used in numerical analysis to solve systems of...
factors by Gaussian eliminationIn linear algebra, Gaussian elimination is an algorithm for solving systems of linear equations, finding the rank of a matrix, and calculating the inverse of an invertible square matrix. Gaussian elimination is named after German mathematician and scientist Carl Friedrich Gauss.Elementary row...
- Cholesky factorizations
In linear algebra, the Cholesky decomposition or Cholesky triangle is a decomposition of a symmetric, positive-definite matrix into the product of a lower triangular matrix and its conjugate transpose. It was discovered by André-Louis Cholesky for real matrices and is an example of a square root of...
- Discrete Fourier transform
In mathematics, the discrete Fourier transform is a specific kind of Fourier transform, used in Fourier analysis. It transforms one function into another, which is called the frequency domain representation, or simply the DFT, of the original function...
and applications.
- Newton's method
In numerical analysis, Newton's method , named after Isaac Newton and Joseph Raphson, is perhaps the best known method for finding successively better approximations to the zeroes of a real-valued function...
- Time stepping methods for dynamical systems
Programming languages commonly used for the more mathematical aspects of scientific computing applications include
R (programming language)In computing, R is a programming language and software environment for statistical computing and graphics. It is an implementation of the S programming language with lexical scoping semantics inspired by Scheme. R was created by Ross Ihaka and Robert Gentleman at the University of Auckland, New...
,
MATLABMATLAB is a numerical computing environment and fourth generation programming language. Developed by The MathWorks, MATLAB allows matrix manipulation, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs in other languages...
,
MathematicaMathematica is a computational software program used in scientific, engineering, and mathematical fields and other areas of technical computing...
,
SciLabScilab is a numerical computational package developed since 1990 by researchers from the INRIA and the École nationale des ponts et chaussées . Since the creation of the Scilab consortium in May 2003, it is developed and maintained by the INRIA....
,
GNU OctaveOctave is a computer program for performing numerical computations. It is mostly compatible with MATLAB.As part of the GNU Project, it is free software under the terms of the GNU General Public License.- History :...
,
COMSOL MultiphysicsCOMSOL Multiphysics is a finite element analysis and solver software package for various physics and engineering applications, especially coupled phenomena, or multiphysics. COMSOL Multiphysics also offers an extensive interface to MATLAB and its toolboxes for a large variety of programming,...
,
Python (programming language)Python is a general-purpose high-level programming language. Its design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...
with
SciPySciPy is an open source library of algorithms and mathematical tools for the Python programming language.SciPy contains modules for optimization, linear algebra, integration, interpolation special functions, FFT, signal and image processing, ODE solvers and other tasks common in science and...
, and
PDLPDL is a set of array programming extensions to the Perl programming language.PDL is an extension to Perl v5, intended for scientific and other data intensive programming tasks...
. The more computationally-intensive aspects of scientific computing will often utilize some variation of
CC is a general-purpose computer programming language developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
or
FortranFortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...
.
Computational science application programs often model real-world changing conditions, such as weather, air flow around a plane, automobile body distortions in a crash, the motion of stars in a galaxy, an explosive device, etc. Such programs might create a 'logical mesh' in computer memory where each item corresponds to an area in space and contains information about that space relevant to the model. For example in weather models, each item might be a square kilometer; with land elevation, current wind direction, humidity, temperature, pressure, etc. The program would calculate the likely next state based on the current state, in simulated time steps, solving equations that describe how the system operates; and then repeat the process to calculate the next state.
The term
computational scientistA computational scientist is a person skilled in scientific computing. This person is usually a scientist, an engineer, or an applied mathematician who applies high-performance computers in different ways to advance the state-of-the-art in their respective applied disciplines in physics, chemistry...
is used to describe someone skilled in scientific computing. This person is usually a scientist, an engineer or an applied mathematician who applies high-performance computers in different ways to advance the state-of-the-art in their respective applied disciplines in physics, chemistry or engineering. Scientific computing has increasingly also impacted on other areas including economics, biology and medicine.
Computational science is now commonly considered a third mode of
scienceScience is in its broadest sense to any systematic knowledge-base or prescriptive practice that is capable of resulting in a prediction or predictable type of outcome...
, complementing and adding to experimentation/
observationObservation is either an activity of a living being , consisting of receiving knowledge of the outside world through the senses, or the recording of data using scientific instruments. The term may also refer to any datum collected during this activity.-Observation in science:A scientific method...
and
theoryThe term theory has two broad sets of meanings, one used in the empirical sciences and the other used in philosophy, mathematics, logic, and across other fields in the humanities. There is considerable difference and even dispute across academic disciplines as to the proper usages of the term...
.
http://www.siam.org/students/resources/report.php.
The essence of computational science is numerical algorithm
and/or
computational mathematicsComputational mathematics involves mathematical research in areas of science where computing plays a central and essential role, emphasizing algorithms, numerical methods, and symbolic methods. Computation in the research is prominent. Computational mathematics emerged as a distinct part of applied...
. In fact, substantial effort in computational sciences
has been devoted to the development of algorithms, the efficient implementation in programming languages,
and validation of computational results. A collection of problems and solutions in computational science
can be found in .
Education
Scientific computation is most often studied through an
applied mathematicsApplied mathematics is a branch of mathematics that concerns itself with the mathematical techniques typically used in the application of mathematical knowledge to other domains.-Divisions of applied mathematics:...
or
computer scienceComputer science is the study of the theoretical foundations of information and computation, and of practical techniques for their implementation and application in computer systems. It is frequently described as the systematic study of algorithmic processes that create, describe and transform...
program, or within a standard mathematics, sciences, or engineering program. At some institutions a specialization in scientific computation can be earned as a "minor" within another program (which may be at varying levels). However, there are increasingly many
bachelor'sA bachelor's degree is usually an academic degree awarded for an undergraduate course or major that generally lasts for four years, but can range from two to six years depending on the region of the world...
and master's programs in computational science. Some schools also offer the Ph.D. in computational science,
computational engineeringComputational science and engineering is a relatively new discipline of engineering. It is typically offered as a masters or doctorate program at several institutions...
, computational science and engineering, or scientific computation.
There are also programs in areas such as
computational physicsComputational physics is the study and implementation of numerical algorithms to solve problems in physics for which a quantitative theory already exists...
,
computational chemistryComputational chemistry is a branch of chemistry that uses computers to assist in solving chemical problems. It uses the results of theoretical chemistry, incorporated into efficient computer programs, to calculate the structures and properties of molecules and solids...
, etc.
See also
External links