TIENE EN SU CESTA DE LA COMPRA
en total 0,00 €
Makes Numerical Programming More Accessible to a Wider Audience
Bearing in mind the evolution of modern programming, most specifically emergent programming languages that reflect modern practice, Numerical Programming: A Practical Guide for Scientists and Engineers Using Python and C/C++ utilizes the author's many years of practical research and teaching experience to offer a systematic approach to relevant programming concepts. Adopting a practical, broad appeal, this user-friendly book offers guidance to anyone interested in using numerical programming to solve science and engineering problems. Emphasizing methods generally used in physics and engineering-from elementary methods to complex algorithms-it gradually incorporates algorithmic elements with increasing complexity.
Develop a Combination of Theoretical Knowledge, Efficient Analysis Skills, and Code Design Know-How
The book encourages algorithmic thinking, which is essential to numerical analysis. Establishing the fundamental numerical methods, application numerical behavior and graphical output needed to foster algorithmic reasoning, coding dexterity, and a scientific programming style, it enables readers to successfully navigate relevant algorithms, understand coding design, and develop efficient programming skills. The book incorporates real code, and includes examples and problem sets to assist in hands-on learning.
Begins with an overview on approximate numbers and programming in Python and C/C++, followed by discussion of basic sorting and indexing methods, as well as portable graphic functionality
Contains methods for function evaluation, solving algebraic and transcendental equations, systems of linear algebraic equations, ordinary differential equations, and eigenvalue problems
Addresses approximation of tabulated functions, regression, integration of one- and multi-dimensional functions by classical and Gaussian quadratures, Monte Carlo integration techniques, generation of random variables, discretization methods for ordinary and partial differential equations, and stability analysis
This text introduces platform-independent numerical programming using Python and C/C++, and appeals to advanced undergraduate and graduate students in natural sciences and engineering, researchers involved in scientific computing, and engineers carrying out applicative calculations.
Approximate Numbers
Sources of Errors in Numerical Calculations
Absolute and Relative Errors
Representation of Numbers
Significant Digits
Errors of Elementary Operations
References and Suggested Further Reading
Basic Programming Techniques
Programming Concepts
Functions and Parameters
Passing Arguments to Python Functions
Passing Arguments to C/C++ Functions
Arrays in Python
Dynamic Array Allocation in C/C++
Basic Matrix Operations
References and Suggested Further Reading
Elements of Scientific Graphics
The Tkinter Package
The Canvas Widget
Simple Tkinter Applications
Plotting Functions of One Variable
Graphics Library graphlib.py
Creating Plots in C++ Using the Library graphlib.py
References and Suggested Further Reading
Sorting and Indexing
Introduction
Bubble Sort
Insertion Sort
Quicksort
Indexing and Ranking
Implementations in C/C++
Problems
References and Suggested Further Reading
Evaluation of Functions
Evaluation of Polynomials by Horner's Scheme
Evaluation of Analytic Functions
Continued Fractions
Orthogonal Polynomials
Spherical Harmonics Associated Legendre Functions
Spherical Bessel Functions
Implementations in C/C++
Problems
References and Suggested Further Reading
Algebraic and Transcendental Equations
Root Separation
Bisection Method
Method of False Position
Method of Successive Approximations
Newton's Method
Secant Method
Birge-Vieta Method
Newton's Method for Systems of Nonlinear Equations
Implementations in C/C++
Problems
References and Suggested Further Reading
Systems of Linear Equations
Introduction
Gaussian Elimination with Backward Substitution
Gauss-Jordan Elimination
LU Factorization
Inversion of Triangular Matrices
Cholesky Factorization
Tridiagonal Systems of Linear Equations
Block Tridiagonal Systems of Linear Equations
Complex Matrix Equations
Jacobi and Gauss-Seidel Iterative Methods
Implementations in C/C++
Problems
References and Suggested Further Reading
Eigenvalue Problems
Introduction
Diagonalization of Matrices by Similarity Transformations
Jacobi Method
Generalized Eigenvalue Problems for Symmetric Matrices
Implementations in C/C++
Problems
References and Suggested Further Reading
Modeling of Tabulated Functions
Interpolation and Regression
Lagrange Interpolation Polynomial
Neville's Interpolation Method
Cubic Spline Interpolation
Linear Regression
Multilinear Regression Models
Nonlinear Regression: The Levenberg-Marquardt Method
Implementations in C/C++
Problems
References and Suggested Further Reading
Integration of Functions
Introduction
Trapezoidal Rule; A Heuristic Approach
The Newton-Cotes Quadrature Formulas
Trapezoidal Rule
Simpson's Rule
Adaptive Quadrature Methods
Romberg's Method
Improper Integrals: Open Formulas
Midpoint Rule
Gaussian Quadratures
Multidimensional Integration
Adaptive Multidimensional Integration
Implementations in C/C++
Problems
References and Suggested Further Reading
Monte Carlo Method
Introduction
Integration of Functions
Importance Sampling
Multidimensional Integrals
Generation of Random Numbers
Implementations in C/C++
Problems
References and Suggested Further Reading
Ordinary Differential Equations
Introduction
Taylor Series Method
Euler's Method
Runge-Kutta Methods
Adaptive Step Size Control
Methods for Second-Order ODEs
Numerov's Method
Shooting Methods for Two-Point Problems
Finite-Difference Methods for Linear Two-Point Problems
Implementations in C/C++
Problems
References and Suggested Further Reading
Partial Differential Equations
Introduction
Boundary-Value Problems for Elliptic Differential Equations
Initial-Value Problems for Parabolic Differential Equations
Time-Dependent Schrödinger Equation
Initial-value Problems for Hyperbolic Differential Equations
Implementations in C/C++
Problems
References and Suggested Further Reading
Appendices
Index