迭代可能违反约束
中间迭代可能违反约束
编写目标函数和约束函数时一定要小心谨慎。中间迭代可能导致不可行点(不满足约束)。如果您编写假定可行的目标函数或约束函数,这些函数可能会出错或给出意外的结果。
例如,如果取 x 的平方根或对数且 x < 0,则结果不是实数。您可以尝试通过将 0
设置为 x 的下界避免此错误。然而,中间迭代可能违反此边界。
满足边界约束的算法
一些求解器算法在每次迭代时都满足边界约束:
fmincon
interior-point
、sqp
和trust-region-reflective
算法:lsqnonlin
和lsqcurvefit
fminbnd
注意
如果将下界设置为等于上界,迭代可能会违反这些约束。
可能违反边界约束的求解器和算法
以下求解器和算法可能在中间迭代中违反边界约束:
fmincon
active-set
算法fgoalattain
fminimax
fseminf