Matlab信任区域反射算法警告

时间:2012-02-21 00:49:40

标签: matlab

我是matlab的新手并尝试使用quadprog解决投资组合优化问题(最小化方差):

minW = quadprog(t_covar, v0, [], [], e, ub, lb, [], []);

其中t_covar是协方差矩阵,v0是零向量,e是同一性向量,ub = 1,lb是零向量。

似乎工作正常,但我收到了这个警告:

警告:使用active-set算法,Trust-region-reflective算法无法解决此类问题。您还可以尝试使用内部点凸算法:将“算法”选项设置为内部点凸并重新运行。

我做错了吗?我应该担心这个警告吗?

希望我很清楚谢谢

1 个答案:

答案 0 :(得分:0)

您似乎正在使用这种形式的quadprog

x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0)

因为您指定了9个输入参数。但是,您的电话有几个问题:

  • 应该颠倒lb和ub的顺序。
  • 你没有不等式约束:A = [],b = [](很好)。但是在那之后,你有无效的等式约束,其中你基本上有Aeq = e,beq = ub。

你打电话应该类似于

minW = quadprog(t_covar, v0, [], [], e, ?, lb, ub);

其中“?”代表你的平等约束的右边。