Is there any ways I could do the rank one decomposition of matrix X, such that
The obvious answer seems to be to test each k to see which satisfies
and choose any subset of them.
Or at least hold for the most significant (largest eigenvalue) ?
I don't know why you think this is a special case if your first requirement. This is not possible in general, as can be seen from the example A=diag([1,-4]) and X=diag(4,1). In this case, you can only satisfy the requirement with the least significant eigenvalue,