Muutke küpsiste eelistusi

Practical Numerical and Scientific Computing with MATLAB® and Python [Kõva köide]

  • Formaat: Hardback, 348 pages, kõrgus x laius: 234x156 mm, kaal: 635 g, 56 Illustrations, black and white
  • Ilmumisaeg: 11-Mar-2020
  • Kirjastus: CRC Press
  • ISBN-10: 0367076691
  • ISBN-13: 9780367076696
Teised raamatud teemal:
  • Formaat: Hardback, 348 pages, kõrgus x laius: 234x156 mm, kaal: 635 g, 56 Illustrations, black and white
  • Ilmumisaeg: 11-Mar-2020
  • Kirjastus: CRC Press
  • ISBN-10: 0367076691
  • ISBN-13: 9780367076696
Teised raamatud teemal:
"This book concentrates on the practical aspects of numerical analysis and linear and non-linear programming. It discusses the methods for solving different types of mathematical problems using MATLAB and Python. Although the book focuses on the approximation problem rather than on error analysis of mathematical problems, it provides practical ways to calculate errors. The book is divided into three parts, covering topics in numerical linear algebra, methods of interpolation, numerical differentiation and integration, solutions of differential equations, linear and non-linear programming problems, and optimal control problems"--

This book concentrates on the practical aspects of numerical analysis and linear and non-linear programming. It discusses the methods for solving different types of mathematical problems using MATLAB and Python. Although the book focuses on the approximation problem rather than on error analysis of mathematical problems, it provides practical ways to calculate errors.

The book is divided into three parts, covering topics in numerical linear algebra, methods of interpolation, numerical differentiation and integration, solutions of differential equations, linear and non-linear programming problems, and optimal control problems.

This book has the following advantages:

  • It adopts the programming languages, ??MATLAB and Python, which are widely used among academics, scientists, and engineers, for ease of use and contain many libraries covering many scientific and engineering fields.
  • It contains topics that are rarely found in other numerical analysis books, such as ill-conditioned linear systems and methods of regularization to stabilize their solutions, nonstandard finite differences methods for solutions of ordinary differential equations, and the computations of the optimal controls. It provides a practical explanation of how to apply these topics using ??MATLAB and Python.
  • It discusses software libraries to solve mathematical problems, such as software Gekko, pulp, and pyomo. These libraries use Python for solutions to differential equations and static and dynamic optimization problems.
  • Most programs in the book can be applied in versions prior to MATLAB 2017b and Python 3.7.4 without the need to modify these programs.

This book is aimed at newcomers and middle-level students, as well as members of the scientific community who are interested in solving math problems using MATLAB or Python.

