How to find the original vector given the outer product of the vector?

조회 수: 5 (최근 30일)
RJ
RJ 2023년 3월 13일
답변: Steven Lord 2023년 3월 13일
Suppose we have a vector:
psi = rand(n,1) + 1i * rand(n,1);
and we compute its outer product:
outer_product = psi * psi'
Now, given this outer_product, is there a way to retrieve the original vector?

답변 (2개)

Matt J
Matt J 2023년 3월 13일
편집: Matt J 2023년 3월 13일
It's only possible up to a multiplicative constant of the form .
n=5; psi0 = rand(n,1) + 1i * rand(n,1);
outer_product = psi0 * psi0';
[psi,s]=svds(outer_product,1);
psi=psi*sqrt(s); %recovered psi
abs(psi./psi0)
ans = 5×1
1.0000 1.0000 1.0000 1.0000 1.0000

Steven Lord
Steven Lord 2023년 3월 13일
n = 3;
psi1 = rand(n,1) + 1i * rand(n,1)
psi1 =
0.2707 + 0.4633i 0.8235 + 0.2196i 0.4234 + 0.1861i
outer_product1 = psi1 * psi1'
outer_product1 =
0.2879 + 0.0000i 0.3247 + 0.3221i 0.2008 + 0.1458i 0.3247 - 0.3221i 0.7264 + 0.0000i 0.3895 - 0.0603i 0.2008 - 0.1458i 0.3895 + 0.0603i 0.2139 + 0.0000i
psi2 = 1i*psi1
psi2 =
-0.4633 + 0.2707i -0.2196 + 0.8235i -0.1861 + 0.4234i
outer_product2 = psi2 * psi2'
outer_product2 =
0.2879 + 0.0000i 0.3247 + 0.3221i 0.2008 + 0.1458i 0.3247 - 0.3221i 0.7264 + 0.0000i 0.3895 - 0.0603i 0.2008 - 0.1458i 0.3895 + 0.0603i 0.2139 + 0.0000i
norm(outer_product1-outer_product2)
ans = 1.3432e-16
outer_product1 and outer_product2 are effectively identical. So if I gave you that outer_product, did I generate it using psi1 or psi2?

카테고리

Help CenterFile Exchange에서 Results, Reporting, and Test File Management에 대해 자세히 알아보기

태그

제품


릴리스

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by