首页 > 解决方案 > 二次规划最大化——矩阵不是正定的

问题描述

我正在尝试使用 R 中的 quadprog 程序优化以下简单的目标函数:

最大_{x} x' A x

我看到的大多数优化问题都使用最小化,但如果我简单地使用 -A 而不是 A,我会得到一个错误,即 A 不再是正定的。我对这种事情很陌生。有谁知道如何解决一个简单的二次最大化问题?

这是重现错误的示例代码:

if (!require(quadprog)) install.packages('quadprog')
library(quadprog)
set.seed(144)
mat <- abs(cor(matrix(rnorm(25),5,5)))
solve.QP(Dmat = -mat, dvec = rep(0,5), Amat = diag(5), bvec = rep(0,5), meq=0, factorized=FALSE)

这是产生的错误:

solve.QP(Dmat = -mat, dvec = rep(0, 5), Amat = diag(5), bvec = rep(0, : 二次函数中的矩阵 D 不是正定的!

标签: rmathematical-optimizationquadratic-programmingquadprogmaximization

解决方案


推荐阅读