Optimization Toolbox
Total Page:16
File Type:pdf, Size:1020Kb
Optimization Toolbox™ 4 User’s Guide How to Contact The MathWorks www.mathworks.com Web comp.soft-sys.matlab Newsgroup www.mathworks.com/contact_TS.html Technical Support [email protected] Product enhancement suggestions [email protected] Bug reports [email protected] Documentation error reports [email protected] Order status, license renewals, passcodes [email protected] Sales, pricing, and general information 508-647-7000 (Phone) 508-647-7001 (Fax) The MathWorks, Inc. 3 Apple Hill Drive Natick, MA 01760-2098 For contact information about worldwide offices, see the MathWorks Web site. Optimization Toolbox™ User’s Guide © COPYRIGHT 1990–2008 by The MathWorks, Inc. The software described in this document is furnished under a license agreement. The software may be used or copied only under the terms of the license agreement. No part of this manual may be photocopied or reproduced in any form without prior written consent from The MathWorks, Inc. FEDERAL ACQUISITION: This provision applies to all acquisitions of the Program and Documentation by, for, or through the federal government of the United States. By accepting delivery of the Program or Documentation, the government hereby agrees that this software or documentation qualifies as commercial computer software or commercial computer software documentation as such terms are used or defined in FAR 12.212, DFARS Part 227.72, and DFARS 252.227-7014. Accordingly, the terms and conditions of this Agreement and only those rights specified in this Agreement, shall pertain to and govern the use, modification, reproduction, release, performance, display, and disclosure of the Program and Documentation by the federal government (or other entity acquiring for or through the federal government) and shall supersede any conflicting contractual terms or conditions. If this License fails to meet the government’s needs or is inconsistent in any respect with federal procurement law, the government agrees to return the Program and Documentation, unused, to The MathWorks, Inc. Trademarks MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See www.mathworks.com/trademarks for a list of additional trademarks. Other product or brand names may be trademarks or registered trademarks of their respective holders. Patents The MathWorks products are protected by one or more U.S. patents. Please see www.mathworks.com/patents for more information. Revision History November 1990 First printing December 1996 Second printing For MATLAB® 5 January 1999 Third printing For Version 2 (Release 11) September 2000 Fourth printing For Version 2.1 (Release 12) June 2001 Online only Revised for Version 2.1.1 (Release 12.1) September 2003 Online only Revised for Version 2.3 (Release 13SP1) June 2004 Fifth printing Revised for Version 3.0 (Release 14) October 2004 Online only Revised for Version 3.0.1 (Release 14SP1) March 2005 Online only Revised for Version 3.0.2 (Release 14SP2) September 2005 Online only Revised for Version 3.0.3 (Release 14SP3) March 2006 Online only Revised for Version 3.0.4 (Release 2006a) September 2006 Sixth printing Revised for Version 3.1 (Release 2006b) March 2007 Seventh printing Revised for Version 3.1.1 (Release 2007a) September 2007 Eighth printing Revised for Version 3.1.2 (Release 2007b) March 2008 Online only Revised for Version 4.0 (Release 2008a) October 2008 Online only Revised for Version 4.1 (Release 2008b) Acknowledgments Acknowledgments The MathWorks™ would like to acknowledge the following contributors to Optimization Toolbox™ algorithms. Thomas F. Coleman researched and contributed the large-scale algorithms for constrained and unconstrained minimization, nonlinear least squares and curve fitting, constrained linear least squares, quadratic programming, and nonlinear equations. Dr. Coleman is Dean of Faculty of Mathematics and Professor of Combinatorics and Optimization at University of Waterloo. Dr. Coleman has published 4 books and over 70 technical papers in the areas of continuous optimization and computational methods and tools for large-scale problems. Yin Zhang researched and contributed the large-scale linear programming algorithm. Dr. Zhang is Professor of Computational and Applied Mathematics on the faculty of the Keck Center for Interdisciplinary Bioscience Training at Rice University. Dr. Zhang has published over 50 technical papers in the areas of interior-point methods for linear programming and computation mathematical programming. Acknowledgments Contents Getting Started 1 Product Overview ................................. 1-2 Introduction ...................................... 1-2 Optimization Functions ............................ 1-2 Optimization Tool GUI ............................. 1-3 Example: Nonlinear Constrained Minimization ...... 1-4 Problem Formulation: Rosenbrock’s Function .......... 1-4 Defining the Problem in Toolbox Syntax ............... 1-5 Running the Optimization .......................... 1-7 Interpreting the Result ............................. 1-12 Optimization Overview 2 Introduction to Optimization Toolbox Solvers ........ 2-2 Writing Objective Functions ........................ 2-4 Writing Objective Functions ......................... 2-4 Jacobians of Vector and Matrix Objective Functions ..... 2-6 Anonymous Function Objectives ..................... 2-9 Maximizing an Objective ........................... 2-9 Writing Constraints ................................ 2-11 Types of Constraints ............................... 2-11 Bound Constraints ................................ 2-12 Linear Inequality Constraints ....................... 2-13 Linear Equality Constraints ......................... 2-13 Nonlinear Constraints ............................. 2-14 An Example Using All Types of Constraints ............ 2-15 vii Passing Extra Parameters .......................... 2-17 Anonymous Functions .............................. 2-17 Nested Functions ................................. 2-19 Global Variables .................................. 2-20 Choosing a Solver ................................. 2-21 Problems Handled by Optimization Toolbox Functions ... 2-21 Optimization Decision Table ........................ 2-24 Solver Inputs and Outputs ......................... 2-27 Iterations and Function Counts ...................... 2-27 First-Order Optimality Measure ..................... 2-28 Tolerances and Stopping Criteria .................... 2-31 Lagrange Multiplier Structures ...................... 2-32 Output Structures ................................. 2-33 Output Functions ................................. 2-33 Default Options Settings ........................... 2-41 Introduction ...................................... 2-41 Changing the Default Settings ....................... 2-41 Large-Scale vs. Medium-Scale Algorithms ............. 2-45 Displaying Iterative Output ........................ 2-47 Introduction ...................................... 2-47 Most Common Output Headings ..................... 2-47 Function-SpecificOutputHeadings ................... 2-48 Typical Problems and How to Deal with Them ....... 2-54 Local vs. Global Optima ............................ 2-57 What Are Local and Global Optima? .................. 2-57 Basins of Attraction ............................... 2-57 Searching For Global Optima ........................ 2-59 Reference ......................................... 2-62 viii Contents Optimization Tool 3 Getting Started with the Optimization Tool .......... 3-2 Introduction ...................................... 3-2 Opening the Optimization Tool ...................... 3-2 Steps for Using the Optimization Tool ................. 3-5 Running a Problem in the Optimization Tool ......... 3-6 Introduction ...................................... 3-6 Pausing and Stopping the Algorithm .................. 3-7 Viewing Results ................................... 3-7 Final Point ....................................... 3-7 Starting a New Problem ............................ 3-8 Closing the Optimization Tool ....................... 3-9 Specifying Certain Options ......................... 3-10 Plot Functions .................................... 3-10 Output function ................................... 3-11 Display to Command Window ....................... 3-11 Getting Help in the Optimization Tool ............... 3-13 Quick Reference .................................. 3-13 Additional Help ................................... 3-13 Importing and Exporting Your Work ................ 3-14 Exporting to the MATLAB Workspace ................ 3-14 Importing Your Work .............................. 3-16 Generating an M-File .............................. 3-16 Optimization Tool Examples ........................ 3-18 About Optimization Tool Examples ................... 3-18 Optimization Tool with the fmincon Solver ............. 3-18 Optimization Tool with the lsqlin Solver ............... 3-22 ix Using Optimization Toolbox Solvers 4 Optimization Theory Overview ..................... 4-2 Unconstrained Nonlinear Optimization .............. 4-3 Definition ........................................ 4-3 Large Scale fminunc Algorithm ...................... 4-3 Medium Scale fminunc Algorithm .................... 4-6 fminsearch Algorithm .............................. 4-11 Unconstrained Nonlinear Optimization Examples .... 4-14 Example: fminunc Unconstrained Minimization ........ 4-14 Example: Nonlinear Minimization with Gradient and Hessian ....................................... 4-16 Example: Nonlinear Minimization with Gradient