MATLAB Optimization Toolbox™ User's Guide
Book information
Description
Acknowledgments Acknowledgments Getting Started Optimization Toolbox Product Description Key Features First Choose Problem-Based or Solver-Based Approach Solve a Constrained Nonlinear Problem, Problem-Based Solve a Constrained Nonlinear Problem, Solver-Based Typical Optimization Problem Problem Formulation: Rosenbrock's Function Define the Problem in Toolbox Syntax Run the Optimization Interpret the Result Set Up a Linear Program, Solver-Based Convert a Problem to Solver Form Model Description Solution Method Bibliography Set Up a Linear Program, Problem-Based Convert a Problem to Solver Form Model Description First Solution Method: Create Optimization Variable for Each Problem Variable Create Problem and Objective Create and Include Linear Constraints Solve Problem Examine Solution Second Solution Method: Create One Optimization Variable and Indices Set Variable Bounds Create Problem, Linear Constraints, and Solution Examine Indexed Solution Bibliography Setting Up an Optimization Optimization Theory Overview Optimization Toolbox Solvers Optimization Decision Table Choosing the Algorithm fmincon Algorithms fsolve Algorithms fminunc Algorithms Least Squares Algorithms Linear Programming Algorithms Quadratic Programming Algorithms Large-Scale vs. Medium-Scale Algorithms Potential Inaccuracy with Interior-Point Algorithms Problems Handled by Optimization Toolbox Functions Complex Numbers in Optimization Toolbox Solvers Types of Objective Functions Writing Scalar Objective Functions Function Files Anonymous Function Objectives Including Gradients and Hessians Writing Vector and Matrix Objective Functions What Are Vector or Matrix Objective Functions? Jacobians of Vector Functions Jacobians of Matrix Functions Jacobians with Matrix-Valued Independent Variables Writing Objective Functions for Linear or Quadratic Problems Maximizing an Objective Matrix Arguments Types of Constraints Iterations Can Violate Constraints Intermediate Iterations can Violate Constraints Algorithms That Satisfy Bound Constraints Solvers and Algorithms That Can Violate Bound Constraints Bound Constraints Linear Constraints What Are Linear Constraints? Linear Inequality Constraints Linear Equality Constraints Nonlinear Constraints Including Gradients in Constraint Functions Anonymous Nonlinear Constraint Functions Or Instead of And Constraints How to Use All Types of Constraints Objective and Nonlinear Constraints in the Same Function Objective and Constraints Having a Common Function in Serial or Parallel, Problem-Based Passing Extra Parameters Extra Parameters, Fixed Variables, or Data Anonymous Functions Nested Functions Global Variables What Are Options? Options in Common Use: Tuning and Troubleshooting Set and Change Options Choose Between optimoptions and optimset View Options Tolerances and Stopping Criteria Tolerance Details Checking Validity of Gradients or Jacobians Check Gradient or Jacobian in Objective Function How to Check Derivatives Example: Checking Derivatives of Objective and Constraint Functions Bibliography Examining Results Current Point and Function Value Exit Flags and Exit Messages Exit Flags Exit Messages Enhanced Exit Messages Exit Message Options Iterations and Function Counts First-Order Optimality Measure What Is First-Order Optimality Measure? Stopping Rules Related to First-Order Optimality Unconstrained Optimality Constrained Optimality Theory Constrained Optimality in Solver Form Iterative Display Introduction Common Headings Function-Specific Headings Output Structures Lagrange Multiplier Structures Hessian Output Returned Hessian fminunc Hessian fmincon Hessian Plot Functions Plot an Optimization During Execution Using a Plot Function Output Functions What Is an Output Function? Example: Using Output Functions Steps to Take After Running a Solver Overview of Next Steps When the Solver Fails Too Many Iterations or Function Evaluations Converged to an Infeasible Point Problem Unbounded fsolve Could Not Solve Equation Solver Takes Too Long Enable Iterative Display Use Appropriate Tolerances Use a Plot Function Use 'lbfgs' HessianApproximation Option Enable CheckGradients Use Inf Instead of a Large, Arbitrary Bound Use an Output Function Use a Sparse Solver or a Multiply Function Use Parallel Computing When the Solver Might Have Succeeded Final Point Equals Initial Point Local Minimum Possible When the Solver Succeeds What Can Be Wrong If The Solver Succeeds? 1. Change the Initial Point 2. Check Nearby Points 3. Check your Objective and Constraint Functions Local vs. Global Optima Why the Solver Does Not Find the Smallest Minimum Searching for a Smaller Minimum Basins of Attraction Optimizing a Simulation or Ordinary Differential Equation What Is Optimizing a Simulation or ODE? Potential Problems and Solutions Bibliography Optimization App Optimization App Optimization App Basics Specifying Certain Options Importing and Exporting Your Work Optimization App Alternatives Optimize Without Using the App Set Options Using Live Scripts Set Options: Command Line or Standard Scripts Choose Plot Functions Pass Solver Arguments Nonlinear algorithms and examples Unconstrained Nonlinear Optimization Algorithms Unconstrained Optimization Definition fminunc trust-region Algorithm fminunc quasi-newton Algorithm fminsearch Algorithm Unconstrained Minimization Using fminunc Minimization with Gradient and Hessian Minimization with Gradient and Hessian Sparsity Pattern Constrained Nonlinear Optimization Algorithms Constrained Optimization Definition fmincon Trust Region Reflective Algorithm fmincon Active Set Algorithm fmincon SQP Algorithm fmincon Interior Point Algorithm fminbnd Algorithm fseminf Problem Formulation and Algorithm Tutorial for the Optimization Toolbox™ Banana Function Minimization Minimizing an Expensive Optimization Problem Using Parallel Computing Toolbox™ Nonlinear Inequality Constraints Nonlinear Constraints with Gradients fmincon Interior-Point Algorithm with Analytic Hessian Linear or Quadratic Objective with Quadratic Constraints Nonlinear Equality and Inequality Constraints Optimization App with the fmincon Solver Step 1: Write a file objecfun.m for the objective function. Step 2: Write a file nonlconstr.m for the nonlinear constraints. Step 3: Set up and run the problem with the Optimization app. Minimization with Bound Constraints and Banded Preconditioner Minimization with Linear Equality Constraints, Trust-Region Reflective Algorithm Minimization with Dense Structured Hessian, Linear Equalities Hessian Multiply Function for Lower Memory Step 1: Write a file brownvv.m that computes the objective function, the gradient, and the sparse part of the Hessian. Step 2: Write a function to compute Hessian-matrix products for H given a matrix Y. Step 3: Call a nonlinear minimization routine with a starting point and linear equality constraints. Preconditioning Symbolic Math Toolbox™ Calculates Gradients and Hessians Using Symbolic Mathematics with Optimization Toolbox™ Solvers Code Generation in fmincon What Is Code Generation? Code Generation Requirements Generated Code Not Multithreaded Code Generation for Optimization Basics Generate Code for fmincon Modify Example for Efficiency Static Memory Allocation for fmincon Code Generation Optimization Code Generation for Real-Time Applications Time Limits on Generated Code Match the Target Environment Set Coder Configuration Benchmark the Solver Set Initial Point Set Options Appropriately Global Minimum One-Dimensional Semi-Infinite Constraints Two-Dimensional Semi-Infinite Constraint Analyzing the Effect of Uncertainty Using Semi-Infinite Programming Nonlinear Problem-Based Rational Objective Function, Problem-Based Solve Constrained Nonlinear Optimization, Problem-Based Convert Nonlinear Function to Optimization Expression Constrained Electrostatic Nonlinear Optimization, Problem-Based Problem-Based Nonlinear Minimization with Linear Constraints Include Derivatives in Problem-Based Workflow Why Include Derivatives? Create Optimization Problem Convert Problem to Solver-Based Form Calculate Derivatives and Keep Track of Variables Edit the Objective and Constraint Files Run Problem Using Two Methods Output Function for Problem-Based Optimization Solve Nonlinear Feasibility Problem, Problem-Based Multiobjective Algorithms and Examples Multiobjective Optimization Algorithms Multiobjective Optimization Definition Algorithms Compare fminimax and fminunc Using fminimax with a Simulink® Model Signal Processing Using fgoalattain Step 1: Write a file filtmin.m Step 2: Invoke optimization routine Generate and Plot a Pareto Front Multi-Objective Goal Attainment Optimization Minimax Optimization Linear Programming and Mixed-Integer Linear Programming Linear Programming Algorithms Linear Programming Definition Interior-Point linprog Algorithm Interior-Point-Legacy Linear Programming Dual-Simplex Algorithm Typical Linear Programming Problem Maximize Long-Term Investments Using Linear Programming: Solver-Based Mixed-Integer Linear Programming Algorithms Mixed-Integer Linear Programming Definition intlinprog Algorithm Tuning Integer Linear Programming Change Options to Improve the Solution Process Some “Integer” Solutions Are Not Integers Large Components Not Integer Valued Large Coefficients Disallowed Mixed-Integer Linear Programming Basics: Solver-Based Factory, Warehouse, Sales Allocation Model: Solver-Based Traveling Salesman Problem: Solver-Based Optimal Dispatch of Power Generators: Solver-Based Mixed-Integer Quadratic Programming Portfolio Optimization: Solver-Based Solve Sudoku Puzzles Via Integer Programming: Solver-Based Office Assignments by Binary Integer Programming: Solver-Based Cutting Stock Problem: Solver-Based Factory, Warehouse, Sales Allocation Model: Problem-Based Traveling Salesman Problem: Problem-Based Optimal Dispatch of Power Generators: Problem-Based Office Assignments by Binary Integer Programming: Problem-Based Mixed-Integer Quadratic Programming Portfolio Optimization: Problem-Based Cutting Stock Problem: Problem-Based Solve Sudoku Puzzles Via Integer Programming: Problem-Based Minimize Makespan in Parallel Processing Investigate Linear Infeasibilities Problem-Based Optimization Problem-Based Optimization Workflow Problem-Based Workflow for Solving Equations Optimization Expressions What Are Optimization Expressions? Expressions for Objective Functions Expressions for Constraints and Equations Optimization Variables Have Handle Behavior Pass Extra Parameters in Problem-Based Approach Review or Modify Optimization Problems Review Problem Using show or write Change Default Solver or Options Correct a Misspecified Problem Duplicate Variable Name Named Index for Optimization Variables Create Named Indices Use Named Indices View Solution with Index Variables Examine Optimization Solution Obtain Numeric Solution Examine Solution Quality Infeasible Solution Solution Takes Too Long Create Efficient Optimization Problems Separate Optimization Model from Data Problem-Based Optimization Algorithms Variables with Duplicate Names Disallowed Expression Contains Inf or NaN Supported Operations on Optimization Variables and Expressions Notation for Supported Operations Operations Returning Optimization Expressions Operations Returning Optimization Variables Operations on Optimization Expressions Operations Returning Constraint Expressions Some Undocumented Operations Work on Optimization Variables and Expressions Unsupported Functions and Operations Require fcn2optimexpr Mixed-Integer Linear Programming Basics: Problem-Based Create Initial Point for Optimization with Named Index Variables Quadratic Programming Quadratic Programming Algorithms Quadratic Programming Definition interior-point-convex quadprog Algorithm trust-region-reflective quadprog Algorithm active-set quadprog Algorithm Quadratic Minimization with Bound Constraints Step 1: Load the Hessian and define f, lb, and ub. Step 2: Call a quadratic minimization routine with a starting point xstart. Quadratic Minimization with Dense, Structured Hessian Take advantage of a structured Hessian Step 1: Decide what part of H to pass to quadprog as the first argument. Step 2: Write a function to compute Hessian-matrix products for H. Step 3: Call a quadratic minimization routine with a starting point. Preconditioning Large Sparse Quadratic Program with Interior Point Algorithm Bound-Constrained Quadratic Programming, Solver-Based Quadratic Programming for Portfolio Optimization Problems, Solver-Based Quadratic Programming with Bound Constraints: Problem-Based Large Sparse Quadratic Program, Problem-Based Bound-Constrained Quadratic Programming, Problem-Based Quadratic Programming for Portfolio Optimization, Problem-Based Code Generation for quadprog What Is Code Generation? Code Generation Requirements Generated Code Not Multithreaded Generate Code for quadprog First Steps in quadprog Code Generation Modify Example for Efficiency Quadratic Programming with Many Linear Constraints Least Squares Least-Squares (Model Fitting) Algorithms Least Squares Definition Linear Least Squares: Interior-Point or Active-Set Trust-Region-Reflective Least Squares Levenberg-Marquardt Method Nonlinear Data-Fitting lsqnonlin with a Simulink® Model Nonlinear Least Squares Without and Including Jacobian Nonnegative Linear Least Squares, Solver-Based Optimization App with the lsqlin Solver The Problem Setting Up the Problem Jacobian Multiply Function with Linear Least Squares Large-Scale Constrained Linear Least-Squares, Solver-Based Shortest Distance to a Plane Nonnegative Linear Least Squares, Problem-Based Large-Scale Constrained Linear Least-Squares, Problem-Based Nonlinear Curve Fitting with lsqcurvefit Fit a Model to Complex-Valued Data Fit an Ordinary Differential Equation (ODE) Nonlinear Least-Squares, Problem-Based Fit ODE, Problem-Based Nonlinear Data-Fitting Using Several Problem-Based Approaches Write Objective Function for Problem-Based Least Squares Systems of Equations Equation Solving Algorithms Equation Solving Definition Trust-Region Algorithm Trust-Region-Dogleg Algorithm Levenberg-Marquardt Method fzero Algorithm \ Algorithm Nonlinear Equations with Analytic Jacobian Step 1: Write a file bananaobj.m to compute the objective function values and the Jacobian. Step 2: Call the solve routine for the system of equations. Nonlinear Equations with Finite-Difference Jacobian Nonlinear Equations with Jacobian Step 1: Write a file nlsf1.m that computes the objective function values and the Jacobian. Step 2: Call the solve routine for the system of equations. Nonlinear Equations with Jacobian Sparsity Pattern Step 1: Write a file nlsf1a.m that computes the objective function values. Step 2: Call the system of equations solve routine. Nonlinear Systems with Constraints Solve Equations with Inequality Constraints Use Different Start Points Use Different Algorithms Use lsqnonlin with Bounds Set Equations and Inequalities as fmincon Constraints Solve Nonlinear System of Equations, Problem-Based Solve Nonlinear System of Polynomials, Problem-Based Follow Equation Solution as a Parameter Changes Nonlinear System of Equations with Constraints, Problem-Based Parallel Computing for Optimization What Is Parallel Computing in Optimization Toolbox? Parallel Optimization Functionality Parallel Estimation of Gradients Nested Parallel Functions Using Parallel Computing in Optimization Toolbox Using Parallel Computing with Multicore Processors Using Parallel Computing with a Multiprocessor Network Testing Parallel Computations Minimizing an Expensive Optimization Problem Using Parallel Computing Toolbox™ Improving Performance with Parallel Computing Factors That Affect Speed Factors That Affect Results Searching for Global Optima Argument and Options Reference Function Input Arguments Function Output Arguments Optimization Options Reference Optimization Options Hidden Options Current and Legacy Option Name Tables Output Function Syntax What Are Output Functions? Structure of the Output Function Fields in optimValues States of the Algorithm Stop Flag intlinprog Output Function and Plot Function Syntax What Are Output Functions and Plot Functions? Custom Function Syntax optimValues Structure Functions EquationProblem eqnproblem evaluate fcn2optimexpr fgoalattain findindex fminbnd fmincon fminimax fminsearch fminunc fseminf fsolve fzero infeasibility intlinprog linprog lsqcurvefit lsqlin lsqnonlin lsqnonneg mapSolution mpsread optimget optimconstr optimeq optimexpr optimineq OptimizationConstraint OptimizationEquality OptimizationExpression OptimizationInequality OptimizationProblem OptimizationVariable optimoptions optimproblem optimset optimtool optimvar prob2struct quadprog resetoptions show showbounds showconstr showexpr showproblem showvar solve varindex write writebounds writeconstr writeexpr writeproblem writevar
Similar books
MATLAB Partial Differential Equation Toolbox™ User's Guide
2022 · PDF
MATLAB Medical Imaging Toolbox™ User's Guide
2022 · PDF
MATLAB RoadRunner User's Guide
2022 · PDF
MATLAB&Simulink Vehicle Dynamics Blockset™ User's Guide
2022 · PDF
MATLAB Spreadsheet Link™ User's Guide
2022 · PDF
MATLAB Partial Differential Equation Toolbox™ User's Guide
2022 · PDF
MatLab&Simulink Radar Toolbox User's Guide
2022 · PDF
MATLAB Statistics and Machine Learning Toolbox™ User's Guide
2022 · PDF