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

2 ビュー (過去 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 Center および File ExchangeGamma Functions についてさらに検索

タグ

製品


リリース

R2022b

Translated by