I have a symmetric matrix which positive-definite, but it contains zero as eigen value. So the method of Cholesky does not work, could someone give another method to do this? I do not want an iteration method, just as Denman–Beavers iteration and Babylonian method to the exact square root of a given matrix. Many thanks!

  • 8
    $\begingroup$ If it possesses zero eigenvalues, it is, by definition, not positive definite. Also, can you simply diagonalise $A=U\Sigma U^\ast$ and take $\sqrt{A}$ as $U\sqrt{\Sigma}U^\ast$? $\endgroup$
    – user1551
    Commented Jul 1, 2013 at 8:18
  • $\begingroup$ the general diagonalisation is not very fast in computer, is there any better method $\endgroup$
    – user84572
    Commented Jul 1, 2013 at 9:06
  • $\begingroup$ @user1551 Orthogonal diagonalization is an iterative method (usually done by an iterative repetition of the QR factorization). $\endgroup$ Commented Jul 1, 2013 at 22:57
  • $\begingroup$ @VedranŠego I know (see my answer), but when I wrote my comment, I thought the OP meant to find the square root by hand (with the aid of an interactive environment such as Matlab). $\endgroup$
    – user1551
    Commented Jul 1, 2013 at 23:02
  • $\begingroup$ @user84572, a decent $A=LDL^T$ decomposition should be fast on your computer (i.e. similar to Cholesky). E.g. check out eigen.tuxfamily.org/dox/TopicLinearAlgebraDecompositions.html $\endgroup$
    – B0rk4
    Commented Aug 1, 2013 at 23:40

2 Answers 2


You may read chapters 6 (Matrix Square Root) and 7 (Matrix $p$th Root) of Higham's Functions of Matrices: Theory and Computation to see if there is anything helpful. However, practically all linear algebra solvers are iterative in nature. If you want something non-iterative, I doubt there is any.


You could use the square root's Taylor series (calculating only the sum of the first few elements): $$\sqrt{{\rm I} + X} = \sum_{n=0}^\infty \frac{(-1)^n(2n)!}{(1-2n)(n!)^2(4^n)}X^n = {\rm I} + \frac{1}{2}X - \frac{1}{8} X^2 + \frac{1}{16} X^3 - \frac{5}{128} X^4 + \dots$$ However, just because you could, doesn't mean you should, as this is a very bad approach (slow, numerically unstable,...). There are good reasons why this stuff is done iteratively.

If your positive semidefinite matrix is of an order up to $4$, you might be able to get an exact formula for the elements of its square root. Otherwise, forget the non-iterative methods and follow @user1551's advice on reading Higham's book.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .