Q is a projection matrix, which is used to calculate the principal component Y of the original matrix X.
Y = Q^T*X, and there exists a cvx problem that
*maximize(trace(Q’AA’Q)) subject to
*Q’Q == I
I is a unit matrix
and the matlab shows the below error：
Disciplined convex programming error for the code “*maximize(trace(Q’AA’Q))”:
Only scalar quadratic forms can be specified in CVX
trace(Q'*A*A'*Q) can be rewritten as square_pos(norm(A'*Q,'fro')) , which is convex. But maximizing that is not convex. Not squaring the ‘fro’ norm would be equivalent, and is convex, but maximizing it is not convex.
And the orthonormality constraint Q'*Q == eye(n) is non-convex.
So, except for the objective and constraint being non-convex, this would be a convex optimization problem.