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

本文介绍了如何在R中使用quadprog包解决二次规划问题,详细阐述了二次规划的概念,提供了目标函数和约束条件的示例,并将其转化为标准型。通过具体实现展示了在R中的代码操作,最后探讨了求解结果。
摘要由CSDN通过智能技术生成

概述

本文将探究一个被称为二次规划的优化问题,这是一种特殊形式的非线性约束优化问题。二次规划在许多领域都有运用,比如投资组合优化、求解支持向量机(SVM)分类问题等。在R中求解二次规划有许多包,这次,我们将讨论一下quadprog包。在我们开始讲解案例之前,我们将先简短地介绍一下二次规划的机理。

什么是二次规划

对于一个二次规划问题,首先要考虑的就是一个二次目标函数:$$ Q(x) = \frac{1}{2} x^T D x - d^T x + c. $$

这里 \(x\) 在 \(\mathbb{R}^n\) 中是一个向量, \(D\) 是一个\(n \times n\) 的对称正定矩阵,在 \(\mathbb{R}^n\) 中 \(d\) 是常数项约束,\(c\) 是一个标量常数。\(Q(x)\)函数通常以二次函数的形式出现,并且它高维的通项表达式是:$$ q(x) = ax^2 +bx + c$$\(Q(x)\)的关键特性在于这是一个凸函数。

我们也对向量\(x\)构造一个线性约束集合,即\(x\) \(\in \mathbb{R}^n\)。
我们把这些约束写成:$$Ax = f \qquad Bx \geq g$$

这里,\(A\) 是一个 \(m_1 \times n\) 的矩阵且约束为 \(m_1 \leq n \),\(B\)B 是一个 \(m_2 \times n\) 的矩阵.向量 \(f\) 和向量 \(g\)的长度分别是\(m_1\)和\(m_2\).

这是一种让我们可以充分考虑实际条件的标准型。比如我们让 \(x\) 强制满足$$ \sum_{i=1}^n x_i = 1$$的求和条件,或者满足\(a_i \leq x_i \leq b_i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值