Factorizing a matrix with 1's along diagonal

1 view (last 30 days)
I want to factorize the follwoing matrix,
A=
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
Deepa Maheshvare
Deepa Maheshvare on 3 Jan 2019
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.

Accepted Answer

John D'Errico
John D'Errico on 3 Jan 2019
Edited: John D'Errico on 3 Jan 2019
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.
Why?
What is the rank of A here?
rank(A)
ans =
4
svd(A)
ans =
3.53208888623796
2.34729635533386
1
0.120614758428183
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.

More Answers (0)

Categories

Find more on Operating on Diagonal Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!