1、第六章 二次规划quadratic program,二次规划简介等式约束二次规划 方法1 直接变量消去法 方法2 Lagrange乘子法,模型的建立设投资的期限是一年,可供选择的金融资产数为n。设此n中金融资产的年收益为随机变量 。由于我们主要关心投资的分配比例,不妨设投资总数为1个单位,用于第j中投资的资金比例为 , 令称为投资组合向量,显然应有:,投资一年的收益 也是一个随机变量,期望收益为马库维茨建议用随机变量 (组合投资收益)的方差作为投资风险的度量,即设随机向量的数学期望为 ,自协方差矩阵为,那么投资者一般希望收益越大越好,风险越小越好。但收益大和风险小往往是两个有矛盾的目标,因此马
2、库维茨将问题归结为:将风险控制在一定水平之下,选择投资组合使期望收益最大;或者在收益不低于某个水平前提下使投资的风险最小。这样就有以下两个马库维茨组合投资优化模型。,其中r是预定的风险水平.,第一个模型是控制风险, 优化收益模型,第二个模型是控制收益,极小化风险的模型,还可将收益和风险指标进行加权平均,得到如下模型其中, 是一个适当选取的常数.由于在 中包含了各分量的二次项,这三个模型均为二次规划模型.,模型的求解和应用 上述三个模型中均需要用到随机变量 的数学期望和协方差矩阵,这可以通过对前若干年的各资产收益的统计分析获得.而这些二次规划问题在系数确定后可用软件(如LINDO/LINGO)求
3、解.,补充内容:二次规划问题Matlab求解二次规划问题(quadratic programming)的标准形式为: sub.to 其中,H、A、Aeq为矩阵,f、b、beq、lb、ub、x为向量其它形式的二次规划问题都可转化为标准形式. MATLAB5.x版中的qp函数已被6.0版中的函数quadprog取代。,函数 quadprog格式 x = quadprog(H,f,A,b) %其中H,f,A,b为标准形中的参数,x为目标函数的最小值.x = quadprog(H,f,A,b,Aeq,beq) %Aeq,beq满足等约束条件.x = quadprog(H,f,A,b,Aeq,beq,l
4、b,ub) % lb,ub分别为解x的下界与上界.x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0) %x0为设置的初值x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options) % options为指定的优化参数.x,fval = quadprog() %fval为目标函数最优值.x,fval,exitflag = quadprog() % exitflag与线性规划中参数意义相同.x,fval,exitflag,output = quadprog() % output与线性规划中参数意义相同.x,fval,exitflag,out
5、put,lambda = quadprog() % lambda与线性规划中参数意义相同 .,例 求二次规划的最优解 max f (x1, x2)=x1x2+3 sub. to x1+x2-2=0解:化成标准形式: sub.to x1+x2=2,在Matlab中实现如下:H=0,-1;-1,0;f=0;0;Aeq=1 1;b=2;x,fval,exitflag,output,lambda = quadprog(H,f, , ,Aeq,b)结果为:x = 1.0000 1.0000,fval =-1.0000exitflag =4output = iterations: 1 algorithm: large-scale: projective preconditioned conjugate gradients f irstorderopt: 0 cgiterations: 1 message: Optimization terminated: local minimum found; the solution is singular.,lambda = eqlin: 1.0000 ineqlin: lower: upper: ,