I am pretty new to Manopt, and would like to use it for minimizing such a cost function:
min_{alpha} rank(H(alpha M)) + \| A alpha +b \|_2^2
where H(alpha M) is a block-Hankel matrix built from alpha(i) M(i) (M(i) is a matrix).
Here is how I try to define the cost function in Manopt:
problem.M = fixedrankembeddedfactory(p*N*(l+1),m*N*(l+1),k);
problem.cost = @cost;
function f = cost(alpha)
X = H_op(alpha);
Xmat = X.U*X.S*X.V';
f = norm(A*alpha+b,2)^2+norm(Xmat-H_op(alpha),'fro')^2;
end
And X is the matrix whose rank should be low.
This cost formulation gives error messages (when using the function checkgradient); which might come from a wrong formulation of the cost function itself. Can anyone help me out there?
Thank you!
Baptiste