Matrix Decomposition: Solving for B and D in A = B*inv(B+D)?

TimSal
Messages
5
Reaction score
0
Hi everyone,

I have a problem with the following matrix equation:

A = B*inv(B+D)

where A is a square matrix, B a positive semi-definite matrix, D a positive diagonal matrix and inv() denotes the inverse matrix. All are real-valued.

Does anyone know of any simple way to check whether this equation has a solution for given A? And how to obtain this solution? (i.e. find B and D) And whether the solution is unique?

Thanks in advance!
 
Physics news on Phys.org
Welcome to PF!

Hi TimSal! Welcome to PF! :smile:

Hint: multiply both sides by … ? :wink:
 
Yes, that gives

A(B+D)=B

or

AD=(I-A)B

I don't see how that really helps to answer the question though. It's a system of linear equations but I still don't see an easy way of checking whether there exists a solution, nor do I know how to solve this efficiently under the restriction that B is positive semi-definite and D is positive diagonal.
 
Hi TimSal! :smile:
TimSal said:
AD=(I-A)B

So, if (I - A) is invertible, then B = (1 - A)-1AD :wink:
 
Thanks. Any thoughts on the case where A and (I-A) are not invertible?
 
Also, with
tiny-tim said:
B = (1 - A)-1AD
there does not seem to be any guarantee that B will indeed be positive semi-definite for any given positive diagonal D.
 
TimSal said:
Thanks. Any thoughts on the case where A and (I-A) are not invertible?

Nope! :smile:
TimSal said:
Also, with

there does not seem to be any guarantee that B will indeed be positive semi-definite for any given positive diagonal D.

But D isn't given.
 
D isn't given, but because there is no guarantee that B will be positive semi-definite for any chosen D, this expression does not help me solve the equation. I still don't know how to pick D and B.
 
Back
Top