主要内容gydF4y2Ba

setSolvergydF4y2Ba

选择主求解器,并为组合优化指定相关的求解器选项gydF4y2Ba

描述gydF4y2Ba

例子gydF4y2Ba

objgydF4y2Ba= setSolver (gydF4y2BaobjgydF4y2Ba,gydF4y2BasolverTypegydF4y2Ba)gydF4y2Ba选择主求解器,并使您能够指定用于组合优化的关联求解器选项gydF4y2Ba投资组合gydF4y2Ba,gydF4y2BaPortfolioCVaRgydF4y2Ba,或gydF4y2BaPortfolioMADgydF4y2Ba对象。有关使用这些不同对象时各自工作流的详细信息,请参见gydF4y2Ba组合对象的工作流gydF4y2Ba,gydF4y2BaPortfolioCVaR对象的工作流gydF4y2Ba,gydF4y2BaPortfolioMAD对象的工作流gydF4y2Ba.gydF4y2Ba

例子gydF4y2Ba

objgydF4y2Ba= setSolver (gydF4y2BaobjgydF4y2Ba,gydF4y2BasolverTypegydF4y2Ba,gydF4y2Ba名称,值gydF4y2Ba)gydF4y2Ba选择主求解器,并使您能够通过使用一个或多个指定的附加选项,为组合对象的组合优化指定相关的求解器选项gydF4y2Ba名称,值gydF4y2Ba对参数。gydF4y2Ba

例子gydF4y2Ba

objgydF4y2Ba= setSolver (gydF4y2BaobjgydF4y2Ba,gydF4y2BasolverTypegydF4y2Ba,gydF4y2BaoptimoptionsgydF4y2Ba)gydF4y2Ba选择主求解器,并使您能够指定相关的求解器选项,用于组合对象的组合优化gydF4y2BaoptimoptionsgydF4y2Ba对象。gydF4y2Ba

例子gydF4y2Ba

全部折叠gydF4y2Ba

如果您使用gydF4y2BaquadproggydF4y2Ba函数的gydF4y2BasolverTypegydF4y2Ba,默认为gydF4y2Bainterior-point-convexgydF4y2Ba版本的gydF4y2BaquadproggydF4y2Ba.gydF4y2Ba

负载gydF4y2BaCAPMuniversegydF4y2Bap =组合(gydF4y2Ba“AssetList”gydF4y2Ba、资产(1:12));p = setDefaultConstraints (p);p = setSolver (p,gydF4y2Ba“quadprog”gydF4y2Ba);显示(p.solverType);gydF4y2Ba
quadproggydF4y2Ba

你可以切换回gydF4y2BalcproggydF4y2Ba:gydF4y2Ba

p = setSolver (p,gydF4y2Ba“lcprog”gydF4y2Ba);显示(p.solverType);gydF4y2Ba
lcproggydF4y2Ba

使用gydF4y2Ba“fmincon”gydF4y2Ba随着gydF4y2BasolverTypegydF4y2Ba.gydF4y2Ba

p = PortfolioCVaR;p = setSolver (p,gydF4y2Ba“fmincon”gydF4y2Ba);显示(p.solverType);gydF4y2Ba
fmincongydF4y2Ba

使用gydF4y2Ba“fmincon”gydF4y2Ba随着gydF4y2BasolverTypegydF4y2Ba并使用名称-值对参数将算法设置为gydF4y2Ba“内点”gydF4y2Ba并关闭显示器。gydF4y2Ba

p = PortfolioCVaR;p = setSolver (p,gydF4y2Ba“fmincon”gydF4y2Ba,gydF4y2Ba“算法”gydF4y2Ba,gydF4y2Ba“内点”gydF4y2Ba,gydF4y2Ba“显示”gydF4y2Ba,gydF4y2Ba“关闭”gydF4y2Ba);显示(p.solverOptions.Algorithm);gydF4y2Ba
内点gydF4y2Ba
显示(p.solverOptions.Display);gydF4y2Ba
从gydF4y2Ba

使用gydF4y2Ba“fmincon”gydF4y2Ba随着gydF4y2BasolverTypegydF4y2Ba并使用一个gydF4y2BaoptimoptionsgydF4y2Ba对象,将算法设置为gydF4y2Ba“内点”gydF4y2Ba并关闭显示器。gydF4y2Ba

p = PortfolioCVaR;选择= optimoptions (gydF4y2Ba“fmincon”gydF4y2Ba,gydF4y2Ba“算法”gydF4y2Ba,gydF4y2Ba“内点”gydF4y2Ba,gydF4y2Ba“显示”gydF4y2Ba,gydF4y2Ba“关闭”gydF4y2Ba);p = setSolver (p,gydF4y2Ba“fmincon”gydF4y2Ba、选择);显示(p.solverOptions.Algorithm);gydF4y2Ba
内点gydF4y2Ba
显示(p.solverOptions.Display);gydF4y2Ba
从gydF4y2Ba

