MATLAB: A*A’=C

matrixsolution

Hi all,
I need help.
I have A*A' = C, where
C = [2/3 -1/3 -1/3;-1/3 2/3 -1/3;-1/3 -1/3 2/3]
and A is matrix 3×2.
How to generate A?
Thank You

Best Answer

One solution can be found by using SVD
>> C = [2/3 -1/3 -1/3;-1/3 2/3 -1/3;-1/3 -1/3 2/3]
C =
0.6667 -0.3333 -0.3333
-0.3333 0.6667 -0.3333
-0.3333 -0.3333 0.6667
>> rank(C) % check if C can be factorized with 3x2 matrix
ans =
2
>> [U,S,V]=svd(C);
>> A = U(:,1:2)*S(1:2,1:2)
A =
-0.8165 0.0000
0.4082 -0.7071
0.4082 0.7071
>> A*A'
ans =
0.6667 -0.3333 -0.3333
-0.3333 0.6667 -0.3333
-0.3333 -0.3333 0.6667
The solution is not uique since you can multiply on the right side of A by any Hermitian matrix of size 2 x 2