我需要解决以下最小二乘问题,其中A和B和X都是矩阵:
cvx_begin quiet;
variable X(len_x) nonnegative;
minimize ( norm(X * A - B , 2));
subject to
X >= 0;
for i=1: size(X,2)
for j= i + 1: size(X,2)
transpose(X(:,i)) * X(:,j) <= epsilon
end
end
cvx_end
我选择CVX,但它并不要求我将问题转换为标准形式。但是使用CVX,我收到以下错误:
Error using cvx/quad_form (line 230)
The second argument must be positive or negative semidefinite.
Error in * (line 261)
[ z2, success ] = quad_form( xx, P, Q, R );
Error in sanaz_opt (line 28)
transpose(X(:,i)) * X(:,j) <= 0.1
我想知道如何解决这个问题?我试图在Matlab中使用Gurobi或最小二乘函数,但似乎它们无法处理转置(X(:,i))* X(:,j)约束。