讲解:Python Optimization Methods in FinanceC/C++

Introduction需求分析:内点法的基本原理以及举例计算介绍1.1 二次规划二次规划(QP)是一类特殊的非线性优化问题,它由一个二次目标函数f(x)组成,我们希望根据一些线性等式和不等式约束条件来最小化f(x),一般QP形式如下:其中,此外,Q是一个半正定矩阵,例如,对于所有的。因此,方程(1)中的目标函数是一个优化问题。因此,其局部最优解也是全局解。实际上,如果我们在投资组合优化中暗含形式(1) 将x作为我们持有的资产的权重,Q表示资产的协方差,b表示目标收益率,A表示预期的资产收益率。然后它具有实际的实施:尽量减少我们与目标回报相关的投资组合方差。 等式(1)的对偶是:1.2 最优化(KKT)条件KKT条件是重要的非线性优化问题,阐述了应满足局部最优解的几个条件。它可以用如下的矩阵公式编写:X和S是对角矩阵,e是n维向量。有几句话:(1)由于非线性方程XS = 0,直接隐含了像高斯方法这样的线性方法;(2)非负约束条件限制了牛顿法的应用,所以我们应用IPM。(3)上面的不等式和等式约束给出了一个可行的集合,其中必须定位问题的解以满足约束条件:注意到我们使用原始 - 对偶可行集合概念,报告中的IPM与原始问题同时处理双重问题,因此它也被称为原始 - 双重IPM。 事实上,通过这种方法,我们可以分别获得原始问题和对偶问题的解决方案,这导致了最有效的方法来处理QP。2.3 长步路径跟踪算法在该项目中,我们应用路径跟踪内点法,通过仔细选择步长和搜索方向,试图产生近似于中心点的迭代。 在描述长步路径跟踪算法之前,本质Python代写二次规划 Optimization Methods in Finance帮做C/C++编程作业上是描述中心点的邻域。2.3.1 中心路径邻域如上所述,我们应用中心点的近似值而不是直接计算中心点。因此,如果近似值运行良好,我们预计目标点与当前迭代之间的欧几里得距离足够小,因此当前点应该位于 中心点附近:不幸的是,很难明确计算中心点,所以我们使用隐式形式的中心点来提高计算效率:在给出中心点的隐含描述之后,现在介绍两个最常用的邻域:在实践中,2范数邻域(也称为短步邻域)远小于∞范数邻域(长步邻域),这意味着即使当σ接近1时,只有几个点位于2范数邻域内。因此我们将应用∞范数邻域。 但这并不意味着∞规范邻域没有缺点,实际上,它有时会导致评估者错误的方向,甚至更糟糕。迭代可能卡在可行集合的不合需要的角落,并且在这些最坏情况下收敛可能会很慢。当然,最糟糕的情况很少发生,通常(平均而言)我们看到用长步法比用短步法更快收敛。2.3.2 初始解的选择作为求解QP的其他迭代方法,在IPM中选择属于严格可行集的初始解也是非常重要的。 然而这在实践中相当困难,因此,我们在每次迭代中对线性系统进行一个小的修改,从而限制了这些算法中不可行的起始点。换句话说,初始解的唯一要求是:x0> 0,s0> 0,因此可以通过求解来生成新的迭代:与方程(12)相比,右手边矩阵的前2个块中不再有0,因为我们不需要满足的不可行点开始。2.3.3 LSP算法长步路径跟踪算法如下:例子:松弛KKT条件延伸例题:证明:共轭方向法有约束条件极值在实际中,不会使用拉格朗日和昆都条件求解转自:http://ass.3daixie.com/2018052610002311.html

你可能感兴趣的:(讲解:Python Optimization Methods in FinanceC/C++)