Home > manopt > manifolds > symfixedrank > symfixedrankYYcomplexfactory.m

symfixedrankYYcomplexfactory

PURPOSE ^

Manifold of n x n complex Hermitian pos. semidefinite matrices of rank k.

SYNOPSIS ^

function M = symfixedrankYYcomplexfactory(n, k)

DESCRIPTION ^

 Manifold of n x n complex Hermitian pos. semidefinite matrices of rank k.

 function M = symfixedrankYYcomplexfactory(n, k)

 Manifold of n-by-n complex Hermitian positive semidefinite matrices of 
 fixed rank k. This follows the quotient geometry described 
 in Sarod Yatawatta's 2013 paper:
 "Radio interferometric calibration using a Riemannian manifold", ICASSP.

 Paper link: http://dx.doi.org/10.1109/ICASSP.2013.6638382.

 A point X on the manifold M is parameterized as YY^*, where 
 Y is a complex matrix of size nxk. For any point Y on the manifold M, 
 given any kxk complex unitary matrix U, we say Y*U  is equivalent to Y, 
 i.e., YY^* does not change. Therefore, M is the set of equivalence 
 classes and is a Riemannian quotient manifold C^{nk}/SU(k). 
 The metric is the usual real-trace inner product, that is, 
 it is the usual metric for the complex plane identified with R^2.

 Notice that this manifold is not complete: if optimization leads Y to be
 rank-deficient, the geometry will break down. Hence, this geometry should
 only be used if it is expected that the points of interest will have rank
 exactly k. Reduce k if that is not the case.

 The geometry is based on the following papers (and references therein).
 Please cite the Manopt paper as well as the research papers:

 @INPROCEEDINGS{Yatawatta2013A,
  author={Yatawatta, S.},
  booktitle={Acoustics, Speech and Signal Processing (ICASSP), 2013 IEEE International Conference on},
  title={Radio interferometric calibration using a {R}iemannian manifold},
  year={2013},
  month={May},
  pages={3866--3870},
  doi={10.1109/ICASSP.2013.6638382},
  ISSN={1520-6149},
 }

 @article{Yatawatta2013B,
  author = {Yatawatta, S.}, 
  title = {On the interpolation of calibration solutions obtained in radio interferometry},
  volume = {428}, 
  number = {1}, 
  pages = {828--833}, 
  year = {2013}, 
  doi = {10.1093/mnras/sts069}, 
  journal = {Monthly Notices of the Royal Astronomical Society} 
 }

 See also: symfixedrankYYfactory sympositivedefinitefactory

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SUBFUNCTIONS ^

SOURCE CODE ^