Preface xiii
Author xvii
I Solving Linear and Nonlinear Systems of Equations
1(102)
1 Solving Linear Systems Using Direct Methods
3(20)
1.1 Testing the Existence of the Solution
3(2)
1.2 Methods for Solving Linear Systems
5(7)
1.2.1 Special Linear Systems
5(4)
1.2.2 Gauss and Gauss-Jordan Elimination
9(1)
1.2.3 Solving the System with the rref Function
10(2)
1.3 Matrix Factorization Techniques
12(11)
1.3.1 The LU Factorization
12(4)
1.3.2 The QR Factorization
16(3)
1.3.3 The Singular Value Decomposition (SVD)
19(4)
2 Solving Linear Systems with Iterative and Least Squares Methods
23(34)
2.1 Mathematical Backgrounds
23(2)
2.1.1 Convergent Sequences and Cauchi's Convergence
23(2)
2.1.2 Vector Norm
25(1)
2.1.3 Convergent Sequences of Vectors
25(1)
2.2 The Iterative Methods
25(14)
2.2.1 The General Idea
26(2)
2.2.2 The Jacobi Method
28(3)
2.2.3 The Jacobi Method in the Matrix Form
31(2)
2.2.3.1 The Gauss-Seidel Iterative Method
33(2)
2.2.4 The Gauss-Seidel Method in the Vector Form
35(1)
2.2.5 The Relaxation Methods
36(3)
2.3 The Least Squares Solutions
39(18)
2.3.1 Some Applications of Least Squares Solutions
43(14)
3 Ill-Conditioning and Regulation Techniques in Solutions of Linear Systems
57(32)
3.1 Ill-Conditioning in Solutions of Linear Systems
57(21)
3.1.1 More Examples of Ill-Posed System
63(4)
3.1.2 Condition Numbers and Ill-Conditioned Matrices
67(4)
3.1.3 Linking the Condition Numbers to Matrix Related Eigenvalues
71(4)
3.1.4 Further Analysis on Ill-Posed Systems
75(3)
3.2 Regularization of Solutions in Linear Systems
78(11)
3.2.1 The Truncated SVD (TSVD) Method
78(4)
3.2.2 Tikhonov Regularizaton Method
82(5)
3.2.3 The L-curve Method
87(1)
3.2.4 The Discrepancy Principle
87(2)
4 Solving a System of Nonlinear Equations
89(14)
4.1 Solving a Single Nonlinear Equation
89(8)
4.1.1 The Bisection Method
89(2)
4.1.2 The Newton-Raphson Method
91(2)
4.1.3 The Secant Method
93(1)
4.1.4 The Iterative Method Towards a Fixed Point
94(2)
4.1.5 Using the MATLAB and Python solve Function
96(1)
4.2 Solving a System of Nonlinear Equations
97(6)
II Data Interpolation and Solutions of Differential Equations
103(138)
5 Data Interpolation
105(20)
5.1 Lagrange Interpolation
105(4)
5.1.1 Construction of Lagrange Interpolating Polynomial
105(2)
5.1.2 Uniqueness of Lagrange Interplation Polynomial
107(1)
5.1.3 Lagrange Interpolation Error
108(1)
5.2 Newton's Interpolation
109(7)
5.2.1 Description of the Method
109(4)
5.2.2 Newton's Divided Differences
113(3)
5.3 MATLAB's Interpolation Tools
116(4)
5.3.1 Interpolation with the Interp1 Function
116(1)
5.3.2 Interpolation with the Spline Function
117(2)
5.3.3 Interpolation with the Function pchip
119(1)
5.3.4 Calling the Functions spline and pchip from interpl1
120(1)
5.4 Data Interpolation in Python
120(5)
5.4.1 The Function interp1d
121(1)
5.4.2 The Functions pchip-interpolate and CubicSpline
122(1)
5.4.3 The Function lagrange
123(2)
6 Numerical Differentiation and Integration
125(40)
6.1 Numerical Differentiation
125(8)
6.1.1 Approximating Derivatives with Finite Differences
125(8)
6.2 Numerical Integration
133(32)
6.2.1 Newton-Cotes Methods
134(9)
6.2.2 The Gauss Integration Method
143(22)
7 Solving Systems of Nonlinear Ordinary Differential Equations
165(42)
7.1 Runge-Kutta Methods
165(2)
7.2 Explicit Runge-Kutta Methods
167(9)
7.2.1 Eulcr's Method
168(3)
7.2.2 Heuns Method
171(3)
7.2.3 The Fourth-Order Runge-Kutta Method
174(2)
7.3 Implicit, Runge-Kutta Methods
176(15)
7.3.1 The Backward Euler Method
176(4)
7.3.2 Collocation Runge-Kutta Methods
180(1)
7.3.2.1 Legendro-Gauss Methods
180(4)
7.3.2.2 Lobatto Methods
184(7)
7.4 MATLAB ODE Solvers
191(6)
7.4.1 MATLAB ODE Solvers
191(1)
7.4.2 Solving a Single IVP
191(2)
7.4.3 Solving a System of IVPs
193(2)
7.4.4 Solving Stiff Systems of IVPs
195(2)
7.5 Python Solvers for IVPs
197(10)
7.5.1 Solving ODEs with odeint
197(4)
7.5.2 Solving ODEs with Gekko
201(6)
8 Nonstandard Finite Difference Methods for Solving ODEs
207(34)
8.1 Deficiencies with Standard Finite Difference Schemes
207(6)
8.2 Construction Rules of Nonstandard Finite Difference Schemes
213(4)
8.3 Exact Finite Difference4 Schemes
217(19)
8.3.1 Exact Finite Difference Schemes for Homogeneous Linear ODEs
218(1)
8.3.1.1 Exact Finite Difference Schemes for a Linear Homogeneous First-Order ODE
218(2)
8.3.1.2 Exact Finite Difference Scheme for Linear Homogeneous Second Order ODE
220(3)
8.3.1.3 Exact Finite Difference Scheme for a System of Two Linear ODEs
223(7)
8.3.2 Exact Difference Schemes for Nonlinear Equations
230(4)
8.3.3 Exact Finite Difference Schemes for Differential Equations with Linear and Power Terms
234(2)
8.4 Other Nonstandard Finite Difference Schemes
236(5)
III Solving Linear, Nonlinear and Dynamic Optimization Problems
241(80)
9 Solving Optimization Problems: Linear and Quadratic Programming
243(18)
9.1 Form of a Linear Programming Problem
243(3)
9.2 Solving Linear Programming Problems with linprog
246(3)
9.3 Solving Linear Programming Problems with fmincon MATLAB's Functions
249(1)
9.4 Solving Linear Programming Problems with pulp Python
250(2)
9.5 Solving Linear Programming Problems with pyomo
252(2)
9.6 Solving Linear Programming Problems with gekko
254(1)
9.7 Solving Quadratic Programming Problems
255(6)
10 Solving Optimization Problems: Nonlinear Programming
261(28)
10.1 Solving Unconstrained Problems
261(17)
10.1.1 Line Search Algorithm
263(1)
10.1.2 The Steepest Descent Method
264(2)
10.1.3 Newton's Method
266(3)
10.1.4 Quasi Newton's Methods
269(1)
10.1.4.1 The Broyden-Fletcher-Goldfarb-Shanno (BFGS) Method
269(3)
10.1.4.2 The Davidon-Fletcher-Powell (DFP) Algorithm
272(2)
10.1.5 Solving Unconstrained Optimization Problems with MATLAB
274(1)
10.1.6 Solving an Unconstrained Problem with Python
275(1)
10.1.7 Solving Unconstrained Optimization Problems with Gekko
276(2)
10.2 Solving Constrained Optimization Problems
278(11)
10.2.1 Solving Constrained Optimization Problems with MATLAB fmincon Function
280(4)
10.2.2 Solving Constrained Minimization Problems in Python
284(2)
10.2.3 Solving Constrained Optimization with Gekko Python
286(3)
11 Solving Optimal Control Problems
289(32)
11.1 Introduction
289(1)
11.2 The First-Order Optimally Conditions and Existence of Optimal Control
290(3)
11.3 Necessary Conditions of the Discretized System
293(1)
11.4 Numerical Solution of Optimal Control
294(1)
11.5 Solving Optimal Control Problems Using Indirect Methods
295(11)
11.5.1 Numeral Solution Using Indirect Transcription Method
295(11)
11.6 Solving Optimal Control Problems Using Direct Methods
306(15)
11.6.1 Statement of the Problem
307(1)
11.6.2 The Control Parameterization Technique
307(2)
11.6.2.1 Examples
309(4)
11.6.3 The Gekko Python Solver
313(8)
Bibliography 321(6)
Index 327
Eihab B. M. Bashier obtained his PhD in 2009 from the University of the Western Cape in South Africa. He is an associate professor of applied mathematics at the faculty of mathematical sciences and information technology, University of Khartoum, since 2013. Currently, he is an associate professor of applied Mathematics at the College of Arts and Applied Sciences at Dhofar University, Oman.

The research interests of Dr. Bashier are mainly in numerical methods for differential equations with applications to biology and in information and computer security with focus in cryptography. In 2011, Dr. Bashier won the African Union and the Third World Academy of Science (AU-TWAS) young scientists national award in basic sciences, technology and Innovation. Dr. Bashier is a reviewer for some international journals and a member of the IEEE and the EMS.