gpt4 book ai didi

r - 为什么在quadprog中找不到 '.QP_qpgen2'?

转载 作者:行者123 更新时间:2023-12-02 19:10:33 24 4
gpt4 key购买 nike

我最近清理了一个从quadprog 包中调用solve.QP 的脚本(我目前的版本是1.5-5)。现在它会生成错误“未找到对象'.QP_qpgen2'”。我不明白为什么。

这个对象不是我创建的,而是由quadprog中的solve.QP函数创建的。在 Github 上 Quadprog.R有代码(第 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))

该错误可以由 documentation 中的代码生成。求解。QP:

##
## 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)

如果有帮助的话,我正在使用 R v3.4.1。

最佳答案

正如我的评论中所述,R 3.4 有一种注册外部例程的新方法。 Quadprog 依赖于 Fortran 例程。为了解决这个问题,您需要使用当前的 Rtools 从 R 3.4 中的源代码构建包。您需要有 Rtools安装和设置(谷歌搜索将为您提供如何为您使用的任何系统设置 Rtools 的指南)。然后,进入quadprog的CRAN页面打包并下载源文件quadprog.tar.gz。最后运行命令

install.packages("PATH_TO_FILE/quadprog_1.5-5.tar.gz", repos = NULL, type="source", INSTALL_opts = "--merge-multiarch")

或者,您也可以等待几天。我确信,CRAN 上的软件包很快就会更新。

关于r - 为什么在quadprog中找不到 '.QP_qpgen2'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45038609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com