Main Content

La traducción de esta página está obsoleta. Haga clic aquí para ver la última versión en inglés.

optimoptions

Cree opciones de optimización

Descripción

ejemplo

options = optimoptions(SolverName) devuelve un conjunto de opciones predeterminadas para el solver SolverName.

ejemplo

options = optimoptions(SolverName,Name,Value) devuelve options con parámetros especificados establecidos utilizando uno o más argumentos de par nombre-valor.

ejemplo

options = optimoptions(oldoptions,Name,Value) devuelve una copia de oldoptions con los parámetros nombrados alterados con los valores especificados.

ejemplo

options = optimoptions(SolverName,oldoptions) devuelve opciones predeterminadas para el solver SolverName y copia las opciones aplicables de oldoptions a options.

ejemplo

options = optimoptions(prob) devuelve un conjunto de opciones predeterminadas para el problema de optimización o problema de ecuación prob.

options = optimoptions(prob,Name,Value) devuelve opciones con parámetros especificados establecidos utilizando uno o más argumentos de par nombre-valor.

Ejemplos

contraer todo

Crear opciones predeterminadas para el solver fmincon.

options = optimoptions('fmincon')
options = 
  fmincon options:

   Options used by current Algorithm ('interior-point'):
   (Other available algorithms: 'active-set', 'sqp', 'sqp-legacy', 'trust-region-reflective')

   Set properties:
     No options set.

   Default properties:
                    Algorithm: 'interior-point'
           BarrierParamUpdate: 'monotone'
               CheckGradients: 0
          ConstraintTolerance: 1.0000e-06
                      Display: 'final'
        EnableFeasibilityMode: 0
     FiniteDifferenceStepSize: 'sqrt(eps)'
         FiniteDifferenceType: 'forward'
         HessianApproximation: 'bfgs'
                   HessianFcn: []
           HessianMultiplyFcn: []
                  HonorBounds: 1
       MaxFunctionEvaluations: 3000
                MaxIterations: 1000
               ObjectiveLimit: -1.0000e+20
          OptimalityTolerance: 1.0000e-06
                    OutputFcn: []
                      PlotFcn: []
                 ScaleProblem: 0
    SpecifyConstraintGradient: 0
     SpecifyObjectiveGradient: 0
                StepTolerance: 1.0000e-10
          SubproblemAlgorithm: 'factorization'
                     TypicalX: 'ones(numberOfVariables,1)'
                  UseParallel: 0

   Show options not used by current Algorithm ('interior-point')

Establezca opciones para que fmincon utilice el algoritmo sqp y, como máximo, 1500 iteraciones.

options = optimoptions(@fmincon,'Algorithm','sqp','MaxIterations',1500)
options = 
  fmincon options:

   Options used by current Algorithm ('sqp'):
   (Other available algorithms: 'active-set', 'interior-point', 'sqp-legacy', 'trust-region-reflective')

   Set properties:
                    Algorithm: 'sqp'
                MaxIterations: 1500

   Default properties:
               CheckGradients: 0
          ConstraintTolerance: 1.0000e-06
                      Display: 'final'
     FiniteDifferenceStepSize: 'sqrt(eps)'
         FiniteDifferenceType: 'forward'
       MaxFunctionEvaluations: '100*numberOfVariables'
               ObjectiveLimit: -1.0000e+20
          OptimalityTolerance: 1.0000e-06
                    OutputFcn: []
                      PlotFcn: []
                 ScaleProblem: 0
    SpecifyConstraintGradient: 0
     SpecifyObjectiveGradient: 0
                StepTolerance: 1.0000e-06
                     TypicalX: 'ones(numberOfVariables,1)'
                  UseParallel: 0

   Show options not used by current Algorithm ('sqp')

Actualice opciones existentes con valores nuevos.

Establezca opciones para que el solver lsqnonlin utilice el algoritmo levenberg-marquardt y, como máximo, 1.500 evaluaciones de función

oldoptions = optimoptions(@lsqnonlin,'Algorithm','levenberg-marquardt',...
    'MaxFunctionEvaluations',1500)
oldoptions = 
  lsqnonlin options:

   Options used by current Algorithm ('levenberg-marquardt'):
   (Other available algorithms: 'trust-region-reflective')

   Set properties:
                   Algorithm: 'levenberg-marquardt'
      MaxFunctionEvaluations: 1500

   Default properties:
              CheckGradients: 0
                     Display: 'final'
    FiniteDifferenceStepSize: 'sqrt(eps)'
        FiniteDifferenceType: 'forward'
           FunctionTolerance: 1.0000e-06
               MaxIterations: 400
                   OutputFcn: []
                     PlotFcn: []
    SpecifyObjectiveGradient: 0
               StepTolerance: 1.0000e-06
                    TypicalX: 'ones(numberOfVariables,1)'
                 UseParallel: 0

   Show options not used by current Algorithm ('levenberg-marquardt')