使用gydF4y2Ba“TrustRegionCP”gydF4y2Ba随着gydF4y2BasolverTypegydF4y2Ba使用默认选项。gydF4y2Ba

p = PortfolioCVaR;p = setSolver (p,gydF4y2Ba“TrustRegionCP”gydF4y2Ba);显示(p.solverType);gydF4y2Ba
trustregioncpgydF4y2Ba
显示(p.solverOptions);gydF4y2Ba
struct with fields: MaxIterations: 1000 AbsoluteGapTolerance: 1.0000e-07 RelativeGapTolerance: 1.0000e-05 NonlinearScalingFactor: 1000 ObjectiveScalingFactor: 1000 MasterSolverOptions: [1x1 optime .options.]Linprog] Display: 'off' CutGeneration: 'basic' maxiterationsinactivcut: 30 activecuttolance: 1.0000e-07 ShrinkRatio: 0.7500 TrustRegionStartIteration: 2 InitialDelta: 0.5000 DeltaLimit: 1000000gydF4y2Ba

                    

使用名称-值对gydF4y2Ba“ShrinkRatio”gydF4y2Ba将信任区域的大小缩小到gydF4y2Ba0.75gydF4y2Ba.gydF4y2Ba

p = PortfolioCVaR;p = setSolver (p,gydF4y2Ba“TrustRegionCP”gydF4y2Ba,gydF4y2Ba“ShrinkRatio”gydF4y2Ba, 0.75);显示(p.solverType);gydF4y2Ba
trustregioncpgydF4y2Ba
显示(p.solverOptions);gydF4y2Ba
struct with fields: MaxIterations: 1000 AbsoluteGapTolerance: 1.0000e-07 RelativeGapTolerance: 1.0000e-05 NonlinearScalingFactor: 1000 ObjectiveScalingFactor: 1000 MasterSolverOptions: [1x1 optime .options.]Linprog] Display: 'off' CutGeneration: 'basic' maxiterationsinactivcut: 30 activecuttolance: 1.0000e-07 ShrinkRatio: 0.7500 TrustRegionStartIteration: 2 InitialDelta: 0.5000 DeltaLimit: 1000000gydF4y2Ba

对于主求解器,继续使用gydF4y2Ba对偶单纯形gydF4y2Ba算法没有显示,但收紧其终止公差gydF4y2Ba1 e8gydF4y2Ba.gydF4y2Ba

p = PortfolioCVaR;选择= optimoptions (gydF4y2Ba“linprog”gydF4y2Ba,gydF4y2Ba“算法”gydF4y2Ba,gydF4y2Ba对偶单纯形的gydF4y2Ba,gydF4y2Ba“显示”gydF4y2Ba,gydF4y2Ba“关闭”gydF4y2Ba,gydF4y2Ba“OptimalityTolerance”gydF4y2Ba1 e8);p = setSolver (p,gydF4y2Ba“TrustRegionCP”gydF4y2Ba,gydF4y2Ba“MasterSolverOptions”gydF4y2Ba、选择);显示器(p.solverType)gydF4y2Ba
trustregioncpgydF4y2Ba
显示器(p.solverOptions)gydF4y2Ba
struct with fields: MaxIterations: 1000 AbsoluteGapTolerance: 1.0000e-07 RelativeGapTolerance: 1.0000e-05 NonlinearScalingFactor: 1000 ObjectiveScalingFactor: 1000 MasterSolverOptions: [1x1 optime .options.]Linprog] Display: 'off' CutGeneration: 'basic' maxiterationsinactivcut: 30 activecuttolance: 1.0000e-07 ShrinkRatio: 0.7500 TrustRegionStartIteration: 2 InitialDelta: 0.5000 DeltaLimit: 1000000gydF4y2Ba
显示器(p.solverOptions.MasterSolverOptions.Algorithm)gydF4y2Ba
对偶单纯形gydF4y2Ba
显示器(p.solverOptions.MasterSolverOptions.Display)gydF4y2Ba
从gydF4y2Ba
显示器(p.solverOptions.MasterSolverOptions.TolFun)gydF4y2Ba
100000000gydF4y2Ba

对于主求解器,使用gydF4y2Ba内点gydF4y2Ba算法具有无显示,且具有终端容差为gydF4y2Ba1 e7gydF4y2Ba.gydF4y2Ba

