Documentation

This is machine translation

Translated by Microsoft
Mouse over text to see original. Click the button below to return to the English verison of the page.

sqrtm

Matrix square root

Syntax

  • X = sqrtm(A)
    example
  • [X,residual] = sqrtm(A)
  • [X,alpha,condx] = sqrtm(A)

Description

example

X = sqrtm(A) returns the principal square root of the matrix 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(A) also returns the residual, residual = norm(A-X^2,1)/norm(A,1). This syntax does not print warnings if exact singularity is detected.

[X,alpha,condx] = sqrtm(A) returns stability factor 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)).

Examples

collapse all

Create a matrix representation of the fourth difference operator, A. This matrix is symmetric and positive definite.

A = [5 -4 1 0 0; -4 6 -4 1 0; 1 -4 6 -4 1; 0 1 -4 6 -4; 0 0 1 -4 6]
A =

     5    -4     1     0     0
    -4     6    -4     1     0
     1    -4     6    -4     1
     0     1    -4     6    -4
     0     0     1    -4     6

Calculate the unique positive definite square root of A using sqrtm. X is the matrix representation of the second difference operator.

X = round(sqrtm(A))
X =

     2    -1     0     0     0
    -1     2    -1     0     0
     0    -1     2    -1     0
     0     0    -1     2    -1
     0     0     0    -1     2

Consider a matrix that has four squareroots, A.

$$A = \left[ \matrix{7 & 10 \cr 15 & 22} \right]$$

Two of the squareroots of A are given by Y1 and Y2:

$$Y_1 = \left[ \matrix{1.5667 & 1.7408 \cr 2.6112 & 4.1779} \right]$$

$$Y_2 = \left[ \matrix{1 & 2 \cr 3 & 4} \right] $$

Confirm that Y1 and Y2 are squareroots of matrix A.

A = [7 10; 15 22];
Y1 = [1.5667 1.7408; 2.6112 4.1779];
A - Y1*Y1
ans =

   1.0e-03 *

   -0.1258   -0.1997
   -0.2995   -0.4254

Y2 = [1 2; 3 4];
A - Y2*Y2
ans =

     0     0
     0     0

The other two squareroots of A are -Y1 and -Y2. All four of these roots can be obtained from the eigenvalues and eigenvectors of A. If [V,D] = eig(A), then the squareroots have the general form Y = V*S/V, where D = S*S and S has four choices of sign to produce four different values of Y:

$$S = \left[ \matrix{\pm 0.3723 & 0 \cr 0 & \pm 5.3723} \right]$$

Calculate the squareroot of A with sqrtm. The sqrtm function chooses the positive square roots and produces Y1, even though Y2 seems to be a more natural result.

Y = sqrtm(A)
Y =

    1.5667    1.7408
    2.6112    4.1779

Input Arguments

collapse all

Input matrix, specified as a square matrix.

Data Types: single | double
Complex Number Support: Yes

More About

collapse all

Tips

  • 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.

Algorithms

The algorithm sqrtm uses is described in [3].

References

[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

See Also

| |

Introduced before R2006a

Was this topic helpful?