我是 stackoverflow 的新手并搜索了很多,但找不到我的问题的答案。我正在尝试使用优化包 Rsolnp 来最小化下面的问题。虽然求解器给了我一个解决方案,但每次运行代码时我都会收到以下警告消息:
警告消息:1:在 cbind(temp, funv) 中:结果的行数不是向量长度的倍数 (arg 1)
此外,该解决方案与我使用 ipop 和 solve.QP 获得的解决方案完全不同。他们的解决方案几乎相同(0.2480、0.0000、0.0121、0.7400)。我尝试了许多不同的问题表述,但无法弄清楚我做错了什么。我感谢所有的帮助和信息!
library(Rsolnp)
# Starting Values
x0 <- c(0.25,0,0.01,0.75)
fn <- function(x){
d <- c(0.0308, 0.0269, 0.0145, 0.0130)
d <- -d
D <- cbind(c(0.1486, 0.0778, -0.0240, -0.0154),
c(0.0778, 0.1170, 0.0066, 0.0029),
c(-0.0240, 0.0066, 0.0444, 0.0193),
c(-0.0154, 0.0029, 0.0193, 0.0148))
out <- t(d) %*% x + 0.5 * (t(x) %*% D %*% x)
out
}
# Inequality Constraint: 0 =< x 0 =< 1
lx <- rep(0,4) …Run Code Online (Sandbox Code Playgroud)