p = PortfolioCVaR;选择= optimoptions (gydF4y2Ba“linprog”gydF4y2Ba,gydF4y2Ba“算法”gydF4y2Ba,gydF4y2Ba“内点”gydF4y2Ba,gydF4y2Ba“显示”gydF4y2Ba,gydF4y2Ba“关闭”gydF4y2Ba,gydF4y2Ba“OptimalityTolerance”gydF4y2Ba1 e7);p = setSolver (p,gydF4y2Ba“TrustRegionCP”gydF4y2Ba,gydF4y2Ba“MasterSolverOptions”gydF4y2Ba、选择);显示器(p.solverType)gydF4y2Ba
trustregioncpgydF4y2Ba
显示器(p.solverOptions)gydF4y2Ba
struct with fields: MaxIterations: 1000 AbsoluteGapTolerance: 1.0000e-07 RelativeGapTolerance: 1.0000e-05 NonlinearScalingFactor: 1000 ObjectiveScalingFactor: 1000 MasterSolverOptions: [1x1 optime .options.]Linprog] Display: 'off' CutGeneration: 'basic' maxiterationsinactivcut: 30 activecuttolance: 1.0000e-07 ShrinkRatio: 0.7500 TrustRegionStartIteration: 2 InitialDelta: 0.5000 DeltaLimit: 1000000gydF4y2Ba
显示器(p.solverOptions.MasterSolverOptions.Algorithm)gydF4y2Ba
内点gydF4y2Ba
显示器(p.solverOptions.MasterSolverOptions.Display)gydF4y2Ba
从gydF4y2Ba
显示器(p.solverOptions.MasterSolverOptions.TolFun)gydF4y2Ba
10000000gydF4y2Ba

使用gydF4y2Ba“fmincon”gydF4y2Ba随着gydF4y2BasolverTypegydF4y2Ba.gydF4y2Ba

p = PortfolioMAD;p = setSolver (p,gydF4y2Ba“fmincon”gydF4y2Ba);显示(p.solverType);gydF4y2Ba
fmincongydF4y2Ba

使用gydF4y2Ba“fmincon”gydF4y2Ba随着gydF4y2BasolverTypegydF4y2Ba并使用名称-值对参数将算法设置为gydF4y2Ba“sqp”gydF4y2Ba然后打开显示器。gydF4y2Ba

p = PortfolioMAD;p = setSolver (p,gydF4y2Ba“fmincon”gydF4y2Ba,gydF4y2Ba“算法”gydF4y2Ba,gydF4y2Ba“sqp”gydF4y2Ba,gydF4y2Ba“显示”gydF4y2Ba,gydF4y2Ba“最后一次”gydF4y2Ba);显示(p.solverOptions.Algorithm);gydF4y2Ba
sqpgydF4y2Ba
显示(p.solverOptions.Display);gydF4y2Ba
最后gydF4y2Ba

使用gydF4y2Ba“fmincon”gydF4y2Ba随着gydF4y2BasolverTypegydF4y2Ba并使用一个gydF4y2BaoptimoptionsgydF4y2Ba对象,将算法设置为gydF4y2Ba“trust-region-reflective”gydF4y2Ba并关闭显示器。gydF4y2Ba

p = PortfolioMAD;选择= optimoptions (gydF4y2Ba“fmincon”gydF4y2Ba,gydF4y2Ba“算法”gydF4y2Ba,gydF4y2Ba“trust-region-reflective”gydF4y2Ba,gydF4y2Ba“显示”gydF4y2Ba,gydF4y2Ba“关闭”gydF4y2Ba);p = setSolver (p,gydF4y2Ba“fmincon”gydF4y2Ba、选择);显示(p.solverOptions.Algorithm);gydF4y2Ba
trust-region-reflectivegydF4y2Ba
显示(p.solverOptions.Display);gydF4y2Ba
从gydF4y2Ba

使用gydF4y2Ba“fmincon”gydF4y2Ba随着gydF4y2BasolverTypegydF4y2Ba并使用一个gydF4y2BaoptimoptionsgydF4y2Ba对象,将算法设置为gydF4y2Ba“激活集”gydF4y2Ba设置渐变标志gydF4y2Ba“上”gydF4y2Ba为gydF4y2Ba“GradObj”gydF4y2Ba关掉显示器。gydF4y2Ba

p = PortfolioMAD;选择= optimoptions (gydF4y2Ba“fmincon”gydF4y2Ba,gydF4y2Ba“算法”gydF4y2Ba,gydF4y2Ba“激活集”gydF4y2Ba,gydF4y2Ba“显示”gydF4y2Ba,gydF4y2Ba“关闭”gydF4y2Ba,gydF4y2Ba“gradobj”gydF4y2Ba,gydF4y2Ba“上”gydF4y2Ba);p = setSolver (p,gydF4y2Ba“fmincon”gydF4y2Ba、选择);显示(p.solverOptions.Algorithm);gydF4y2Ba
有效集gydF4y2Ba
显示(p.solverOptions.Display);gydF4y2Ba
从gydF4y2Ba

输入参数gydF4y2Ba

全部折叠gydF4y2Ba

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

数据类型:gydF4y2Ba对象gydF4y2Ba

用于组合优化的求解器,为所支持的使用字符向量或字符串指定gydF4y2BasolverTypegydF4y2Ba.gydF4y2Ba

的gydF4y2BasolverTypegydF4y2Ba输入参数取决于对象的类型(gydF4y2BaobjgydF4y2Ba)正被用于投资组合优化。gydF4y2Ba

