optimoptions
最適化オプションの作成
構文
説明
は options = optimoptions(SolverName)SolverName ソルバーの一連の既定オプションを返します。
は、1 つ以上の名前と値のペアの引数を使用して設定したパラメーターが指定された options = optimoptions(SolverName,Name,Value)options を返します。
は、名前付きパラメーターを指定値で変更して options = optimoptions(oldoptions,Name,Value)oldoptions のコピーを返します。
は options = optimoptions(SolverName,oldoptions)SolverName ソルバーの既定オプションを返し、oldoptions の該当するオプションを options にコピーします。
例
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')
fmincon のオプションを、使用するアルゴリズムが sqp、反復回数が 1,500 回以下になるように設定します。
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')
既存のオプションを新しい値で更新します。
lsqnonlin ソルバーのオプションを、使用するアルゴリズムが levenberg-marquardt、関数評価回数が 1,500 回以下になるように設定します。
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)'
UseParallel: 0
Show options not used by current Algorithm ('levenberg-marquardt')
MaxFunctionEvaluations を 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)'
UseParallel: 0
Show options not used by current Algorithm ('levenberg-marquardt')
ドット表記を使用して既存のオプションを新しい値に更新します。
lsqnonlin ソルバーのオプションを、使用するアルゴリズムが levenberg-marquardt、関数評価回数が 1,500 回以下になるように設定します。
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)'
UseParallel: 0
Show options not used by current Algorithm ('levenberg-marquardt')
ドット表記を使用して MaxFunctionEvaluations を 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)'
UseParallel: 0
Show options not used by current Algorithm ('levenberg-marquardt')
fmincon ソルバーの既定外のオプションを、fminunc ソルバーのオプションに転送します。
fmincon のオプションを、使用するアルゴリズムが sqp、反復回数が 1,500 回以下になるように設定します。
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')
該当するオプションを 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')
'sqp' は fminunc の有効なアルゴリズム オプションではないため、このアルゴリズム オプションは fminunc に引き継がれません。
最適化問題を作成し、既定のソルバーおよびオプションを特定します。
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')
既定のソルバーは quadprog です。
反復表示を使用するオプションを設定します。解を求めます。
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.356973e-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
入力引数
文字ベクトル、stringまたは関数ハンドルとして指定されるソルバー名です。
例: 'fmincon'
例: @fmincon
データ型: char | function_handle | string
関数 optimoptions で作成した、options オブジェクトとして指定されるオプションです。
例: oldoptions = optimoptions(@fminunc)
問題オブジェクト。OptimizationProblem オブジェクトまたは EquationProblem オブジェクトとして指定します。問題ベースの最適化ワークフローまたは方程式を解くための問題ベースのワークフローを使用して、prob を作成します。
prob を使用する構文では、問題に対する既定ソルバーが何であるかを判断でき、アルゴリズムなどのオプションを変更できます。
例: prob = optimproblem('Objective',myobj)。myobj は最適化式です。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。
例: optimoptions(@fmincon,'Display','iter','FunctionTolerance',1e-10) は fmincon オプションを、反復表示をもち 1e-10 の FunctionTolerance をもつように設定します。
関連する名前と値のペアの引数については、ソルバーのオプション表を参照してください。
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)
出力引数
SolverName ソルバーの最適化オプション。options オブジェクトとして返されます。
代替機能
ライブ エディター タスク
[最適化] ライブ エディター タスクを使用すれば、オプションを視覚的に設定できます。例については、fmincon ソルバーを使用した最適化ライブ エディター タスクを参照してください。
拡張機能
バージョン履歴
R2013a で導入
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.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)