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
Factorizing a matrix with 1's along diagonal
1 view (last 30 days)
Show older comments
Deepa Maheshvare
on 3 Jan 2019
Edited: John D'Errico
on 3 Jan 2019
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?
Accepted Answer
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.
0 Comments
More Answers (0)
See Also
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!