对于一个gydF4y2Ba投资组合gydF4y2Ba对象,支持gydF4y2BasolverTypegydF4y2Ba是:gydF4y2Ba

  • “lcprog”gydF4y2Ba(默认)。gydF4y2Ba

    • 的gydF4y2Ba“lcprog”gydF4y2Ba求解器使用线性互补规划和Lemke算法,控制变量名值对参数gydF4y2Ba“麦克斯特”gydF4y2Ba,gydF4y2Ba“抢七”gydF4y2Ba,gydF4y2Ba“tolpiv”gydF4y2Ba.有关gydF4y2Ba“lcprog”gydF4y2Ba名称-值对选项,请参见gydF4y2Ba组合对象名称-值对参数gydF4y2Ba.gydF4y2Ba

  • “fmincon”gydF4y2Ba

    • 的默认算法gydF4y2Ba“fmincon”gydF4y2Ba是gydF4y2Ba“sqp”gydF4y2Ba.有关gydF4y2Ba“fmincon”gydF4y2Ba名称-值对选项,请参见gydF4y2Ba组合对象名称-值对参数gydF4y2Ba.gydF4y2Ba

  • “quadprog”gydF4y2Ba

    • 的默认算法gydF4y2Ba“quadprog”gydF4y2Ba是gydF4y2Bainterior-point-convexgydF4y2Ba.有关gydF4y2Ba“quadprog”gydF4y2Ba名称-值对选项,请参见gydF4y2Ba组合对象名称-值对参数gydF4y2Ba.gydF4y2Ba

对于一个gydF4y2BaPortfolioCVaRgydF4y2Ba对象,支持gydF4y2BasolverTypegydF4y2Ba是:gydF4y2Ba

  • “TrustRegionCP”gydF4y2Ba(默认)gydF4y2Ba

  • “ExtendedCP”gydF4y2Ba

  • “fmincon”gydF4y2Ba

  • “cuttingplane”gydF4y2Ba

    • 的gydF4y2Ba“cuttingplane”gydF4y2Ba求解器是Kelley的一个实现gydF4y2Ba[1]gydF4y2Ba凸优化的切割平面法,具有名值对参数gydF4y2Ba“麦克斯特”gydF4y2Ba,gydF4y2Ba“Abstol”gydF4y2Ba,gydF4y2Ba“Reltol”gydF4y2Ba而且gydF4y2Ba“MasterSolverOptions”gydF4y2Ba.有关gydF4y2Ba“cuttingplane”gydF4y2Ba名称-值对选项,请参见gydF4y2BaPortfolioCVaR对象名称-值对参数gydF4y2Ba.gydF4y2Ba

对于一个gydF4y2BaPortfolioMADgydF4y2Ba对象,支持gydF4y2BasolverTypegydF4y2Ba是:gydF4y2Ba

请注意gydF4y2Ba

setSolvergydF4y2Ba还可以配置求解器选项gydF4y2Ba“linprog”gydF4y2Ba.gydF4y2BalinproggydF4y2Ba是否使用辅助求解器来估计a的有效前沿问题gydF4y2Ba投资组合gydF4y2Ba,gydF4y2BaPorfolioCVaRgydF4y2Ba,或gydF4y2BaPortfolioMADgydF4y2Ba对象。的默认算法gydF4y2Ba“linprog”gydF4y2Ba是gydF4y2Ba对偶单纯形的gydF4y2Ba.有关gydF4y2Ba“linprog”gydF4y2Ba名称-值对选项,请参见gydF4y2Ba名称-值对的观点gydF4y2Ba.有关使用辅助求解器的详细信息,请参见gydF4y2Ba组合对象的求解器指南gydF4y2Ba,gydF4y2BaPortfolioCVaR对象的求解器指南gydF4y2Ba,或gydF4y2BaPortfolioMAD对象的求解器指南gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba

(可选)gydF4y2BaoptimoptionsgydF4y2Ba对象,指定为gydF4y2BaoptimoptionsgydF4y2Ba对象创建的gydF4y2BaoptimoptionsgydF4y2Ba从优化工具箱™。例如:gydF4y2Ba

(p, p = setSolver fmincon, optimoptions(“fmincon”,“显示”,“iter”));gydF4y2Ba

请注意gydF4y2Ba

optimoptionsgydF4y2Ba但是,设置求解器选项是默认和推荐的方法吗gydF4y2BaoptimsetgydF4y2Ba还支持。gydF4y2Ba

数据类型:gydF4y2Ba对象gydF4y2Ba

名称-值参数gydF4y2Ba

指定可选参数对为gydF4y2BaName1 = Value1,…,以=家gydF4y2Ba,在那里gydF4y2Ba的名字gydF4y2Ba参数名称和gydF4y2Ba价值gydF4y2Ba对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。gydF4y2Ba

在R2021a之前,名称和值之间用逗号隔开,并括起来gydF4y2Ba的名字gydF4y2Ba在报价。gydF4y2Ba

例子:gydF4y2Bap = setSolver (p,‘cuttingplane’,‘MasterSolverOptions’,选项)gydF4y2Ba集gydF4y2BacuttingplanegydF4y2Ba选择一个gydF4y2BaPortfolioCVaRgydF4y2Ba对象。gydF4y2Ba

