我是matlab的新手并尝试使用quadprog解决投资组合优化问题(最小化方差):
minW = quadprog(t_covar, v0, [], [], e, ub, lb, [], []);
其中t_covar是协方差矩阵,v0是零向量,e是同一性向量,ub = 1,lb是零向量。
似乎工作正常,但我收到了这个警告:
警告:使用active-set算法,Trust-region-reflective算法无法解决此类问题。您还可以尝试使用内部点凸算法:将“算法”选项设置为内部点凸并重新运行。
我做错了吗?我应该担心这个警告吗?
希望我很清楚谢谢
答案 0 :(得分:0)
您似乎正在使用这种形式的quadprog
x = quadprog(H,f,A,b,Aeq,beq,lb,ub,x0)
因为您指定了9个输入参数。但是,您的电话有几个问题:
你打电话应该类似于
minW = quadprog(t_covar, v0, [], [], e, ?, lb, ub);
其中“?”代表你的平等约束的右边。