It's well known (wikipedia: Square root of a matrix) that we can calculate a square root of a matrix by diagonalization or Jordan decomposition (if it's possible). But I saw a different method which seems to work, although it isn't obvious for me why it works.

The method for a diagonalizable matrix $A$:

First calculate the minimal polynomial $\mu_A$ of the matrix. Then chose a polynomial $p$ with $p(\lambda)=\sqrt{\lambda}$ for every eigenvalue $\lambda$.

Now we get $\sqrt{A}=p(A)$.

But does it always work and why? It seems to be possible to use the method in a similar way, if the matrix isn't diagonalisable e.g. if the multiplicity $\lambda$ as a zero of $\mu$ is greater than one. In this case we have to add conditions to the derivates of $p$, like $p'(\lambda)=\frac{1}{2\sqrt{\lambda}}$. Is this also correct?


I think I have an answer to my own question:

We have $p^2(\lambda)=\lambda$ for all eigenvalues of $A$. So by euclidean division we get $p^2=q\cdot \mu_A+r$ where the remainder have the properties $r(\lambda)=\lambda$ and $\deg(r)<\deg(\mu_A)$. So we get $r(t)=t$, because we have $\deg(\mu_A)$ non trivial conditions on $r$.

So we conclude that $(p(A)^2)=p^2(A)=r(A)=A$ and so $p(A)$ is a square root of $A$.

With similar arguments we get the case where $A$ isn't diagonalizable.

But I still wonder why the method is so unknown, when it's a efficient method to calculate square roots of non diagonalizable matrices...

EDIT: I've found some other results now: Why does calculating matrix inverses, roots, etc. using the spectrum of a matrix work?; Wikipedia: Sylvester's formula

  • $\begingroup$ This method is a nice theoretical result, but highly impractical. The Schur factorization method is much faster. $\endgroup$ – Pawel Kowal Jul 11 '16 at 12:07
  • $\begingroup$ Can you tell a little bit more? I thought Schur factorization isn't always possible. How do you calculate the square root of the upper triangular matrix? $\endgroup$ – user302982 Jul 11 '16 at 14:20
  • $\begingroup$ The Schur factorization can be computed for any square matrix. The square root $T_{1/2}$ of an upper triangular matrix $T$ is easy. $T_{1/2}$ is upper triangular, and after expressing elements of $T$ in terms of elements of $T_{1/2}$ we obtain a simple recursive formula for elements of $T_{1/2}$. Thus, $T_{1/2}$ can be found very fast. This algorithm is explained for example in Björck, Åke, and Sven Hammarling. "A Schur method for the square root of a matrix." Linear algebra and its applications 52 (1983): 127-140. $\endgroup$ – Pawel Kowal Jul 11 '16 at 20:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy