# scipy.linalg.sqrtm

scipy.linalg.sqrtm(A, disp=True, blocksize=64)

  Matrix square root.

  Parameters:
    A(N, N) array_like

      Matrix whose square root to evaluate

    disp bool, optional

      Print warning if error in the result is estimated large instead of returning estimated error. (Default: True)

    blocksize integer, optional

      If the blocksize is not degenerate with respect to the size of the input array, then use a blocked algorithm. (Default: 64)

  Returns:
    sqrtm(N, N) ndarray

      Value of the sqrt function at A. The dtype is float or complex. The precision (data size) is determined based on the precision of input A. When the dtype is float, the precision is the same as A. When the dtype is complex, the precision is double that of A. The precision might be clipped by each dtype precision range.

    errest float

      (if disp == False)

      Frobenius norm of the estimated error, ||err||_F / ||A||_F

  References

  [1]

  Edvin Deadman, Nicholas J. Higham, Rui Ralha (2013) “Blocked Schur Algorithms for Computing the Matrix Square Root, Lecture Notes in Computer Science, 7782. pp. 171-182.

  Examples

      >>> import numpy as np
      >>> from scipy.linalg import sqrtm
      >>> a = np.array([[1.0, 3.0], [1.0, 4.0]])
      >>> r = sqrtm(a)
      >>> r
      array([[ 0.75592895,  1.13389342],
             [ 0.37796447,  1.88982237]])
      >>> r.dot(r)
      array([[ 1.,  3.],
             [ 1.,  4.]])