이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
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 ('trust-region'): (Other available algorithms: 'quasi-newton') Set properties: SpecifyObjectiveGradient: 1 Default properties: Algorithm: 'trust-region' CheckGradients: 0 Display: 'final' FiniteDifferenceStepSize: 'sqrt(eps)' FiniteDifferenceType: 'forward' FunctionTolerance: 1.0000e-06 HessianFcn: [] HessianMultiplyFcn: [] MaxFunctionEvaluations: '100*numberOfVariables' MaxIterations: 400 OptimalityTolerance: 1.0000e-06 OutputFcn: [] PlotFcn: [] StepTolerance: 1.0000e-06 SubproblemAlgorithm: 'cg' TypicalX: 'ones(numberOfVariables,1)' Show options not used by current Algorithm ('trust-region')
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: [] Simplex: [] SubproblemAlgorithm: [] TolCon: [] TolConSQP: [] TolGradCon: [] TolPCG: [] TolProjCG: [] TolProjCGAbs: [] TypicalX: [] UseParallel: []