根据gydF4y2BaobjgydF4y2Ba类型(gydF4y2Ba投资组合gydF4y2Ba,gydF4y2BaPortfolioCVaRgydF4y2Ba,或gydF4y2BaPortfolioMADgydF4y2Ba)及指定的gydF4y2BasolverTypegydF4y2Ba,关联的名称-值对参数的选项是不同的。gydF4y2Ba

投资组合gydF4y2Ba对象名称-值对参数gydF4y2Ba
  • 对于一个gydF4y2Ba投资组合gydF4y2Ba对象使用gydF4y2BasolverTypegydF4y2Ba的gydF4y2BalcproggydF4y2Ba,在该表中选择一个名称-值。gydF4y2Ba

    价值gydF4y2Ba 描述gydF4y2Ba
    “麦克斯特”gydF4y2Ba

    最大迭代次数,指定为逗号分隔的对,由gydF4y2Ba“麦克斯特”gydF4y2Ba一个正整数。默认值为gydF4y2Ba1 +gydF4y2BangydF4y2Ba3.gydF4y2Ba,在那里gydF4y2BangydF4y2Ba是输入的维数。gydF4y2Ba

    “抢七”gydF4y2Ba

    方法打破枢轴选择的束缚,指定为逗号分隔的对,由gydF4y2Ba“抢七”gydF4y2Ba和以下选项之一:gydF4y2Ba

    • 第一个gydF4y2Ba-选择索引最低的枢轴。gydF4y2Ba

    • 最后的gydF4y2Ba—选择索引最高的枢轴。gydF4y2Ba

    • 随机gydF4y2Ba-随机选择一个枢轴。gydF4y2Ba

    默认值为gydF4y2Ba第一个gydF4y2Ba.gydF4y2Ba

    “tolpiv”gydF4y2Ba

    枢轴公差,低于此值的数字被认为是零,指定为逗号分隔的对,由gydF4y2Ba“tolpiv”gydF4y2Ba和一个数值。默认值为gydF4y2Ba1.0 e-9gydF4y2Ba.gydF4y2Ba

  • 对于一个gydF4y2Ba投资组合gydF4y2Ba对象使用gydF4y2BasolverTypegydF4y2Ba的gydF4y2BafmincongydF4y2Ba,请参阅gydF4y2Ba选项gydF4y2Ba选择名称-值对参数。gydF4y2Ba

  • 对于一个gydF4y2Ba投资组合gydF4y2Ba对象使用gydF4y2BasolverTypegydF4y2Ba的gydF4y2BalinproggydF4y2Ba,请参阅gydF4y2Ba选项gydF4y2Ba选择名称-值对参数。gydF4y2Ba

  • 对于一个gydF4y2Ba投资组合gydF4y2Ba对象使用gydF4y2BasolverTypegydF4y2Ba的gydF4y2BaquadproggydF4y2Ba,请参阅gydF4y2Ba选项gydF4y2Ba选择名称-值对参数。gydF4y2Ba

PortfolioCVaRgydF4y2Ba对象名称-值对参数gydF4y2Ba
  • 对于一个gydF4y2BaPortfolioCVaRgydF4y2Ba对象使用gydF4y2BasolverTypegydF4y2Ba的gydF4y2BafmincongydF4y2Ba,请参阅gydF4y2Ba选项gydF4y2Ba选择名称-值对参数。gydF4y2Ba

  • 对于一个gydF4y2BaPorfolioCVaRgydF4y2Ba对象使用gydF4y2BasolverTypegydF4y2Ba的gydF4y2Ba“TrustRegionCP”gydF4y2Ba或gydF4y2Ba“ExtendedCP”gydF4y2Ba,请参阅gydF4y2Ba'TrustRegionCP'和'ExtendedCP'的名值对参数gydF4y2Ba选择名称-值对参数。gydF4y2Ba

  • 对于一个gydF4y2BaPorfolioCVaRgydF4y2Ba对象使用gydF4y2BasolverTypegydF4y2Ba的gydF4y2Ba“cuttingplane”gydF4y2Ba,在此表中选择一个名称-值对值。gydF4y2Ba

    价值gydF4y2Ba 描述gydF4y2Ba
    “麦克斯特”gydF4y2Ba

    最大迭代次数,指定为逗号分隔的对,由gydF4y2Ba“麦克斯特”gydF4y2Ba一个正整数。默认值为gydF4y2Ba1000gydF4y2Ba.gydF4y2Ba

    “AbsTol”gydF4y2Ba

    绝对停止公差,用逗号分隔的一对表示gydF4y2Ba“AbsTol”gydF4y2Ba一个正的标量。默认值为gydF4y2Ba1 e6gydF4y2Ba.gydF4y2Ba

    “RelTol”gydF4y2Ba

    相对停止公差,用逗号分隔的一对表示gydF4y2Ba“RelTol”gydF4y2Ba一个正的标量。默认值为gydF4y2Ba1 e5gydF4y2Ba.gydF4y2Ba

    “MasterSolverOptions”gydF4y2Ba

    主求解器的选项gydF4y2BalinproggydF4y2Ba,指定为逗号分隔的对,由gydF4y2Ba“MasterSolverOptions”gydF4y2Ba和一个gydF4y2BaoptimoptionsgydF4y2Ba对象。默认值是gydF4y2Baoptimoptions(“linprog”、“算法”、“对偶单纯形”,“显示”,“关闭”)gydF4y2Ba.gydF4y2Ba

  • 对于一个gydF4y2BaPortfolioCVaRgydF4y2Ba对象使用gydF4y2BasolverTypegydF4y2Ba的gydF4y2BalinproggydF4y2Ba,请参阅gydF4y2Ba选项gydF4y2Ba选择名称-值对参数。gydF4y2Ba

PortfolioMADgydF4y2Ba对象名称-值对参数gydF4y2Ba
  • 对于一个gydF4y2BaPortfolioMADgydF4y2Ba对象使用gydF4y2BasolverTypegydF4y2Ba的gydF4y2BafmincongydF4y2Ba,请参阅gydF4y2Ba选项gydF4y2Ba选择名称-值对参数。gydF4y2Ba

  • 对于一个gydF4y2BaPorfolioMADgydF4y2Ba对象使用gydF4y2BasolverTypegydF4y2Ba的gydF4y2Ba“TrustRegionCP”gydF4y2Ba或gydF4y2Ba“ExtendedCP”gydF4y2Ba,请参阅gydF4y2Ba'TrustRegionCP'和'ExtendedCP'的名值对参数gydF4y2Ba选择名称-值对参数。gydF4y2Ba

  • 对于一个gydF4y2BaPortfolioMADgydF4y2Ba对象使用gydF4y2BasolverTypegydF4y2Ba的gydF4y2BalinproggydF4y2Ba,请参阅gydF4y2Ba选项gydF4y2Ba选择名称-值对参数。gydF4y2Ba

的名称-值对参数gydF4y2Ba“TrustRegionCP”gydF4y2Ba而且gydF4y2Ba“ExtendedCP”gydF4y2Ba

对于一个gydF4y2BaPortfolioCVaRgydF4y2Ba或gydF4y2BaPortfolioMADgydF4y2Ba对象使用gydF4y2BasolverTypegydF4y2Ba的gydF4y2Ba“TrustRegionCP”gydF4y2Ba或gydF4y2Ba“ExtendedCP”gydF4y2Ba,在此表中选择一个名称-值对值。gydF4y2Ba

价值gydF4y2Ba 描述gydF4y2Ba
“MaxIterations”gydF4y2Ba

最大迭代次数,指定为逗号分隔的对,由gydF4y2Ba“MaxIterations”gydF4y2Ba一个正实数。默认值为gydF4y2Ba1 e3gydF4y2Ba.gydF4y2Ba

“NonlinearScalingFactor”gydF4y2Ba

用一个因子缩放非线性函数及其梯度,该因子指定为逗号分隔的对,由gydF4y2Ba“NonlinearScalingFactor”gydF4y2Ba一个正实数。默认值为gydF4y2Ba1 e3gydF4y2Ba.gydF4y2Ba

“ObjectiveScalingFactor”gydF4y2Ba

将目标函数扩展为一个因子,由逗号分隔的对组成gydF4y2Ba“ObjectiveScalingFactor”gydF4y2Ba一个正实数。默认值为gydF4y2Ba1 e3gydF4y2Ba.gydF4y2Ba

“AbsoluteGapTolerance”gydF4y2Ba 当近似非线性函数值与其真实值之间的绝对差小于或等于时,求解器停止gydF4y2BaAbsoluteGapTolerancegydF4y2Ba,指定为逗号分隔的对,由gydF4y2Ba“AbsoluteGapTolerance”gydF4y2Ba一个正实数。默认值为gydF4y2Ba1 e7gydF4y2Ba.gydF4y2Ba
“RelativeGapTolerance”gydF4y2Ba 当近似非线性函数值与其真实值之间的相对差小于或等于时,求解器停止gydF4y2BaRelativeGapTolerancegydF4y2Ba,指定为逗号分隔的对,由gydF4y2Ba“RelativeGapTolerance”gydF4y2Ba一个正实数。默认值为gydF4y2Ba1 e5gydF4y2Ba.gydF4y2Ba
“显示”gydF4y2Ba 显示级别,指定为逗号分隔的对,由gydF4y2Ba“显示”gydF4y2Ba和支持的值:gydF4y2Ba
  • “通路”gydF4y2Ba在每个迭代中显示输出并给出技术退出消息。gydF4y2Ba

  • “最后一次”gydF4y2Ba只显示最终的输出并给出最终的技术退出消息。gydF4y2Ba

  • “关闭”gydF4y2Ba是默认值,并且不显示任何输出。gydF4y2Ba

“CutGeneration”gydF4y2Ba 方法添加切割,指定为逗号分隔的对gydF4y2Ba“CutGeneration”gydF4y2Ba和支持的值:gydF4y2Ba
  • “基本”gydF4y2Ba是默认值,并且在找到的最新解处添加新切割。gydF4y2Ba

  • “中途岛”gydF4y2Ba是在发现的最新解和先前解之间的中点添加新切。gydF4y2Ba

“MaxIterationsInactiveCut”gydF4y2Ba 移除最后一个不活动的约束gydF4y2BaMaxIterationsInactiveCutgydF4y2Ba迭代,指定为逗号分隔的对,由gydF4y2Ba“MaxIterationsInactiveCut”gydF4y2Ba一个正整数。默认值为gydF4y2Ba30.gydF4y2Ba.gydF4y2Ba
“ActiveCutTolerance”gydF4y2Ba 确定切割是否有效并与。一起使用gydF4y2BaMaxIterationsInactiveCutgydF4y2Ba决定从LP子问题中删除哪些切割,指定为逗号分隔的对,由gydF4y2Ba“ActiveCutTolerance”gydF4y2Ba一个实数。默认值为gydF4y2Ba1 e7gydF4y2Ba.gydF4y2Ba
“MasterSolverOptions”gydF4y2Ba 主求解器的选项gydF4y2BalinproggydF4y2Ba,指定为逗号分隔的对,由gydF4y2Ba“MasterSolverOptions”gydF4y2Ba和一个gydF4y2BaoptimoptionsgydF4y2Ba对象。默认值是gydF4y2Baoptimoptions(“linprog”、“算法”、“对偶单纯形”,“显示”,“关闭”)gydF4y2Ba.gydF4y2Ba
“TrustRegionStartIteration”gydF4y2Ba 该参数仅用于agydF4y2BasolverTypegydF4y2Ba的gydF4y2Ba“TrustRegionCP”gydF4y2Ba.求解器在点开始应用信任域启发式gydF4y2BaTrustRegionStartIterationgydF4y2Ba.非负整数。默认是gydF4y2Ba2gydF4y2Ba.gydF4y2Ba
“ShrinkRatio”gydF4y2Ba 该参数仅用于agydF4y2BasolverTypegydF4y2Ba的gydF4y2Ba“TrustRegionCP”gydF4y2Ba.如果在之前的迭代中近似函数不一致,算法将信任域的大小缩小gydF4y2BaShrinkRatiogydF4y2Ba.负的真实之间gydF4y2Ba0gydF4y2Ba而且gydF4y2Ba1gydF4y2Ba.默认是gydF4y2Ba0.75gydF4y2Ba.gydF4y2Ba
“InitialDelta”gydF4y2Ba 该参数仅用于agydF4y2BasolverTypegydF4y2Ba的gydF4y2Ba“TrustRegionCP”gydF4y2Ba.值初始化信任区域。负的真实。默认是gydF4y2Ba0.5gydF4y2Ba.gydF4y2Ba
“DeltaLimit”gydF4y2Ba 该参数仅用于agydF4y2BasolverTypegydF4y2Ba的gydF4y2Ba“TrustRegionCP”gydF4y2Ba.近似函数的信赖域的边界为gydF4y2BaDeltaLimitgydF4y2Ba在迭代。的gydF4y2BaDeltaLimitgydF4y2Ba值为非负实数,默认值为gydF4y2Ba1 e6gydF4y2Ba.gydF4y2Ba

请注意gydF4y2Ba

修改gydF4y2Ba“DeltaLimit”gydF4y2Ba可能导致求解器无法找到解。gydF4y2Ba

如果你修改gydF4y2Ba“DeltaLimit”gydF4y2Ba没有指定值gydF4y2Ba“InitialDelta”gydF4y2Ba,gydF4y2Ba“InitialDelta”gydF4y2Ba自动设置为gydF4y2BaInitialDelta”gydF4y2Ba=gydF4y2Ba“DeltaLimit”gydF4y2Ba/ 2。gydF4y2Ba

输出参数gydF4y2Ba

全部折叠gydF4y2Ba

已更新的投资组合对象,作为gydF4y2Ba投资组合gydF4y2Ba,gydF4y2BaPortfolioCVaRgydF4y2Ba,或gydF4y2BaPortfolioMADgydF4y2Ba对象。有关创建投资组合对象的更多信息,请参见gydF4y2Ba

提示gydF4y2Ba

您还可以使用点表示法来选择求解器并指定相关的求解器选项。gydF4y2Ba

obj = obj.setSolver (solverType、名称、值);gydF4y2Ba

算法gydF4y2Ba

为了解决投资组合的有效边界问题,投资组合优化问题的一个版本是最小化投资组合风险gydF4y2Ba风险gydF4y2Ba(gydF4y2BaxgydF4y2Ba),但须受目标返回的限制,以及为gydF4y2Ba投资组合gydF4y2Ba,gydF4y2BaPortfolioCVaRgydF4y2Ba,或gydF4y2BaPortfolioMADgydF4y2Ba对象。有关投资组合风险和回报的定义,请参见gydF4y2Ba风险代理gydF4y2Ba而且gydF4y2Ba返回代理gydF4y2Ba.gydF4y2Ba

