Quadprog违反约束
您好,我正在尝试使用R中的Quadprog包解决一个二次约束优化问题。然而,非负性约束被违反了Quadprog违反约束,r,optimization,quadratic,convex-optimization,quadprog,R,Optimization,Quadratic,Convex Optimization,Quadprog,您好,我正在尝试使用R中的Quadprog包解决一个二次约束优化问题。然而,非负性约束被违反了 library(quadprog) options(scipen=999) A=c(0,0,0,0) Amat=cbind(diag(1, length(A)), rep(1, length(A)), rep(-1, length(A))) bvec=c(rep(0, length(A)), 1, -1) Dmat=matrix(c(2.00044131893129, 2.00049178814
library(quadprog)
options(scipen=999)
A=c(0,0,0,0)
Amat=cbind(diag(1, length(A)), rep(1, length(A)), rep(-1, length(A)))
bvec=c(rep(0, length(A)), 1, -1)
Dmat=matrix(c(2.00044131893129, 2.00049178814425, 2.00041839697958, 2.00030559324023, 2.00049178814425, 2.00064972136399, 2.00053994496836, 2.00037532914833, 2.00041839697958, 2.00053994496836, 2.00049628996226, 2.00032367551724, 2.00030559324023, 2.00037532914833, 2.00032367551724, 2.00031018936379)
,nrow=4,byrow=TRUE)
Dvec=c(2.00014726495946, 2.0002164445682, 2.00016868307137, 2.00014845293229)
Opt_quad=solve.QP(Dmat,Dvec,Amat,bvec)
但是,输出是neagtive我不知道到底是什么让您困惑,但是如果它是解决方案向量的第一个条目,
-1.641119e-18
可以被视为0
。这是一个数值不精确的例子。实际上输出也是负数。当我把所有变量都设为非负变量时,这也是不精确性的一部分。如果它是0,那么它是-0并不重要,是吗?我不知道到底是什么让你困惑,但是如果它是解向量的第一个条目,-1.641119e-18
可以被认为是0
。这是一个数值不精确的例子。实际上输出也是负数。当我把所有变量都设为非负变量时,这也是不精确性的一部分。如果它是0,那么它是-0并不重要,是吗?