Book contents
- Frontmatter
- Contents
- Chapter 1 Introduction
- Chapter 2 Octave programming
- Chapter 3 Installing and running the Dev-C++ programming environment
- Chapter 4 Introduction to computer and software architecture
- Chapter 5 Fundamental concepts
- Chapter 6 Procedural programming basics
- Chapter 7 An introduction to object-oriented analysis
- Chapter 8 C++ object-oriented programming syntax
- Chapter 9 Arrays and matrices
- Chapter 10 Input and output streams
- Chapter 11 References
- Chapter 12 Pointers and dynamic memory allocation
- Chapter 13 Memory management
- Chapter 14 The static keyword, multiple and virtual inheritance, templates and the STL
- Chapter 15 Creating a Java development environment
- Chapter 16 Basic Java programming constructs
- Chapter 17 Java classes and objects
- Chapter 18 Advanced Java features
- Chapter 19 Introductory numerical analysis
- Chapter 20 Linear algebra
- Chapter 21 Fourier transforms
- Chapter 22 Differential equations
- Chapter 23 Monte Carlo methods
- Chapter 24 Partial differential equations
- Index
Chapter 4 - Introduction to computer and software architecture
Published online by Cambridge University Press: 05 June 2012
- Frontmatter
- Contents
- Chapter 1 Introduction
- Chapter 2 Octave programming
- Chapter 3 Installing and running the Dev-C++ programming environment
- Chapter 4 Introduction to computer and software architecture
- Chapter 5 Fundamental concepts
- Chapter 6 Procedural programming basics
- Chapter 7 An introduction to object-oriented analysis
- Chapter 8 C++ object-oriented programming syntax
- Chapter 9 Arrays and matrices
- Chapter 10 Input and output streams
- Chapter 11 References
- Chapter 12 Pointers and dynamic memory allocation
- Chapter 13 Memory management
- Chapter 14 The static keyword, multiple and virtual inheritance, templates and the STL
- Chapter 15 Creating a Java development environment
- Chapter 16 Basic Java programming constructs
- Chapter 17 Java classes and objects
- Chapter 18 Advanced Java features
- Chapter 19 Introductory numerical analysis
- Chapter 20 Linear algebra
- Chapter 21 Fourier transforms
- Chapter 22 Differential equations
- Chapter 23 Monte Carlo methods
- Chapter 24 Partial differential equations
- Index
Summary
Scientific programming comprises four basic elements: analyzing a physical problem, developing a numerical algorithm for solving the problem, designing a program that implements this solution within a clear and understandable framework and, finally, determining the accuracy and the limits of validity of the numerical solution. Before discussing these, however, we survey computational methods and software and hardware architecture.
Computational methods
While most textbook problems possess a high degree of symmetry and/or a limited number of variables and can therefore be solved analytically, real-world applications typically require numerical analysis. Further, even analytic solutions can be unstable, as in water flowing through a cylindrical tube at high velocity, for which the motion depends critically on the initial conditions. Numerical calculations are then performed for numerous initial conditions and statistical properties derived from the results.
Often a numerical model of a continuous system recasts the solution to the full, global problem as a set of simplified, coupled local problems, each of which describes the system over a restricted spatial or temporal domain. Continuous operators such as derivatives and integrals are then approximated by employing their definition as the limit of discrete differences and sums but without passing to the infinitesimal limit. As an example, the response of a building to an applied force from the ground can be obtained by noting that the forces on each brick vary only slightly over the surface of the brick. The response of each discrete, rigid, brick to these local applied forces can therefore easily be evaluated. Coupling the forces and displacements on each brick to those on neighboring bricks and to those applied at the boundary between the house and the ground generates a large system of linear equations that is solved numerically.
- Type
- Chapter
- Information
- A Short Course in Computational Science and EngineeringC++, Java and Octave Numerical Programming with Free Software Tools, pp. 22 - 25Publisher: Cambridge University PressPrint publication year: 2012