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

您好,我正在尝试使用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.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并不重要,是吗?