我需要解决以下最小二乘问题,其中 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 或最小二乘函数,但似乎它们无法处理 transpose(X(:,i)) * X(:,j) 约束。