Numerical Methods in Engineering with Python

by Jaan Kiusalaas

Numerical Methods in Engineering with Python

NumericalMethodsInEngineeringWithPython is a text for engineering
students and a reference for practicing engineers, especially those
who wish to explore the power and efficiency of Python. The choice of
numerical methods was based on their relevance to engineering problems.
Every method is discussed thoroughly and illustrated with problems
involving both hand computation and programming. Computer
code accompanies each method and is available on the book web site.
This code is made simple and easy to understand by avoiding complex
book-keeping schemes, while maintaining the essential features of the
method Python was chosen as the example language because it is elegant,
easy to learn and debug, and its facilities for handling arrays are
unsurpassed. Moreover, it is an open-source software package that can
be downloaded freely on theweb. Python is a great language for teaching
scientific computation.

e-books shop
e-books shop
Purchase Now !
Just with Paypal



Book Details
 Price
 2.00
 Pages
 433 p
 File Size 
 4,054 KB
 File Type
 PDF format
 ISBN-13
 ISBN-10
 978-0-511-12810-3
 0-511-12810-X
 Copyright©   
 Jaan Kiusalaas 2005 

Preface
This book is targeted primarily toward engineers and engineering students of advanced
standing (sophomores, seniors and graduate students). Familiarity with a
computer language is required; knowledge of basic engineering mechanics is useful,
but not essential.

The text attempts to place emphasis on numerical methods, not programming.
Most engineers are not programmers, but problem solvers. They want to know what
methods can be applied to a given problem, what are their strengths and pitfalls and
howto implement them. Engineers are not expected to write computer code for basic
tasks from scratch; they are more likely to utilize functions and subroutines that have
been already written and tested. Thus programming by engineers is largely confined
to assembling existing pieces of code into a coherent package that solves the problem at hand.

The “piece” of code is usually a function that implements a specific task. For the
user the details of the code are unimportant. What matters is the interface (what goes
in and what comes out) and an understanding of the method on which the algorithm
is based. Since no numerical algorithm is infallible, the importance of understanding
the underlying method cannot be overemphasized; it is, in fact, the rationale behind
learning numerical methods.

This book attempts to conform to the views outlined above. Each numerical
method is explained in detail and its shortcomings are pointed out. The examples that
followindividual topics fall into two categories: hand computations that illustrate the
innerworkings of themethodandsmall programsthat showhowthe computer code is
utilized in solving a problem. Problems that require programming are marked with.
The material consists of the usual topics covered in an engineering course on
numerical methods: solution of equations, interpolation and data fitting, numerical
differentiation and integration, solution of ordinary differential equations and eigenvalue
problems. The choice of methods within each topic is tilted toward relevance
to engineering problems. For example, there is an extensive discussion of symmetric,
sparsely populated coefficient matrices in the solution of simultaneous equations.
In the same vein, the solution of eigenvalue problems concentrates on methods that
efficiently extract specific eigenvalues from banded matrices.

An important criterion used in the selection of methods was clarity. Algorithms
requiring overly complex bookkeepingwere rejected regardless of their efficiency and
robustness. This decision, which was taken with great reluctance, is in keeping with
the intent to avoid emphasis on programming.

The selection of algorithms was also influenced by current practice. This disqualified
several well-known historical methods that have been overtaken by more recent
developments. For example, the secant method for finding roots of equations was
omitted as having no advantages over Brent’s method. For the same reason, the multistep
methods used to solve differential equations (e.g.,Milne and Adams methods)
were left out in favor of the adaptive Runge–Kutta and Bulirsch–Stoer methods.
Notably absent is a chapter on partial differential equations. It was felt that this
topic is best treatedby finiteelementorboundaryelementmethods,whichare outside
the scope of this book. The finite difference model, which is commonly introduced
in numerical methods texts, is just too impractical in handling multidimensional
boundary value problems.

As usual, the book contains more material than can be covered in a three-credit
course. The topics that can be skipped without loss of continuity are tagged with an asterisk (*).
The programs listed in this book were tested with Python 2.2.2 and 2.3.4 under
Windows XP and RedHat Linux. The source code can be downloaded from the book’s
website at
The author wishes to express his gratitude to the anonymous reviewers and
Professor Andrew Pytel for their suggestions for improving the manuscript. Credit
is also due to the authors of Numerical Recipes (Cambridge University Press) whose
presentation of numerical methods was inspirational in writing this book.


Table of Contents

Preface. . . . . . . . . vii
1. Introduction to Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 1
2. Systems of Linear Algebraic Equations . . . . . . . . . . . .. 27
3. Interpolation and Curve Fitting. . . . . . . . . . . . . . . . . . . . . 103
4. Roots of Equations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .142
5. Numerical Differentiation . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
6. Numerical Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
7. Initial Value Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
8. Two-Point Boundary Value Problems . . . . . . . . . . . . . . . 295
9. Symmetric Matrix Eigenvalue Problems. . . . . . . . . . . . 324
10. Introduction to Optimization . . . . . . . . . . . . . . . . . . . . . . . 381
Appendices . . . . 409
Index . . . . . . . . . . . 419


Bookscreen
e-books shop

Author
Jaan Kiusalaas is a Professor Emeritus in the Department of Engineering
Science andMechanics at the Pennsylvania State University. He has
taught computer methods, including finite element and boundary element
methods, for over 30 years. He is also the co-author of four other
books—EngineeringMechanics:Statics,EngineeringMechanics:Dynamics,
Mechanics of Materials, and an alternate version of this work with MATLAB® code.
Previous Post Next Post