This book is a graduate level textbook on the mathematical theory of nonlinear programming and algorithms for the solution of nonlinear programming problems. In addition to its primary role as a textbook this book will also be of interest to many readers as a reference for definitions and theorems in the theory of nonlinear programming.

In the first six chapters, the authors introduce convex analysis, optimality conditions for nonlinear programming problems, constraint qualifications, and the theory of duality for nonlinear programming problems. The discussion is thorough and mathematically rigorous, with formal definitions, theorems, and proofs. This material will only be accessible to students with a strong background in linear algebra, vector calculus, and analysis. The exercises range from straightforward applications of the definitions and theorems to much more challenging problems. At over 300 pages, there is easily enough material in these chapters for a semester long course covering the theory of mathematical programming.

In the final five chapters, the authors discuss algorithms for the solution of unconstrained and constrained nonlinear programming problems. The authors discuss Newton's method, quasi-Newton, and conjugate gradient methods for unconstrained optimization. They also introduce penalty and barrier function methods, successive linear programming and sequential quadratic programming methods for constrained optimization problems. In the final chapter, the authors describe specialized methods for linear complementarity, quadratic programming, fractional programming, and geometric programming problems. The algorithms are illustrated with simple computational examples.

The strength of this book is in its discussion of the theory of nonlinear programming in chapters one through six. No other introductory textbook in nonlinear programming is as complete and rigorous as this book. However, the material on methods for the solution of nonlinear programming problems is not nearly as strong. In particular, this book is weak in its discussion of numerical analysis issues, the time and space complexity of algorithms, and practical implementation details. Furthermore, the limited discussion of interior point methods for linear programming and conic optimization is out of proportion to their importance in current research and computational practice.

This textbook is highly recommended for a course in the theory of nonlinear programming aimed at students with a strong mathematical background. For courses focused on algorithms for nonlinear programming and particularly for students with weaker mathematics backgrounds, the textbooks by Fletcher, Luenberger, and Nocedal and Wright may be more appropriate.

**References:**

Roger Fletcher, *Practical Methods of Optimization* , 2nd ed., Wiley, 2000.

David G. Luenberger, Linear and Nonlinear Programming , 2nd ed., Springer, 2003.

Jorge Nocedal and Stephen Wright, *Numerical Optimization* , Springer, 1996.

Brian Borchers is a professor of Mathematics at the New Mexico Institute of Mining and Technology. His interests are in optimization and applications of optimization in parameter estimation and inverse problems.