0001 function M = symfixedrankYYcomplexfactory(n, k)
0002 % Manifold of n x n complex Hermitian pos. semidefinite matrices of rank k.
0003 %
0004 % function M = symfixedrankYYcomplexfactory(n, k)
0005 %
0006 % Manifold of n-by-n complex Hermitian positive semidefinite matrices of
0007 % fixed rank k. This follows the quotient geometry described
0008 % in Sarod Yatawatta's 2013 paper:
0009 % "Radio interferometric calibration using a Riemannian manifold", ICASSP.
0010 %
0011 % Paper link: http://dx.doi.org/10.1109/ICASSP.2013.6638382.
0012 %
0013 % A point X on the manifold M is parameterized as YY^*, where
0014 % Y is a complex matrix of size nxk. For any point Y on the manifold M,
0015 % given any kxk complex unitary matrix U, we say Y*U  is equivalent to Y,
0016 % i.e., YY^* does not change. Therefore, M is the set of equivalence
0017 % classes and is a Riemannian quotient manifold C^{nk}/SU(k).
0018 % The metric is the usual real-trace inner product, that is,
0019 % it is the usual metric for the complex plane identified with R^2.
0020 %
0021 % Notice that this manifold is not complete: if optimization leads Y to be
0022 % rank-deficient, the geometry will break down. Hence, this geometry should
0023 % only be used if it is expected that the points of interest will have rank
0024 % exactly k. Reduce k if that is not the case.
0025 %
0026 % The geometry is based on the following papers (and references therein).
0027 % Please cite the Manopt paper as well as the research papers:
0028 %
0029 % @INPROCEEDINGS{Yatawatta2013A,
0030 %  author={Yatawatta, S.},
0031 %  booktitle={Acoustics, Speech and Signal Processing (ICASSP), 2013 IEEE International Conference on},
0032 %  title={Radio interferometric calibration using a {R}iemannian manifold},
0033 %  year={2013},
0034 %  month={May},
0035 %  pages={3866--3870},
0036 %  doi={10.1109/ICASSP.2013.6638382},
0037 %  ISSN={1520-6149},
0038 % }
0039 %
0040 % @article{Yatawatta2013B,
0041 %  author = {Yatawatta, S.},
0042 %  title = {On the interpolation of calibration solutions obtained in radio interferometry},
0043 %  volume = {428},
0044 %  number = {1},
0045 %  pages = {828--833},
0046 %  year = {2013},
0047 %  doi = {10.1093/mnras/sts069},
0048 %  journal = {Monthly Notices of the Royal Astronomical Society}
0049 % }
0050 %
0051 % See also: symfixedrankYYfactory sympositivedefinitefactory
0052 
0053 
0054 % This file is part of Manopt: www.manopt.org.
0055 % Original author: Sarod Yatawatta, June 29, 2015.
0056 % Contributors: Bamdev Mishra.
0057 % Change log:
0058 %
0059 %   June 28, 2016 (NB):
0060 %       Metric scaled down by factor 2 to match the metric used in
0061 %       euclideancomplexfactory.
0062     
0063     M.name = @() sprintf('YY'' quotient manifold of Hermitian %dx%d complex matrices of rank %d.', n, n, k);
0064     
0065     M.dim = @() 2*k*n - k*k; % SY: dim of ambient space (2*k*n) - dim of kxk unitary matrix  (k^2).
0066     
0067     % Euclidean metric on the total space.
0068     % BM: equivalent to real(trace(eta'*zeta)), but more efficient.
0069     M.inner = @(Y, eta, zeta) real(eta(:)'*zeta(:));
0070     
0071     M.norm = @(Y, eta) sqrt(M.inner(Y, eta, eta));
0072     
0073     % Find unitary U to minimize ||Y - Z*U||,
0074     % i.e., the Procrustes problem, with svd(Y'*Z).
0075     M.dist = @(Y, Z) distance;
0076     function distval = distance(Y, Z)
0077         [u, ignore, v] = svd(Z'*Y); %#ok<ASGLU>
0078         E = Y - Z*u*v'; % SY: checked.
0079         distval = real(E(:)'*E(:));
0080     end
0081     
0082     M.typicaldist = @() 10*k; % BM: To do.
0083     
0084     M.proj = @projection;
0085     function etaproj = projection(Y, eta)
0086         % Projection onto the horizontal space
0087         xx = Y'*Y;
0088         rr = Y'*eta - eta'*Y;
0089         Omega = lyap(xx, -rr);
0090         etaproj = eta - Y*Omega;
0091     end
0092     
0093     M.tangent = M.proj;
0094     M.tangent2ambient = @(Y, eta) eta;
0095     
0096     M.retr = @retraction;
0097     function Ynew = retraction(Y, eta, t)
0098         if nargin < 3
0099             t = 1.0;
0100         end
0101         Ynew = Y + t*eta;
0102     end
0103     
0104     
0105     M.egrad2rgrad = @(Y, eta) eta;
0106     M.ehess2rhess = @(Y, egrad, ehess, U) M.proj(Y, ehess);
0107     
0108     
0109     M.exp = @exponential;
0110     function Ynew = exponential(Y, eta, t)
0111         if nargin < 3
0112             t = 1.0;
0113         end
0114         
0115         Ynew = retraction(Y, eta, t);
0116         warning('manopt:symfixedrankYYcomplexfactory:exp', ...
0117             ['Exponential for symmetric fixed-rank complex ' ...
0118             'manifold not implemented yet. Used retraction instead.']);
0119     end
0120     
0121     % Notice that the hash of two equivalent points will be different...
0122     M.hash = @(Y) ['z' hashmd5([real(Y(:)); imag(Y(:))])];
0123     
0124     M.rand = @random;
0125     function Y = random()
0126         Y = randn(n, k) + 1i*randn(n,k);
0127     end
0128     
0129     M.randvec = @randomvec;
0130     function eta = randomvec(Y)
0131         eta = randn(n, k) + 1i*randn(n,k);
0132         eta = projection(Y, eta);
0133         nrm = M.norm(Y, eta);
0134         eta = eta / nrm;
0135     end
0136     
0137     M.lincomb = @matrixlincomb;
0138     
0139     M.zerovec = @(Y) zeros(n, k);
0140     
0141     M.transp = @(Y1, Y2, d) projection(Y2, d);
0142     
0143     M.vec = @(Y, u_mat) [real(u_mat(:)); imag(u_mat(:))];
0144     M.mat = @(Y, u_vec) reshape(u_vec(1 : n*k), [n, k]) + 1i*reshape(u_vec(n*k + 1: end), [n, k]);
0145     M.vecmatareisometries = @() true; 
0146     
0147 end

Generated on Sat 12-Nov-2016 14:11:22 by m2html © 2005