optimoptions
Erstellen von Optimierungsoptionen
Syntax
Beschreibung
gibt eine Reihe von Standardoptionen für den options = optimoptions(SolverName)SolverName-Solver zurück.
gibt ein options = optimoptions(SolverName,Name,Value)options-Objekt zurück, bei dem die angegebenen Parameter durch ein oder mehrere Name-Wert-Argumente festgelegt wurden.
gibt eine Kopie von options = optimoptions(oldoptions,Name,Value)oldoptions zurück, bei der die benannten Parameter durch die angegebenen Werte ersetzt wurden.
gibt die Standardoptionen für den options = optimoptions(SolverName,oldoptions)SolverName-Solver zurück und kopiert die entsprechenden Optionen von oldoptions in options.
Beispiele
Erstellen Sie Standardoptionen für den fmincon-Solver.
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')
Legen Sie die Optionen für fmincon so fest, dass der sqp-Algorithmus verwendet wird und maximal 1500 Iterationen ausgeführt werden.
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')
Aktualisieren Sie vorhandene Optionen mit neuen Werten.
Legen Sie die Optionen für den lsqnonlin-Solver so fest, dass der levenberg-marquardt-Algorithmus verwendet wird und maximal 1500 Funktionsauswertungen ausgeführt werden.
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')
Erhöhen Sie MaxFunctionEvaluations auf 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')
Aktualisieren Sie vorhandene Optionen mit neuen Werten mithilfe der Punktnotation.
Legen Sie die Optionen für den lsqnonlin-Solver so fest, dass der levenberg-marquardt-Algorithmus verwendet wird und maximal 1500 Funktionsauswertungen ausgeführt werden.
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')
Erhöhen Sie MaxFunctionEvaluations mithilfe der Punktnotation auf 2000.
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')
Übertragen Sie nicht-standardmäßige Optionen des fmincon-Solvers auf die Optionen des fminunc-Solvers.
Legen Sie die Optionen für fmincon so fest, dass der sqp-Algorithmus verwendet wird und maximal 1500 Iterationen ausgeführt werden.
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')
Übertragen Sie die entsprechenden Optionen auf den fminunc-Solver.
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')
Die Algorithmus-Option wird nicht auf fminunc übertragen, da "sqp" keine gültige Algorithmusoption für fminunc darstellt.
Erstellen Sie ein Optimierungsproblem und ermitteln Sie den Standard-Solver und die Standardoptionen.
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')
Der Standard-Solver ist quadprog.
Stellen Sie die Optionen so ein, dass die iterative Anzeige verwendet wird. Ermitteln Sie die Lösung.
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
Eingabeargumente
Name des Solvers, angegeben als Zeichenvektor, Zeichenfolge oder Function Handle.
Beispiel: 'fmincon'
Beispiel: @fmincon
Datentypen: char | function_handle | string
Mit der optimoptions-Funktion erstellte Optionen, angegeben als Optionsobjekt.
Beispiel: oldoptions = optimoptions(@fminunc)
Problemobjekt, angegeben als OptimizationProblem-Objekt oder EquationProblem-Objekt. Erstellen Sie prob mithilfe von Problem-Based Optimization Workflow oder Problem-Based Workflow for Solving Equations.
Die Syntaxen mit prob ermöglichen es Ihnen, den Standard-Solver für Ihr Problem festzulegen und den Algorithmus oder andere Optionen anzupassen.
Beispiel: prob = optimproblem('Objective',myobj), wobei myobj ein Optimierungsausdruck ist
Name-Wert-Argumente
Geben Sie optionale Argumentpaare in der Form Name1=Value1,...,NameN=ValueN an, wobei Name der Argumentname und Value der zugehörige Wert ist. Name-Wert-Argumente müssen nach allen anderen Argumenten stehen; die Reihenfolge der Name-Wert-Paare ist jedoch beliebig.
Für Versionen vor R2021a: Trennen Sie die einzelnen Namen und Werte durch Kommas und schließen Sie Name in Anführungszeichen ein.
Beispiel: optimoptions(@fmincon,'Display','iter','FunctionTolerance',1e-10) legt für die fmincon-Optionen eine iterative Anzeige und eine FunctionTolerance (Funktionstoleranz) von 1e-10 fest.
Die entsprechenden Name-Wert-Argumente entnehmen Sie bitte der Optionstabelle für Ihren Solver:
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)
Ausgabeargumente
Optimierungsoptionen für den SolverName-Solver, zurückgegeben als Optionsobjekt.
Alternative Funktionalität
Live-Editor Task
Mit dem Live-Editor Task Optimize können Sie Optionen visuell festlegen. Ein Beispiel finden Sie unter Optimize Live Editor Task with fmincon Solver.
Erweiterte Fähigkeiten
Hinweise zur Verwendung und Einschränkungen:
Die Codegenerierung unterstützt für jeden Solver eine begrenzte Anzahl von Optionen. Informationen zu den unterstützten Optionen finden Sie auf der Referenzseite des jeweiligen Solvers:
coneprogC/C++ Code GenerationfminconCode GenerationfsolveCode GenerationlsqlinCode GenerationlsqcurvefitCode GenerationlsqnonlinCode GenerationquadprogCode Generation
Versionsverlauf
Eingeführt in R2013a
Siehe auch
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.
Website auswählen
Wählen Sie eine Website aus, um übersetzte Inhalte (sofern verfügbar) sowie lokale Veranstaltungen und Angebote anzuzeigen. Auf der Grundlage Ihres Standorts empfehlen wir Ihnen die folgende Auswahl: .
Sie können auch eine Website aus der folgenden Liste auswählen:
So erhalten Sie die bestmögliche Leistung auf der Website
Wählen Sie für die bestmögliche Website-Leistung die Website für China (auf Chinesisch oder Englisch). Andere landesspezifische Websites von MathWorks sind für Besuche von Ihrem Standort aus nicht optimiert.
Amerika
- 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)