首页 文章

solve.QP不能最大化正定二次函数

提问于
浏览
0

我有一个非常简单的二次问题,原则上应该可以通过solve.QP(quadprog)来解决:

max x^2+3*y^2 subject to x>=0, y>=0, x+y <=1

问题是将最大化转化为所需的最小化,矩阵(显然)变为负定 . 这不是与小特征值或舍入有关的问题 .

我认为解决问题.QP是一个普通求解器,但是尽管我努力阅读在线材料,看起来好像你不能使用solve.QP在紧致域(由线性约束定义)上最大化正定二次形式 .

真的吗?

我知道我可以用其他函数来解决这个问题和类似的问题( constrOptim 工作正常),但是我很乐意将拉格朗日乘数附加到最大化器上 .

你能否提出任何解决上述问题的方法(非常有效的)solve.QP,克服与正定义有关的不对称限制?

1 回答

  • 1

    您想在凸域上找到凸函数的最大值 . 凸函数在其域的内部点中不能具有最大值,因此使用拉格朗日乘数的方法不能应用于该问题 .

    在您的情况下,域是一个紧凑的多边形,因此在其中一个顶点中假定最大值 . 这是一个微不足道的检查 .

相关问题