I am working with floating point numbers. There is a 3x3 matrix that has determinant 1e-14.
I have reason to believe this matrix is an outer product of two vectors. If the assumption is correct, how would I find out which vectors it is?
I am working with floating point numbers. There is a 3x3 matrix that has determinant 1e-14.
I have reason to believe this matrix is an outer product of two vectors. If the assumption is correct, how would I find out which vectors it is?
Copyright © 2021 JogjaFile Inc.
Let $v\otimes w$ denote the outer product of two vectors $v$ and $w$. If $v=0$ then $v\otimes w=0$ for any $w$, and so it is not possible to retrieve $w$.
If $v\neq0$ and $w\neq0$, then still for any nonzero scalar $\lambda$ you have $$(\lambda v)\otimes(\lambda^{-1} w)=v\otimes w.$$ So it is again not possible to retrieve $v$ and $w$. You can retrieve them up to scaling; if the $(i,j)$-th entry of $v\otimes w$ is nonzero, say $\lambda$, then you can take $w$ to be the the $i$-th row and $v$ to be the $j$-th column divided by $\lambda$.
Of course, if you only want to know whether the matrix is an outer product of two vectors, it suffices to check that its rank is at most $1$.