Matrix decomposition question

1. Jan 29, 2010

TimSal

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?

2. Jan 29, 2010

tiny-tim

Welcome to PF!

Hi TimSal! Welcome to PF!

Hint: multiply both sides by … ?

3. Jan 30, 2010

TimSal

Yes, that gives

A(B+D)=B

or

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.

4. Jan 30, 2010

tiny-tim

Hi TimSal!
So, if (I - A) is invertible, then B = (1 - A)-1AD

5. Jan 30, 2010

TimSal

Thanks. Any thoughts on the case where A and (I-A) are not invertible?

6. Jan 30, 2010

TimSal

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

7. Jan 30, 2010

tiny-tim

Nope!
But D isn't given.

8. Jan 30, 2010

TimSal

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.