使用Matlab求解具有正交性约束的最小二乘法

时间:2017-02-10 16:34:58

标签: optimization least-squares gurobi orthogonal cvx

我需要解决以下最小二乘问题,其中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)约束。

0 个答案:

没有答案