容差详细信息
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 | . |