このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
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.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
入力引数
文字ベクトル、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
をもつように設定します。
関連する名前と値のペアの引数については、ソルバーのオプション表を参照してください。
fgoalattain
options
fmincon
options
fminimax
options
fminunc
options
fseminf
options
fsolve
options
ga
options
(Global Optimization Toolbox)gamultiobj
options
(Global Optimization Toolbox)intlinprog
options
linprog
options
lsqcurvefit
options
lsqlin
options
lsqnonlin
options
paretosearch
options
(Global Optimization Toolbox)particleswarm
options
(Global Optimization Toolbox)patternsearch
options
(Global Optimization Toolbox)quadprog
options
simulannealbnd
options
(Global Optimization Toolbox)surrogateopt
options
(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)