欢迎来到天天文库
浏览记录
ID:41275404
大小:37.51 KB
页数:7页
时间:2019-08-21
《MATLAB非线性优化fmincon》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、active-setandsqpalgorithms不接受用户提供的海塞矩阵,对拉格朗日的海塞矩阵提供一个拟牛顿的近似值;目标函数估值次数与迭代次数?优化成功或失败一、求解失败1、在到达迭代次数阈值或目标函数估值次数阈值时,求解器没有最小化目标到要求的精度,此时求解器停止。接下来,可以尝试以下方法:(1)设置‘Display’为‘iter’,查看每步的迭代信息,这些信息包括:目标函数(Fvalorf(x)orResnorm)是否是下降的;检查约束越界(Maxconstraint)是否是递减趋向于0;查看一阶优化是否是递减趋向于0;查看置信域半径(Trust
2、-regionradius)是否下降趋向于一个小的值。若其中至少一种情况为是,就表示结果是不断改善的。如果结果是不断改善的,可以采取下边的措施:设置MaxIter、MaxFunEvals比默认值大的值,默认值可以在优化工具箱或求解器的函数参考页的优化表中查看;从最后计算出的点开始重新求解。如果结果没有改善,尝试以下其他的方法。(2)放松精度如果TolX或TolFun太小,当求解器达到一个最小值时可能也不会识别到,这就会导致无限次徒劳的迭代。DiffMaxChange和DiffMinChange选项能影响求解器的改善,它们控制求导估计中有限差分的步长。(3)
3、从不同的初始点重新开始求解(4)检查目标函数和约束函数的定义举个例子,可以检查目标函数和非线性约束函数在某些特定点处返回正确的值。不可行的点不一定导致函数的错误。(5)对问题进行中心化和标准化当每个坐标轴对目标函数和约束函数有相同的影响时,求解器更能可靠的运行,对每个坐标轴方向乘以合适的量使得每个坐标轴的影响相同,在特定的坐标轴上加上合适的值使得它们长度一致。(6)提供解析的梯度和雅可比矩阵如果用户不提供解析的梯度或雅可比矩阵,求解器会用有限差分来估计这些值,因此提供这些导数可以减少运算时间,提高计算准确度。对于约束问题,提供梯度还有另一个好处----求解
4、器到达一个点x时能满足该点是可行的,但有限差分在x点周围可能会导致不可行的点,在这种情况下,求解器可能会失败或突然中断。(7)提供海塞矩阵当提供海塞矩阵时,求解器能运行的更可靠,而且运行的次数比较少。2、无可行点在TolCon约束精度内,求解器不能找到一个满足所有约束条件的点,此时,可以尝试以下方法:(1)检查线性约束通过求解一个线性规划问题来找到一个满足界约束和线性约束的点。i)定义一个目标函数是常值0的线性规划问题f=zeros(size(x0));%assumesx0istheinitialpointii)求解这个线性规划问题看是否有一个可行点xne
5、w=linprog(f,A,b,Aeq,beq,lb,ub);iii)如果有可行点xnew,用xnew作为初始点去求解原始问题iv)如果没有可行点,那说明原始模型建的不好,检查界约束和线性约束。(2)检查非线性约束在保证界约束和线性约束是可行的之后,检查非线性约束:i)设置目标函数为0,然后求解优化问题,如果能找到一个可行点xnew,令x0=xnew返回到原始问题中去ii)如果用0目标函数不能找到一个可行点,尝试几个不同的初始点重新求解,如果找到了一个可行点xnew,令x0=xnew并返回到原始问题中去,如果仍没找到可行点,试着用下列方法放松约束条件。a.
6、改变非线性约束函数c为c-Δ,Δ是一个正数,这会使得非线性约束更容易满足。b.尝试用原始的目标函数或0目标函数对新的约束函数寻找一个可行点。如果找到一个可行点,那么减少Δ,并在之前找到的点处开始对新的约束函数重新找一个可行点;如果没有找到一个可行点,试着增大Δ并重新找。如果一直没有找到可行点,那么原始问题可能确实是不可行的,重新检查约束函数的定义。3、问题是无界的求解器到达一个目标函数小于目标阈值界的点,那么(1)原问题可能确实无界,即存在一系列满足问题约束的点xi,使得limf(xi)=–∞。(2)检查原问题建模正确,求解器是最小化目标函数,如果想得到最
7、大化,将目标函数乘以-1.(3)试着标准化或中心化原问题。(4)放松目标函数界精度,用optimset减少ObjectiveLimit设定的精度值。二、求解可能成功1、最后的点等于初始点初始点可能是局部极小点,因为它的一阶导数接近0,如果并不确定初始点确实是一个局部极小点,尝试下边的步骤:(1)从不同的点开始重新求解(2)检查目标函数和约束函数定义正确。(3)改变精度,如TolFun,TolCon,TolX(4)标准化原问题,使得每个坐标轴有相同的影响。(5)提供解析的梯度和海塞矩阵。2、可能的局部最小值(LocalMinimumPossible,not'
8、LocalMinimumFound')求解器可能达到一个局部最小值
此文档下载收益归作者所有