optimoptions
와 optimset
중에서 선택하기
이전에 최적화 옵션을 설정할 때 권장되는 방법은 optimset
항목을 사용하는 것이었습니다. 이제는 optimoptions
항목을 사용하는 것이 일반적으로 권장되며, 이 경우 아래 나열된 사항에 주의해야 합니다.
optimset
는 여전히 사용할 수 있으며, Optimization Toolbox™ 라이선스 없이 사용 가능한 솔버(fminbnd
, fminsearch
, fzero
, lsqnonneg
)의 경우 이것이 옵션을 설정할 수 있는 유일한 방법입니다.
참고: 그 외 일부 툴박스에서도 최적화 옵션이 사용되는데, optimoptions
가 아닌 optimset
를 사용하여 생성된 옵션을 전달해야 합니다. 툴박스에 관한 문서를 확인하십시오.
optimoptions
는 솔버별로 옵션을 구성하며, optimset
보다 좀 더 집중적이면서도 포괄적으로 내용을 표시합니다.
솔버에 적용되는 옵션만 생성 및 수정
특정 솔버/알고리즘에 대한 옵션 선택 항목 및 디폴트 값 표시
솔버 옵션과 기타 사용 가능한 솔버 알고리즘에 대한 자세한 내용으로 연결되는 링크 표시
intlinprog
에는 optimoptions
옵션만 사용됩니다.
옵션 생성과 관련된 주된 차이점은 다음과 같습니다.
optimoptions
에서는 솔버 이름을 첫 번째 인수로 포함합니다.
options = optimoptions(SolverName,Name,Value,...)
optimset
에서는 구문에 솔버 이름을 포함하지 않습니다.
options = optimset(Name,Value,..)
두 경우 모두 점 표기법을 사용하여 옵션을 쿼리하거나 변경할 수 있습니다. 최적화 옵션 설정 및 변경하기 항목과 최적화 옵션 보기 항목을 참조하십시오.
예를 들어 optimoptions
의 표시 내용과 optimset
의 표시 내용을 비교해 봅니다.
options = optimoptions(@fminunc,'SpecifyObjectiveGradient',true)
options = fminunc options: Options used by current Algorithm ('quasi-newton'): (Other available algorithms: 'trust-region') Set properties: SpecifyObjectiveGradient: 1 Default properties: Algorithm: 'quasi-newton' Display: 'final' FiniteDifferenceStepSize: 'sqrt(eps)' FiniteDifferenceType: 'forward' HessianApproximation: 'bfgs' MaxFunctionEvaluations: '100*numberOfVariables' MaxIterations: 400 ObjectiveLimit: -1.0000e+20 OptimalityTolerance: 1.0000e-06 OutputFcn: [] PlotFcn: [] StepTolerance: 1.0000e-06 TypicalX: 'ones(numberOfVariables,1)' UseParallel: 0 Options not used by current Algorithm ('quasi-newton') Default properties: FunctionTolerance: 1.0000e-06 HessianFcn: [] HessianMultiplyFcn: [] SubproblemAlgorithm: 'cg'
options = optimset('GradObj','on')
options = struct with fields:
Display: []
MaxFunEvals: []
MaxIter: []
TolFun: []
TolX: []
FunValCheck: []
OutputFcn: []
PlotFcns: []
ActiveConstrTol: []
Algorithm: []
AlwaysHonorConstraints: []
DerivativeCheck: []
Diagnostics: []
DiffMaxChange: []
DiffMinChange: []
FinDiffRelStep: []
FinDiffType: []
GoalsExactAchieve: []
GradConstr: []
GradObj: 'on'
HessFcn: []
Hessian: []
HessMult: []
HessPattern: []
HessUpdate: []
InitBarrierParam: []
InitTrustRegionRadius: []
Jacobian: []
JacobMult: []
JacobPattern: []
LargeScale: []
MaxNodes: []
MaxPCGIter: []
MaxProjCGIter: []
MaxSQPIter: []
MaxTime: []
MeritFunction: []
MinAbsMax: []
NoStopIfFlatInfeas: []
ObjectiveLimit: []
PhaseOneTotalScaling: []
Preconditioner: []
PrecondBandWidth: []
RelLineSrchBnd: []
RelLineSrchBndDuration: []
ScaleProblem: []
SubproblemAlgorithm: []
TolCon: []
TolConSQP: []
TolGradCon: []
TolPCG: []
TolProjCG: []
TolProjCGAbs: []
TypicalX: []
UseParallel: []