Ich habe vor kurzem ein Skript entstaubt, das solve.QP aus dem Quadprog-Paket aufruft (ich habe derzeit Version 1.5-5). Jetzt erzeugt es den Fehler "Objekt '.QP_qpgen2' nicht gefunden". Ich verstehe nicht warum.Warum wird '.QP_qpgen2' in Quadprog nicht gefunden?
Dieses Objekt wird nicht von mir, sondern von der Funktion solve.QP in Quadprog erstellt. Auf Github Quadprog.R hat den Code (Linie 117):
res1 <- .Fortran(.QP_qpgen2,
as.double(Dmat), dvec=as.double(dvec),
as.integer(n), as.integer(n),
sol=as.double(sol), lagr=as.double(lagr),
crval=as.double(crval),
as.double(Amat), as.double(bvec), as.integer(n),
as.integer(q), as.integer(meq),
iact=as.integer(iact), nact=as.integer(nact),
iter=as.integer(iter), work=as.double(work),
ierr=as.integer(factorized))
Der Fehler kann von dem von der documentation für solve.QP genommen Code generiert werden:
##
## Assume we want to minimize: -(0 5 0) %*% b + 1/2 b^T b
## under the constraints: A^T b >= b0
## with b0 = (-8,2,0)^T
## and (-4 2 0)
## A = (-3 1 -2)
## (0 0 1)
## we can use solve.QP as follows:
##
Dmat <- matrix(0,3,3)
diag(Dmat) <- 1
dvec <- c(0,5,0)
Amat <- matrix(c(-4,-3,0,2,1,0,0,-2,1),3,3)
bvec <- c(-8,2,0)
solve.QP(Dmat,dvec,Amat,bvec=bvec)
Ich bin mit R V3.4.1 wenn das hilft.
Ich habe die gleichen Probleme. Soweit ich das beurteilen kann, hat R 3.4 eine neue Methode, Routinen in Fortran zu registrieren (siehe https://cran.r-project.org/doc/manuals/r-release/R-exts.html#Registering-native- Routinen). Das Quadprog-Paket wurde noch nicht aktualisiert. – pbr142