R 矩阵形式的二次规划
quadratic programming in R matrix form
我正在使用 R
软件 quadprog
。
解决以下优化:
Dmat <- matrix(c(1,1.5,1.5,5),nrow=2,ncol=2)
dvec <- c(0.5,0)
Amat <- -matrix(c(3,15,2,-3),nrow=2,ncol=2)
bvec <- matrix(c(-2,1),nrow=2,ncol=1)
solve.QP(Dmat,dvec,Amat,bvec)
我解决上述问题得到的解决方案是:
$`solution`
[1] -0.2307692 0.1794872
$value
[1] 0.1604208
正确的答案是
$`par`
[1] -0.8064516 0.2096774
$value
[1] -0.04032258
我做错了什么?
你必须:
- 双倍
Dmat
- 否定
dvec
- 转置
Amat
- 否定
bvec
即:
Dmat <- matrix(c(2,3,3,10),nrow=2,ncol=2)
dvec <- c(-0.5,0)
Amat <- -matrix(c(3,15,2,-3),nrow=2,ncol=2,byrow=TRUE)
bvec <- -matrix(c(-2,1),nrow=2,ncol=1)
> solve.QP(Dmat,dvec,Amat,bvec)
$solution
[1] -0.8064516 0.2096774
$value
[1] -0.04032258
我正在使用 R
软件 quadprog
。
解决以下优化:
Dmat <- matrix(c(1,1.5,1.5,5),nrow=2,ncol=2)
dvec <- c(0.5,0)
Amat <- -matrix(c(3,15,2,-3),nrow=2,ncol=2)
bvec <- matrix(c(-2,1),nrow=2,ncol=1)
solve.QP(Dmat,dvec,Amat,bvec)
我解决上述问题得到的解决方案是:
$`solution`
[1] -0.2307692 0.1794872
$value
[1] 0.1604208
正确的答案是
$`par`
[1] -0.8064516 0.2096774
$value
[1] -0.04032258
我做错了什么?
你必须:
- 双倍
Dmat
- 否定
dvec
- 转置
Amat
- 否定
bvec
即:
Dmat <- matrix(c(2,3,3,10),nrow=2,ncol=2)
dvec <- c(-0.5,0)
Amat <- -matrix(c(3,15,2,-3),nrow=2,ncol=2,byrow=TRUE)
bvec <- -matrix(c(-2,1),nrow=2,ncol=1)
> solve.QP(Dmat,dvec,Amat,bvec)
$solution
[1] -0.8064516 0.2096774
$value
[1] -0.04032258