Suppose we have an M$\times$N complex matrix $H$ and its singular value decomposition $H=U\Lambda V^*$ and an N$\times$N covariance matrix $R_s$ with its eigendecomposition $R_s = U_s\Lambda_sU_s^*$. We also have the eigendecomposition of $HR_sH^*$ as $U_A\Lambda_AU_A^*$. In my research problem setting, I know $U_A$, $H$ but not $R_s$ and $\Lambda_A$. I want to find $U_s$ using $H$ and $U_A$. I was wondering if there exists any connection between them.
-
$\begingroup$ When you say that you don't know $R_d$, do you mean $R_s$? (Also, does "solve $U_s$" mean "find $U_s$"?) $\endgroup$– LSpiceCommented Jun 8, 2018 at 18:41
-
$\begingroup$ Yes, you are right and I have corrected my wording based on what you suggested. $\endgroup$– Jiawei LiuCommented Jun 8, 2018 at 18:51
-
$\begingroup$ @Jiawei Liu Does my answer adequately answer your question? $\endgroup$– Mark L. StoneCommented Jun 10, 2018 at 11:41
-
$\begingroup$ @Jiawei Liu Does my answer address your question? $\endgroup$– Mark L. StoneCommented Jun 12, 2018 at 10:54
-
$\begingroup$ It does address my question. Appreciate it a lot @Mark L. Stone $\endgroup$– Jiawei LiuCommented Jun 12, 2018 at 22:03
1 Answer
$U_s$ is not recoverable from $H$ and $U_A$.
Consider the following examples, one each for $M < N, M > N, M = N$. In each example, there are 2 different $R$'s, $R1$ and $R2$, having different $U_s$'s while having the same $U_A$.
MATLAB output for $M=2, N=3$ example:
>> disp(H)
1 0 0
0 2 0
>> disp(R1)
2 1 1
1 2 1
1 1 2
>> [U_s_R1,lambda_R1]=eig(R1)
U_s_R1 =
0.408248290463863 0.707106781186547 0.577350269189626
0.408248290463863 -0.707106781186547 0.577350269189625
-0.816496580927726 0 0.577350269189626
lambda_R1 =
0.999999999999999 0 0
0 1.000000000000000 0
0 0 3.999999999999999
>> disp(R2)
9.999999999999929 4.999999999999965 0.984522053823275
4.999999999999965 9.999999999999929 0.984522053823275
0.984522053823275 0.984522053823275 9.999999999999929
>> [U_s_R2,lambda_R2]=eig(R2)
U_s_R2 =
0.707106781186548 0.177730756491407 0.684406150028616
-0.707106781186547 0.177730756491407 0.684406150028616
0 -0.967896459542024 0.251349246280978
lambda_R2 =
4.999999999999966 0 0
0 9.638432711095330 0
0 0 15.361567288904492
>> [U_A_R1,lambda_A_R1]=eig(H*R1*H')
U_A_R1 =
-0.957092026489053 0.289784148688430
0.289784148688430 0.957092026489053
lambda_A_R1 =
1.394448724536011 0
0 8.605551275463990
>> [U_A_R2,lambda_A_R2]=eig(H*R2*H')
U_A_R2 =
-0.957092026489053 0.289784148688430
0.289784148688430 0.957092026489053
lambda_A_R2 =
6.972243622680004 0
0 43.027756377319641
As can be seen, U_A_R1 = U_A_R2, but U_s_R1 shares only one column with U_s_R2, i.e., R1 has only one eigenvector in common with R2.
MATLAB output for $M=3, N=2$ example
>> disp(H)
1 0
0 2
1 1
>> disp(R1)
1 1
1 2
>> [U_s_R1,lambda_R1]=eig(R1)
U_s_R1 =
-0.850650808352040 0.525731112119133
0.525731112119133 0.850650808352040
lambda_R1 =
0.381966011250105 0
0 2.618033988749895
>> disp(R2)
10.000000000000000 2.500000000000000
2.500000000000000 10.000000000000000
>> [U_s_R2,lambda_R2]=eig(R2)
U_s_R2 =
-0.707106781186547 0.707106781186547
0.707106781186547 0.707106781186547
lambda_R2 =
7.500000000000000 0
0 12.500000000000000
>> [U_A_R1,lambda_A_R1]=eig(H*R1*H')
U_A_R1 =
0.666666666666668 0.711452386093986 0.222240990541188
0.333333333333332 -0.551270143087020 0.764846467096310
-0.666666666666666 0.435817314550478 0.604664224089342
lambda_A_R1 =
0.000000000000002 0 0
0 0.675444679663242 0
0 0 13.324555320336762
>> [U_A_R2,lambda_A_R2]=eig(H*R2*H')
U_A_R2 =
0.666666666666667 0.711452386093987 0.222240990541187
0.333333333333333 -0.551270143087020 0.764846467096309
-0.666666666666666 0.435817314550477 0.604664224089342
lambda_A_R2 =
0.000000000000005 0 0
0 13.782917548737156 0
0 0 61.217082451262840
As can be seen, U_A_R1 = U_A_R2, but U_s_R1 doesn't share any columns with U_s_R2, i.e., R1 has no eigenvectors in common with R2.
MATLAB output for $M=2, N=2$ example
>> disp(H)
1 0
0 2
>> disp(R1)
1 1
1 2
>> [U_s_R1,lambda_R1]=eig(R1)
U_s_R1 =
-0.850650808352040 0.525731112119133
0.525731112119133 0.850650808352040
lambda_R1 =
0.381966011250105 0
0 2.618033988749895
>> disp(R2)
9.999999999998895 4.285714285713818
4.285714285713818 9.999999999998892
>> [U_s_R2,lambda_R2]=eig(R2)
U_s_R2 =
0.707106781186547 -0.707106781186548
-0.707106781186548 -0.707106781186547
lambda_R2 =
5.714285714285076 0
0 14.285714285712711
>> [U_A_R1,lambda_A_R1]=eig(H*R1*H')
U_A_R1 =
-0.966499648764670 0.256667935157024
0.256667935157024 0.966499648764670
lambda_A_R1 =
0.468871125850725 0
0 8.531128874149275
>> [U_A_R2,lambda_A_R2]=eig(H*R2*H')
U_A_R2 =
-0.966499648764669 0.256667935157025
0.256667935157025 0.966499648764669
lambda_A_R2 =
7.723733396502248 0
0 42.276266603492211
As can be seen, U_A_R1 = U_A_R2, but U_s_R1 doesn't share any columns with U_s_R2, i.e., R1 has no eigenvectors in common with R2.
-
$\begingroup$ I think your answer makes total sense to me, Mark! Thanks for your input! $\endgroup$ Commented Jun 12, 2018 at 22:00