容差详细信息
Optimization Toolbox™ 求解器使用容差来决定何时停止迭代并测量解的质量。请参阅容差和停止条件。
对于四种最重要的容差,本节描述哪些容差是相对容差,也就是在某种意义上随问题大小或值缩放;哪些是绝对容差,也就是不会随问题大小缩放。在下表中,
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 | . |