我有一个非常简单的二次问题,原则上应该可以通过solve.QP(quadprog)来解决:
max x^2+3*y^2 subject to x>=0, y>=0, x+y <=1
问题在于将最大化转化为所需的最小化,矩阵(显然)变为负定。这不是与小特征值或舍入有关的问题。
我认为解决问题.QP是一个普通求解器,但是尽管我努力阅读在线资料,看起来好像你不能使用solve.QP在紧致域(由线性约束定义)上最大化正定二次形式。
这是真的吗?
我知道我可以解决这个问题以及与其他函数类似的问题(constrOptim
工作正常),但我很乐意将拉格朗日乘数附加到最大化器上。
你能否提出任何解决上述问题的方法(非常有效)solve.QP,克服与正定义相关的不对称限制?
答案 0 :(得分:1)
您想在凸域上找到凸函数的最大值。凸函数在其域的内部点中不能具有最大值,因此使用拉格朗日乘数的方法不能应用于该问题。
在您的情况下,域是紧凑多边形,因此在其中一个顶点中假定最大值。这是一个微不足道的检查。