Note: This page has been translated by MathWorks. Click here to see

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

Matrix square root

`X = sqrtm(A)`

`[X,residual] = sqrtm(A)`

`[X,alpha,condx] = sqrtm(A)`

`X = sqrtm(`

returns
the principal square root of the matrix `A`

)`A`

, that
is, `X*X = A`

.

`X`

is the unique square root for which every
eigenvalue has nonnegative real part. If `A`

has
any eigenvalues with negative real parts, then a complex result is
produced. If `A`

is singular, then `A`

might
not have a square root. If exact singularity is detected, a warning
is printed.

`[X,residual] = sqrtm(`

also
returns the residual, `A`

)`residual = norm(A-X^2,1)/norm(A,1)`

.
This syntax does not print warnings if exact singularity is detected.

`[X,alpha,condx] = sqrtm(`

returns
stability factor `A`

)`alpha`

and an estimate of the matrix
square root condition number of `X`

in 1-norm, `condx`

.
The residual `norm(A-X^2,1)/norm(A,1)`

is bounded
approximately by `n*alpha*eps`

and the 1-norm relative
error in `X`

is bounded approximately by `n*alpha*condx*eps`

,
where `n = max(size(A))`

.

Some matrices, like

`A = [0 1; 0 0]`

, do not have any square roots, real or complex, and`sqrtm`

cannot be expected to produce one.

The algorithm `sqrtm`

uses is described in [3].

[1] N.J. Higham, “Computing real square roots of a real matrix,” Linear Algebra and Appl., 88/89, pp. 405–430, 1987

[2] Bjorck, A. and S. Hammerling, “A Schur method for the square root of a matrix,” Linear Algebra and Appl., 52/53, pp. 127–140, 1983

[3] Deadman, E., Higham, N. J. and R. Ralha, “Blocked Schur algorithms for computing the matrix square root,” Lecture Notes in Comput. Sci., 7782, Springer-Verlag, pp. 171–182, 2013

Was this topic helpful?