optimoptions
Creare opzioni di ottimizzazione
Sintassi
Descrizione
restituisce un insieme di opzioni predefinite per il risolutore options = optimoptions(SolverName)SolverName.
restituisce options = optimoptions(SolverName,Name,Value)options con i parametri specificati impostati utilizzando uno o più argomenti della coppia nome-valore.
restituisce una copia di options = optimoptions(oldoptions,Name,Value)oldoptions in cui i parametri denominati sono stati modificati con i valori specificati.
restituisce le opzioni predefinite per il risolutore options = optimoptions(SolverName,oldoptions)SolverName e copia le opzioni applicabili da oldoptions a options.
restituisce le opzioni con i parametri specificati impostati utilizzando uno o più argomenti della coppia nome-valore.options = optimoptions(prob,Name,Value)
Esempi
Creare opzioni predefinite per il risolutore 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 properties.
Default properties:
Algorithm: 'interior-point'
BarrierParamUpdate: 'monotone'
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')
Impostare le opzioni per fmincon in modo che utilizzi l'algoritmo sqp e un numero massimo di 1500 iterazioni.
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:
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)'
UseCodegenSolver: 0
UseParallel: 0
Show options not used by current Algorithm ('sqp')
Aggiornare le opzioni esistenti con i nuovi valori.
Impostare le opzioni del risolutore lsqnonlin in modo che utilizzi l'algoritmo levenberg-marquardt e un numero massimo di 1500 valutazioni della funzione
oldoptions = optimoptions(@lsqnonlin,Algorithm="levenberg-marquardt",... MaxFunctionEvaluations=1500)
oldoptions =
lsqnonlin options:
Options used by current Algorithm ('levenberg-marquardt'):
(Other available algorithms: 'interior-point', 'trust-region-reflective')
Set properties:
Algorithm: 'levenberg-marquardt'
MaxFunctionEvaluations: 1500
Default properties:
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)'
UseCodegenSolver: 0
UseParallel: 0
Show options not used by current Algorithm ('levenberg-marquardt')
Aumentare MaxFunctionEvaluations a 2000.
options = optimoptions(oldoptions,MaxFunctionEvaluations=2000)
options =
lsqnonlin options:
Options used by current Algorithm ('levenberg-marquardt'):
(Other available algorithms: 'interior-point', 'trust-region-reflective')
Set properties:
Algorithm: 'levenberg-marquardt'
MaxFunctionEvaluations: 2000
Default properties:
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)'
UseCodegenSolver: 0
UseParallel: 0
Show options not used by current Algorithm ('levenberg-marquardt')
Aggiornare le opzioni esistenti con i nuovi valori utilizzando la notazione a punto.
Impostare le opzioni del risolutore lsqnonlin in modo che utilizzi l'algoritmo levenberg-marquardt e un numero massimo di 1500 valutazioni della funzione
options = optimoptions(@lsqnonlin,Algorithm="levenberg-marquardt",... MaxFunctionEvaluations=1500)
options =
lsqnonlin options:
Options used by current Algorithm ('levenberg-marquardt'):
(Other available algorithms: 'interior-point', 'trust-region-reflective')
Set properties:
Algorithm: 'levenberg-marquardt'
MaxFunctionEvaluations: 1500
Default properties:
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)'
UseCodegenSolver: 0
UseParallel: 0
Show options not used by current Algorithm ('levenberg-marquardt')
Aumentare MaxFunctionEvaluations a 2000 utilizzando la notazione a punto.
options.MaxFunctionEvaluations = 2000
options =
lsqnonlin options:
Options used by current Algorithm ('levenberg-marquardt'):
(Other available algorithms: 'interior-point', 'trust-region-reflective')
Set properties:
Algorithm: 'levenberg-marquardt'
MaxFunctionEvaluations: 2000
Default properties:
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)'
UseCodegenSolver: 0
UseParallel: 0
Show options not used by current Algorithm ('levenberg-marquardt')
Trasferire le opzioni non predefinite del risolutore fmincon alle opzioni del risolutore fminunc.
Impostare le opzioni per fmincon in modo che utilizzi l'algoritmo sqp e un numero massimo di 1500 iterazioni.
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:
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)'
UseCodegenSolver: 0
UseParallel: 0
Show options not used by current Algorithm ('sqp')
Trasferire le opzioni applicabili al risolutore fminunc.
options = optimoptions(@fminunc,oldoptions)
options =
fminunc options:
Options used by current Algorithm ('quasi-newton'):
(Other available algorithms: 'trust-region')
Set properties:
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)'
HessianApproximation: 'bfgs'
MaxFunctionEvaluations: '100*numberOfVariables'
ObjectiveLimit: -1.0000e+20
OutputFcn: []
TypicalX: 'ones(numberOfVariables,1)'
UseParallel: 0
Show options not used by current Algorithm ('quasi-newton')
L'opzione dell'algoritmo non viene trasferita a fminunc poiché "sqp" non è un'opzione dell'algoritmo valida per fminunc.
Creare un problema di ottimizzazione e identificare il risolutore e le opzioni predefiniti.
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 properties.
Default properties:
Algorithm: 'interior-point-convex'
ConstraintTolerance: 1.0000e-08
Display: 'final'
LinearSolver: 'auto'
MaxIterations: 200
OptimalityTolerance: 1.0000e-08
ScaleProblem: 0
StepTolerance: 1.0000e-12
Show options not used by current Algorithm ('interior-point-convex')
Il risolutore predefinito è quadprog.
Impostare le opzioni per utilizzare la visualizzazione iterativa. Identificare la soluzione.
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.
<stopping criteria details>
sol.x
ans = 3×1
1.6035
0.0000
0.8029
Argomenti di input
Nome del risolutore, specificato come vettore di caratteri, stringa o handle della funzione.
Esempio 'fmincon'
Esempio @fmincon
Tipi di dati: char | function_handle | string
Opzioni create con la funzione optimoptions, specificate come oggetto opzioni.
Esempio oldoptions = optimoptions(@fminunc)
Oggetto problema, specificato come un oggetto OptimizationProblem o un oggetto EquationProblem. Creare prob utilizzando il Problem-Based Optimization Workflow o Problem-Based Workflow for Solving Equations.
Le sintassi che utilizzano prob consentono di determinare il risolutore predefinito per il problema e di modificare l'algoritmo o altre opzioni.
Esempio prob = optimproblem('Objective',myobj), dove myobj è un'espressione di ottimizzazione
Argomenti nome-valore
Specificare le coppie di argomenti opzionali come Name1=Value1,...,NameN=ValueN, dove Name è il nome dell'argomento e Value è il valore corrispondente. Gli argomenti nome-valore devono seguire gli altri argomenti, ma l'ordine delle coppie non è rilevante.
Prima della release R2021a, utilizzare le virgole per separare ciascun nome e valore e racchiudere Name tra virgolette.
Esempio optimoptions(@fmincon,'Display','iter','FunctionTolerance',1e-10) imposta le opzioni fmincon per ottenere una visualizzazione iterativa e una FunctionTolerance di 1e-10.
Per gli argomenti della coppia nome-valore pertinenti, consultare la tabella delle opzioni del rispettivo risolutore:
fgoalattainoptionsfminconoptionsfminimaxoptionsfminuncoptionsfseminfoptionsfsolveoptionsgaoptions(Global Optimization Toolbox)gamultiobjoptions(Global Optimization Toolbox)intlinprogoptionslinprogoptionslsqcurvefitoptionslsqlinoptionslsqnonlinoptionsparetosearchoptions(Global Optimization Toolbox)particleswarmoptions(Global Optimization Toolbox)patternsearchoptions(Global Optimization Toolbox)quadprogoptionssimulannealbndoptions(Global Optimization Toolbox)surrogateoptoptions(Global Optimization Toolbox)
Argomenti di output
Opzioni di ottimizzazione per il risolutore SolverName, restituite come oggetto opzioni.
Funzionalità alternativa
Attività di Live Editor
Optimize task di Live Editor consente di impostare le opzioni in modo visivo. Per un esempio, vedere Optimize Live Editor Task with fmincon Solver.
Funzionalità estese
Note su utilizzo e limitazioni:
La generazione di codice supporta un insieme limitato di opzioni per ciascun risolutore. Per le opzioni supportate, vedere la pagina di riferimento di ciascun risolutore:
coneprogC/C++ Code GenerationfminconCode GenerationfsolveCode GenerationlsqlinCode GenerationlsqcurvefitCode GenerationlsqnonlinCode GenerationquadprogCode Generation
Cronologia versioni
Introdotto in R2013a
Vedi anche
optimset | Optimize | resetoptions | OptimizationProblem | EquationProblem
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleziona un sito web
Seleziona un sito web per visualizzare contenuto tradotto dove disponibile e vedere eventi e offerte locali. In base alla tua area geografica, ti consigliamo di selezionare: .
Puoi anche selezionare un sito web dal seguente elenco:
Come ottenere le migliori prestazioni del sito
Per ottenere le migliori prestazioni del sito, seleziona il sito cinese (in cinese o in inglese). I siti MathWorks per gli altri paesi non sono ottimizzati per essere visitati dalla tua area geografica.
Americhe
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)