addInequality

在现有约束条件下,增加线性不等式约束条件

描述

例子

obj= addInequality (obj,AInequality,bInequality)将组合权重的线性不等式约束添加到现有的约束中投资组合,PortfolioCVaR,或PortfolioMAD对象。有关使用这些不同对象时各自工作流的详细信息,请参见组合对象的工作流,PortfolioCVaR对象的工作流,PortfolioMAD对象的工作流

给出一个线性不等式约束矩阵AInequality和向量bInequality,投资组合中的每一个权重港口必须满足以下条件:

AInequality * Port = bInequality

这个函数将附加的线性不等式约束“堆叠”到input portfolio对象中存在的任何现有的线性不等式约束上。如果不存在约束,则此函数与setInequality

例子

全部折叠

设置一个线性不等式约束,以确保前三种资产最多占投资组合的50%。然后添加另一个线性不等式约束,以确保最后三种资产至少占投资组合的50%。

p =投资组合;A = [11 1 0 0];%一不等式约束b = 0.5;(p, A, b);A = [0 0 -1 -1 -1];%第二不等式约束b = -0.5;(p, A, b);disp (p.NumAssets);
5
disp (p.AInequality);
11 11 0 0 0 0 -1 -1 -1
disp (p.bInequality);
0.5000 - -0.5000

设置一个线性不等式约束,以确保前三种资产最多占投资组合的50%。然后添加另一个线性不等式约束,以确保最后三种资产至少占投资组合的50%。

p = PortfolioCVaR;A = [11 1 0 0];%一不等式约束b = 0.5;(p, A, b);A = [0 0 -1 -1 -1];%第二不等式约束b = -0.5;(p, A, b);disp (p.NumAssets);
5
disp (p.AInequality);
11 11 0 0 0 0 -1 -1 -1
disp (p.bInequality);
0.5000 - -0.5000

设置一个线性不等式约束,以确保前三种资产最多占投资组合的50%。然后添加另一个线性不等式约束,以确保最后三种资产至少占投资组合的50%。

p = PortfolioMAD;A = [11 1 0 0];%一不等式约束b = 0.5;(p, A, b);A = [0 0 -1 -1 -1];%第二不等式约束b = -0.5;(p, A, b);disp (p.NumAssets);
5
disp (p.AInequality);
11 11 0 0 0 0 -1 -1 -1
disp (p.bInequality);
0.5000 - -0.5000

输入参数

全部折叠

对象的组合,指定使用投资组合,PortfolioCVaR,或PortfolioMAD对象。有关创建portfolio对象的更多信息,请参见

数据类型:对象

线性不等式约束,指定为矩阵。

请注意

如果出现以下情况,则会产生错误AInequality是空的,bInequality非空的。

数据类型:

线性不等式约束,指定为向量。

请注意

如果出现以下情况,则会产生错误bInequality是空的,AInequality非空的。

数据类型:

输出参数

全部折叠

更新的portfolio对象,返回为投资组合,PortfolioCVaR,或PortfolioMAD对象。有关创建portfolio对象的更多信息,请参见

提示

  • 您还可以使用点表示法来为投资组合权重添加线性不等式约束。

    obj = obj。addInequality (AInequality bInequality)

  • 您还可以使用点符号从任何组合对象中移除线性不等式约束。

    obj = obj。setInequality([], [])

介绍了R2011a