I have a m*n matrix which i know is shaped like this :
if a1, a2, ..., am, and b1, b2, ..., bn are real numbers, then for any matrix coefficient m(i,j) = ai*bj

Preliminary question : how do you call such product of two vectors that builds a matrix ? Thx to let me know so i'll update the question.

But, besides naming, here's the issue :
1) i get the m(i,j) from a measure, so there's a noise added. (less than 2% if that matters)
2) some measures are missing <=> the matrix is sparse. Still i have at least one measure for each line/column.

Question : How could i get the ai and bj coefficients for this matrix ?


A matrix $M$ with $m(i,j)=a_i b_j$ is called the outer product of vectors $a$ and $b$, often denoted $a\otimes b$. A matrix has this form if and only if its rank is at most $1$. Thus, your problem can be stated as: fit a rank-1 matrix to given (incomplete) data.

When all entries of the matrix are known, this is a special case of low-rank approximation, solved with SVD.

With incomplete data, this is low-rank matrix recovery (LRMR), a subject of current interest in compressed sensing, data mining and whatnot. You will find several methods, including code, at the website Low-Rank Matrix Recovery and Completion via Convex Optimization maintained by Yi Ma group at Illinois.

Also, this question would be better placed at SciComp.SE. Here is a relevant question from there: Exact recovery of large incomplete rank-one matrices?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.