Aumente MaxFunctionEvaluations a 2.000.

options = optimoptions(oldoptions,'MaxFunctionEvaluations',2000)
options = 
  lsqnonlin options:

   Options used by current Algorithm ('levenberg-marquardt'):
   (Other available algorithms: 'trust-region-reflective')

   Set properties:
                   Algorithm: 'levenberg-marquardt'
      MaxFunctionEvaluations: 2000

   Default properties:
              CheckGradients: 0
                     Display: 'final'
    FiniteDifferenceStepSize: 'sqrt(eps)'
        FiniteDifferenceType: 'forward'
           FunctionTolerance: 1.0000e-06
               MaxIterations: 400
                   OutputFcn: []
                     PlotFcn: []
    SpecifyObjectiveGradient: 0
               StepTolerance: 1.0000e-06
                    TypicalX: 'ones(numberOfVariables,1)'
                 UseParallel: 0

   Show options not used by current Algorithm ('levenberg-marquardt')

Actualice opciones existentes con valores nuevos utilizando la notación de puntos.

Establezca opciones para que el solver lsqnonlin utilice el algoritmo levenberg-marquardt y, como máximo, 1.500 evaluaciones de función

options = optimoptions(@lsqnonlin,'Algorithm','levenberg-marquardt',...
    'MaxFunctionEvaluations',1500)
options = 
  lsqnonlin options:

   Options used by current Algorithm ('levenberg-marquardt'):
   (Other available algorithms: 'trust-region-reflective')

   Set properties:
                   Algorithm: 'levenberg-marquardt'
      MaxFunctionEvaluations: 1500

   Default properties:
              CheckGradients: 0
                     Display: 'final'
    FiniteDifferenceStepSize: 'sqrt(eps)'
        FiniteDifferenceType: 'forward'
           FunctionTolerance: 1.0000e-06
               MaxIterations: 400
                   OutputFcn: []
                     PlotFcn: []
    SpecifyObjectiveGradient: 0
               StepTolerance: 1.0000e-06
                    TypicalX: 'ones(numberOfVariables,1)'
                 UseParallel: 0

   Show options not used by current Algorithm ('levenberg-marquardt')

Aumente MaxFunctionEvaluations a 2.000 utilizando notación de puntos.

options.MaxFunctionEvaluations = 2000
options = 
  lsqnonlin options:

   Options used by current Algorithm ('levenberg-marquardt'):
   (Other available algorithms: 'trust-region-reflective')

   Set properties:
                   Algorithm: 'levenberg-marquardt'
      MaxFunctionEvaluations: 2000

   Default properties:
              CheckGradients: 0
                     Display: 'final'
    FiniteDifferenceStepSize: 'sqrt(eps)'
        FiniteDifferenceType: 'forward'
           FunctionTolerance: 1.0000e-06
               MaxIterations: 400
                   OutputFcn: []
                     PlotFcn: []
    SpecifyObjectiveGradient: 0
               StepTolerance: 1.0000e-06
                    TypicalX: 'ones(numberOfVariables,1)'
                 UseParallel: 0

   Show options not used by current Algorithm ('levenberg-marquardt')

Transfiera opciones no predeterminadas para el solver fmincon a las opciones para el solver fminunc.

Establezca opciones para que fmincon utilice el algoritmo sqp y, como máximo, 1.500 iteraciones.

oldoptions = optimoptions(@fmincon,'Algorithm','sqp','MaxIterations',1500)
oldoptions = 
  fmincon options:

   Options used by current Algorithm ('sqp'):
   (Other available algorithms: 'active-set', 'interior-point', 'sqp-legacy', 'trust-region-reflective')

   Set properties:
                    Algorithm: 'sqp'
                MaxIterations: 1500

   Default properties:
               CheckGradients: 0
          ConstraintTolerance: 1.0000e-06
                      Display: 'final'
     FiniteDifferenceStepSize: 'sqrt(eps)'
         FiniteDifferenceType: 'forward'
       MaxFunctionEvaluations: '100*numberOfVariables'
               ObjectiveLimit: -1.0000e+20
          OptimalityTolerance: 1.0000e-06
                    OutputFcn: []
                      PlotFcn: []
                 ScaleProblem: 0
    SpecifyConstraintGradient: 0
     SpecifyObjectiveGradient: 0
                StepTolerance: 1.0000e-06
                     TypicalX: 'ones(numberOfVariables,1)'
                  UseParallel: 0

   Show options not used by current Algorithm ('sqp')

Transfiera las opciones aplicables al solver fminunc.

