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

조회 수: 4(최근 30일)
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 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
##### 댓글 수: 0표시 이전 댓글 수: -1숨기기 이전 댓글 수: -1

댓글을 달려면 로그인하십시오.

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?

댓글을 달려면 로그인하십시오.

### 범주

Find more on Error Functions in Help Center and File Exchange

R2022b

### Community Treasure Hunt

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

Start Hunting!