許容誤差の詳細
Optimization Toolbox™ のソルバーは許容誤差を使用して、反復を停止するタイミングや解の質を測定するタイミングを決定します。許容誤差と停止条件を参照してください。
このセクションでは、最も重要な 4 つの許容誤差について、どの許容誤差が相対 (問題のサイズまたは値に応じてある程度スケーリングされる) で、どの許容誤差が絶対 (問題に応じてスケーリングされない) かを説明します。次の表では、
R は、相対を意味します。
A は、絶対を意味します。
. は、該当なしを意味します。
A* は、許容誤差をチェックした場合に絶対となることを意味します。ただし、前処理によってエントリがある程度スケーリングされることがあるため、その許容誤差は相対と見なされることがあります。
A*、R は、制約が最初に絶対としてチェックされることを意味します。このチェックにパスすると、ソルバーは正の終了フラグを返します。このチェックに失敗した場合、制約は相対としてチェックされます。このチェックにパスすると、ソルバーは正の終了フラグを返し、"実行可能性が低い" ことも示します。このチェックに失敗すると、ソルバーは負の終了フラグを返します。
ソルバーとアルゴリズムごとの許容誤差
| ソルバー | アルゴリズム | 最適性の許容誤差 | 関数の許容誤差 | ステップの許容誤差 | 制約の許容誤差 |
|---|---|---|---|---|---|
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 | . |