options = optimoptions(@fminunc,oldoptions)
options = 
  fminunc options:

   Options used by current Algorithm ('quasi-newton'):
   (Other available algorithms: 'trust-region')

   Set properties:
              CheckGradients: 0
        FiniteDifferenceType: 'forward'
               MaxIterations: 1500
         OptimalityTolerance: 1.0000e-06
                     PlotFcn: []
    SpecifyObjectiveGradient: 0
               StepTolerance: 1.0000e-06

   Default properties:
                   Algorithm: 'quasi-newton'
                     Display: 'final'
    FiniteDifferenceStepSize: 'sqrt(eps)'
      MaxFunctionEvaluations: '100*numberOfVariables'
              ObjectiveLimit: -1.0000e+20
                   OutputFcn: []
                    TypicalX: 'ones(numberOfVariables,1)'
                 UseParallel: 0

   Show options not used by current Algorithm ('quasi-newton')

La opción de algoritmo no transfiere a fminunc porque 'sqp' no es una opción de algoritmo válida para fminunc.

Cree un problema de optimización y encuentre el solver y las opciones predeterminados.

rng default
x = optimvar('x',3,'LowerBound',0);
expr = x'*(eye(3) + randn(3))*x - randn(1,3)*x;
prob = optimproblem('Objective',expr);
options = optimoptions(prob)
options = 
  quadprog options:

   Options used by current Algorithm ('interior-point-convex'):
   (Other available algorithms: 'active-set', 'trust-region-reflective')

   Set properties:
     No options set.

   Default properties:
              Algorithm: 'interior-point-convex'
    ConstraintTolerance: 1.0000e-08
                Display: 'final'
           LinearSolver: 'auto'
          MaxIterations: 200
    OptimalityTolerance: 1.0000e-08
          StepTolerance: 1.0000e-12

   Show options not used by current Algorithm ('interior-point-convex')

El solver predeterminado es quadprog.

Establezca las opciones para utilizar la visualización iterativa. Encuentre la solución.

options.Display = 'iter';
sol = solve(prob,'Options',options);
Solving problem using quadprog.
Your Hessian is not symmetric. Resetting H=(H+H')/2.

 Iter            Fval  Primal Infeas    Dual Infeas  Complementarity  
    0    2.018911e+00   0.000000e+00   2.757660e+00     6.535839e-01  
    1   -2.170204e+00   0.000000e+00   8.881784e-16     2.586177e-01  
    2   -3.405808e+00   0.000000e+00   8.881784e-16     2.244054e-03  
    3   -3.438788e+00   0.000000e+00   3.356690e-16     7.261144e-09  

Minimum found that satisfies the constraints.

Optimization completed because the objective function is non-decreasing in 
feasible directions, to within the value of the optimality tolerance,
and constraints are satisfied to within the value of the constraint tolerance.
sol.x
ans = 3×1

    1.6035
    0.0000
    0.8029

Argumentos de entrada

contraer todo

Nombre de solver, especificado como un vector de caracteres, una cadena o un identificador de función.

Ejemplo: 'fmincon'

Ejemplo: @fmincon

Tipos de datos: char | function_handle | string

Opciones creadas con la función optimoptions, especificadas como un objeto de opciones.

Ejemplo: oldoptions = optimoptions(@fminunc)

Objeto de problema, especificado como un objeto OptimizationProblem o un objeto EquationProblem. Cree prob utilizando el Problem-Based Optimization Workflow o el Problem-Based Workflow for Solving Equations.

Las sintaxis que utiliza prob le permiten determinar el solver predeterminado para su problema y modificar el algoritmo u otras opciones.

Ejemplo: prob = optimproblem('Objective',myobj), donde myobj es una expresión de optimización

Argumentos de par nombre-valor

Ejemplo: optimoptions(@fmincon,'Display','iter','FunctionTolerance',1e-10) establece opciones fmincon para tener una visualización iterativa y una FunctionTolerance de 1e-10.

Especifique argumentos opcionales de par Name,Value separados por comas. Name es el nombre del argumento y Value el valor correspondiente. Name debe aparecer entre comillas. Puede especificar varios argumentos de par nombre-valor en cualquier orden, como Name1,Value1,...,NameN,ValueN.

Para ver argumentos relevantes de par nombre-valor, consulte la tabla de opciones para su solver:

Argumentos de salida

contraer todo

Opciones de optimización para el solver SolverName, devueltas como un objeto de opciones.

Funcionalidad alternativa

Tarea de Live Editor

La tarea Optimize de Live Editor le permite establecer opciones visualmente. Para ver un ejemplo, consulte Optimize Live Editor Task with fmincon Solver.

Capacidades ampliadas

Historial de versiones

Introducido en R2013a