주요 콘텐츠

optimoptionsoptimset 중에서 선택하기

이전에 최적화 옵션을 설정할 때 권장되는 방법은 optimset 항목을 사용하는 것이었습니다. 이제는 optimoptions 항목을 사용하는 것이 일반적으로 권장되며, 이 경우 아래 나열된 사항에 주의해야 합니다.

optimset는 여전히 사용할 수 있으며, Optimization Toolbox™ 라이선스 없이 사용 가능한 솔버(fminbnd, fminsearch, fzero, lsqnonneg)의 경우 이것이 옵션을 설정할 수 있는 유일한 방법입니다.

참고: 그 외 일부 툴박스에서도 최적화 옵션이 사용되는데, optimoptions가 아닌 optimset를 사용하여 생성된 옵션을 전달해야 합니다. 툴박스에 관한 문서를 확인하십시오.

optimoptions는 솔버별로 옵션을 구성하며, optimset보다 좀 더 집중적이면서도 포괄적으로 내용을 표시합니다.

  • 솔버에 적용되는 옵션만 생성 및 수정

  • 특정 솔버/알고리즘에 대한 옵션 선택 항목 및 디폴트 값 표시

  • 솔버 옵션과 기타 사용 가능한 솔버 알고리즘에 대한 자세한 내용으로 연결되는 링크 표시

intlinprogconeprog에는 optimoptions 옵션만 사용됩니다. 일반적으로 Global Optimization Toolbox 솔버는 optimset 옵션을 사용하지 않습니다.

옵션 생성과 관련된 주된 차이점은 다음과 같습니다.

  • optimoptions에서는 솔버 이름을 첫 번째 인수로 포함합니다.

options = optimoptions(SolverName,Name,Value,...)
or
options = optimoptions(SolverName,Name=Value,...)
  • optimset에서는 구문에 솔버 이름을 포함하지 않습니다.

options = optimset(Name,Value,..)
or
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

   Show options not used by current Algorithm ('quasi-newton')

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: []

참고 항목

|

도움말 항목