MATLAB Answers


Factorizing a matrix with 1's along diagonal

Asked by Deepa Maheshvare on 3 Jan 2019
Latest activity Edited by John D'Errico
on 3 Jan 2019
I want to factorize the follwoing matrix,
2 -1 0 0
-1 2 -1 0
0 -1 2 -1
0 0 -1 1
into R*R'
where R =
-1 1 0 0
0 -1 1 0
0 0 -1 1
0 0 0 -1
I could lu(A) to factorize, but the diagonal entries of R are not -1's.
Could someone suggest if there is any other factorization technique that can be used to obtain the above R?

  1 Comment

Instead of the above R, I would like to know whether it possible to factorize the above matrix into reactangular matrix i.e 4*3(R) x 3*4(R') with -1's along the diagonal

Sign in to comment.

1 Answer

Answer by John D'Errico
on 3 Jan 2019
Edited by John D'Errico
on 3 Jan 2019
 Accepted Answer

Sorry, but NO. That would NEVER be possible. Absolutely mathematically completely impossible. (note that I am responding to the followup question in the comment, since that is apparently the real question.)
Lets look at your goal. You asked to factorize this square 4x4 matrix A into a new matrix R, where R has shape 4x3, such that
A = R*R'
As well, you want that R has -1's along the diagonal. That last part is actually irrelevant, since the first part is the completely impossible aspect.
What is the rank of A here?
ans =
ans =
As you should see from svd, A is not even remotely close to being a singular matrix.
But what do you know about the rank of ANY 3x4 matrix? Hint: it can never be larger than 3.
Next, what happens when you multiply matrices? You can NEVER INCREASE the rank. In fact, the rank of the product of two matrices is (absent numerical issues) is the smaller of the two ranks in that product. The computed numerical rank could be less than that value due to floating point arithmetic issues, but if that does not come into play, then we have this simple result:
rank(A*B) == min(rank(A),rank(B))
And since A is so well conditioned, there is no possiblility that even floating point problems might allow a tiny increase in the rank of the product to create that matrix.
That is, nothing you can do in mathematics (or MATLAB) will make min(3,3) ever become 4.
So you want to find a matrix R with rank <= 3, such that R*R' has rank 4. Not gonna happen. EVER. Having -1's on the diagonal or not is not an issue, since there is no 4x3 matrix R such that could ever happen. Had you chosen a matrix A that did have rank 3? Then we could have at ieast a chance to talk.


Sign in to comment.