r - 二次规划最大化——矩阵不是正定的
问题描述
我正在尝试使用 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 不是正定的!
解决方案
推荐阅读
- excel - 条件格式不适用于所选的整个范围
- java - 有人可以解释一下这个在 Java 中找到 BigInteger 平方根的函数吗?
- vba - 替代嵌套 for 循环以加快运行时间
- c++ - 与实现无关的浮点/整数转换
- c# - 如何从字符串数据中检索 varbinary?
- javascript - 如何使用 vanilla js 和 sass 创建可重用的按钮组件?
- ios - 将数据从单元格中的按钮传递到另一个表格视图?
- windows - 无法通过 Jenkins 执行 bat 文件
- python-3.x - 如何使用 ffmpeg 将音频切割成重叠的片段?
- java - 将 maven pom.xml 从 java 8 升级到 13。如何在安装了 java 8 和 13 的机器上运行升级的 maven 项目