米gydF4y2Ba 我gydF4y2Ba ngydF4y2Ba 我gydF4y2Ba 米gydF4y2Ba 我gydF4y2Ba zgydF4y2Ba egydF4y2Ba xgydF4y2Ba RgydF4y2Ba 我gydF4y2Ba 年代gydF4y2Ba kgydF4y2Ba (gydF4y2Ba xgydF4y2Ba )gydF4y2Ba 受gydF4y2Ba RgydF4y2Ba egydF4y2Ba tgydF4y2Ba ugydF4y2Ba rgydF4y2Ba ngydF4y2Ba (gydF4y2Ba xgydF4y2Ba )gydF4y2Ba ≥gydF4y2Ba TgydF4y2Ba 一个gydF4y2Ba rgydF4y2Ba ggydF4y2Ba egydF4y2Ba tgydF4y2Ba RgydF4y2Ba egydF4y2Ba tgydF4y2Ba ugydF4y2Ba rgydF4y2Ba ngydF4y2Ba 一个gydF4y2Ba xgydF4y2Ba ≤gydF4y2Ba bgydF4y2Ba 一个gydF4y2Ba egydF4y2Ba 问gydF4y2Ba xgydF4y2Ba =gydF4y2Ba bgydF4y2Ba egydF4y2Ba 问gydF4y2Ba lgydF4y2Ba bgydF4y2Ba ≤gydF4y2Ba xgydF4y2Ba ≤gydF4y2Ba ugydF4y2Ba bgydF4y2Ba

投资组合优化问题的另一种版本使投资组合的预期收益最大化,受目标风险和指定的其他线性约束gydF4y2Ba投资组合gydF4y2Ba,gydF4y2BaPortfolioCVaRgydF4y2Ba,或gydF4y2BaPortfolioMADgydF4y2Ba对象。gydF4y2Ba

米gydF4y2Ba 一个gydF4y2Ba xgydF4y2Ba 我gydF4y2Ba 米gydF4y2Ba 我gydF4y2Ba zgydF4y2Ba egydF4y2Ba xgydF4y2Ba RgydF4y2Ba egydF4y2Ba tgydF4y2Ba ugydF4y2Ba rgydF4y2Ba ngydF4y2Ba (gydF4y2Ba xgydF4y2Ba )gydF4y2Ba 受gydF4y2Ba RgydF4y2Ba 我gydF4y2Ba 年代gydF4y2Ba kgydF4y2Ba (gydF4y2Ba xgydF4y2Ba )gydF4y2Ba ≤gydF4y2Ba TgydF4y2Ba 参数gydF4y2Ba egydF4y2Ba tgydF4y2Ba RgydF4y2Ba 我gydF4y2Ba 年代gydF4y2Ba kgydF4y2Ba 一个gydF4y2Ba xgydF4y2Ba ≤gydF4y2Ba bgydF4y2Ba 一个gydF4y2Ba egydF4y2Ba 问gydF4y2Ba xgydF4y2Ba =gydF4y2Ba bgydF4y2Ba egydF4y2Ba 问gydF4y2Ba lgydF4y2Ba bgydF4y2Ba ≤gydF4y2Ba xgydF4y2Ba ≤gydF4y2Ba ugydF4y2Ba bgydF4y2Ba

返回的代理总是一个线性函数。因此,根据风险代理的不同,是作为目标还是作为约束,问题需要由不同的求解者来解决。例如,gydF4y2BaquadproggydF4y2Ba是否适用于以二次函数为目标且仅为线性约束的问题,且gydF4y2BafmincongydF4y2Ba适用于有非线性目标或约束的问题。此外,Financial Toolbox™中还有一些求解器适用于某些特殊类型的问题,例如gydF4y2BasolverTypegydF4y2BalcproggydF4y2Ba,gydF4y2Ba“TrustRegionCP”gydF4y2Ba,或gydF4y2Ba“ExtendedCP”gydF4y2Ba.gydF4y2Ba

参考文献gydF4y2Ba

[1]凯利j.e。求解凸规划的切平面法。gydF4y2Ba工业与应用数学学会杂志。gydF4y2Ba1960年12月,第八卷第四期,703-712页。gydF4y2Ba

[2] Rockafellar, R. T.和S. Uryasev <条件风险价值优化>。gydF4y2Ba杂志上的风险。gydF4y2Ba2000年春刊第2卷第3期,第21-41页。gydF4y2Ba

[3] Rockafellar, R. T.和S. Uryasev <一般损失分布的条件风险值>。gydF4y2Ba银行与金融杂志。gydF4y2Ba2002年第26卷,第1443-1471页。gydF4y2Ba

版本历史gydF4y2Ba

介绍了R2011agydF4y2Ba

Baidu
map