在R中使用quadprog包求解二次规划

[译]在R中使用quadprog包求解二次规划 - 知乎 (zhihu.com)
本文将探究一个被称为二次规划的优化问题,这是一种特殊形式的非线性约束优化问题。二次规划在许多领域都有运用,比如投资组合优化、求解支持向量机(SVM)分类问题等。

什么是二次规划
对于一个二次规划问题,首先要考虑的就是一个二次目标函数:


image.png

这里 x 在 ℝn 中是一个向量, D 是一个n×n 的对称正定矩阵,在 ℝn 中 d 是常数项约束,c 是一个标量常数。Q(x)函数通常以二次函数的形式出现,并且它高维的通项表达式是:


image.png
require(quadprog)
Dmat <- 2*matrix(c(1,-1/2,-1/2,1), nrow = 2, byrow=TRUE)
dvec <- c(-3,2)
A    <- matrix(c(1,1,-1,1,0,-1), ncol = 2 , byrow=TRUE)
bvec <- c(2,-2,-3)
Amat <- t(A)
sol  <- solve.QP(Dmat, dvec, Amat, bvec, meq=0)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容