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) |
|
|
25 | (1) |
|
2.1.3 Convergent Sequences of Vectors |
|
|
25 | (1) |
|
2.2 The Iterative Methods |
|
|
25 | (14) |
|
|
26 | (2) |
|
|
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) |
|
|
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) |
|
|
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) |
|
|
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) |
|
|
165 | (2) |
|
7.2 Explicit Runge-Kutta Methods |
|
|
167 | (9) |
|
|
168 | (3) |
|
|
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) |
|
|
184 | (7) |
|
|
191 | (6) |
|
|
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) |
|
|
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) |
|
|
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) |
|
|
309 | (4) |
|
11.6.3 The Gekko Python Solver |
|
|
313 | (8) |
Bibliography |
|
321 | (6) |
Index |
|
327 | |