Matrix decomposition: is it right?

47 Views Asked by At

I'm trying to develop a method for representing my symmetric matrix A as a composition of two matrices such as: A = t(B)*B.

We know that

​t(P)А​Р​ = ​D

where

P - matrix of eigenvectors

D - diagonal matrix of eigenvalues λi

Therefore

t(S)​DS = E

where

S - diagonal matrix of 1/sqrt(λi)

t(S)*​t(P)AP*S = E

t(P*S)A(PS) = E

Given P*S = inv(B):

t(inv(B))Аinv​(B) = E

inv(t(B))Аinv​(B) = E

А*inv​(B) = t(B)

A = ​t(B)*B

That's what we wanted. Thus, to obtain a matrix B we need to find eigenvectors and eigenvalues, construct matrix S, multiply it by P and then find an inverse matrix.

However, I tried to do this and found out that ​t(B)*B != A at all. Where did it go wrong?

1

There are 1 best solutions below

6
On

Using your notation, the whole idea is

$$P^TAP=D=S^{-1}S^{-1}$$

then

$$A=\left(PS^{-1}\right) (S^{-1}P^T)=(S^{-1}P^T)^T(S^{-1}P^T)$$

and hence $B=S^{-1}P^T$ which is more commonly written as $B=D^{\frac12}P^T$.

Your derivation is correct. Without showing your computation, it's hard to know what went wrong.

A common mistake that I see is forgetting to make the $P$ an orthogonal matrix.