허용오차 세부 정보
Optimization Toolbox™ 솔버는 허용오차를 사용하여, 반복을 중지하고 해의 품질을 측정해야 하는 시점을 결정합니다. 허용오차와 중지 기준 항목을 참조하십시오.
4개의 가장 중요한 허용오차와 관련해 이 섹션에서는 어떤 허용오차가 상대적이고(즉, 특정 측면에서 문제의 크기나 값으로 스케일링됨) 어떤 허용오차가 절대적인지(문제와 관련해 스케일링되지 않음) 설명합니다. 다음 표에서 각 항목의 의미는 다음과 같습니다.
R은 상대적(Relative)임을 뜻합니다.
A는 절대적(Absolute)임을 뜻합니다.
.은 해당 없음을 뜻합니다.
A*는 허용오차가 확인된 시점에 절대적(Absolute)이라는 의미입니다. 하지만 전처리를 통해 항목이 어느 정도까지 스케일링될 수 있으므로 허용오차는 상대적인 것으로 간주될 수 있습니다.
A*, R은 제약 조건이 절대적(Absolute)인 것으로 처음에 확인되었음을 뜻합니다. 이 검사를 통과하면 솔버는 양수 종료 플래그를 반환합니다. 이 검사를 통과하지 못하면 제약 조건이 상대적인 것으로 확인됩니다. 이 검사를 통과하면 솔버는 "실현가능성이 좋지 못함(poor feasibility)"이라는 메시지와 함께 양수 종료 플래그를 반환합니다. 이 검사를 통과하지 못하면 솔버는 음수 종료 플래그를 반환합니다.
솔버 및 알고리즘별 허용오차
솔버 | 알고리즘 | 최적성 허용오차 | 함수 허용오차 | 스텝 허용오차 | 제약 조건 허용오차 |
---|---|---|---|---|---|
fmincon | 'interior-point' | R | . | R | R |
'sqp' | R | . | R | R | |
'sqp-legacy' | R | . | R | R | |
'active-set' | A | A | A | A | |
'trust-region-reflective' | A | R | A | . | |
fminunc | 'quasi-newton' | R | . | R | . |
'trust-region' | A | R | A | . | |
fminsearch | . | A | A | . | |
fminbnd | . | A | R | . | |
fseminf | A | A | A | A | |
fgoalattain | A | A | A | A | |
fminimax | A | A | A | A | |
linprog | 'dual-simplex' | A* | . | . | A*, R |
'interior-point' | R | . | . | R | |
'interior-point-legacy' | R | . | . | . | |
intlinprog | A* | . | . | A*, R | |
quadprog | 'interior-point-convex' | R | . | R | R |
'trust-region-reflective' , 범위 | A | R | A | . | |
'trust-region-reflective' , 선형 등식 | . | . | . | . | |
'active-set' | R | . | A | R | |
coneprog | R | R | |||
lsqlin | 'interior-point' | R | . | R | R |
'trust-region-reflective' | A | R | A | . | |
lsqnonneg | . | . | R | . | |
lsqnonlin | 'trust-region-reflective' | A | R | A | . |
'levenberg-marquardt' | R | R | R | . | |
lsqcurvefit | 'trust-region-reflective' | A | R | A | . |
'levenberg-marquardt' | R | R | R | . | |
fsolve | 'trust-region-dogleg' | A | R | R | . |
'trust-region' | A | R | A | . | |
'levenberg-marquardt' | R | R | R | . | |
fzero | . | . | R | . |