Main Content

sqrtm

矩阵平方根

说明

示例

X = sqrtm(A) 返回矩阵 A 的主要平方根(即 X*X = A)。

X 是其每个特征值都具有非负实部的唯一平方根。如果 A 具有任何包含负实部的特征值,则生成复数结果。如果 A 是奇异矩阵,则 A 可能没有平方根。如果检测到完全奇异性,则会输出一条警告。

[X,residual] = sqrtm(A) 还会返回残差 residual = norm(A-X^2,1)/norm(A,1)。如果检测到完全奇异性,此语法不输出警告。

[X,alpha,condx] = sqrtm(A) 以 1-范数形式返回稳定因子 alphaX 的矩阵平方根条件数的估计值,即 condx。残差 norm(A-X^2,1)/norm(A,1) 基本受 n*alpha*eps 约束,X 中的 1-范数相对误差基本受 n*alpha*condx*eps(其中 n = max(size(A)))约束。

示例

全部折叠

创建四阶差分算子的矩阵表示形式 A。此矩阵是对称正定矩阵。

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×5

     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

使用 sqrtm 计算 A 的唯一正定平方根。X 是二阶差分算子的矩阵表示形式。

X = round(sqrtm(A))
X = 5×5

     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

以一个具有四个平方根的矩阵 A 为例。

A=[7101522]

A 的两个平方根由 Y1Y2 给出:

Y1=[1.56671.74082.61124.1779]

Y2=[1234]

确认 Y1Y2 是矩阵 A 的平方根。

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

   -0.1258   -0.1997
   -0.2995   -0.4254

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

     0     0
     0     0

A 的另外两个平方根是 -Y1-Y2。可从 A 的特征值和特征向量获得所有这四个根。如果 [V,D] = eig(A),则平方根具有通式 Y = V*S/V,其中 D = S*SS 具有四个符号选项以生成四个不同的 Y 值:

S=[±0.372300±5.3723]

sqrtm 计算 A 的平方根。sqrtm 函数会选择正平方根并生成 Y1,即使 Y2 看似更自然的结果也是如此。

Y = sqrtm(A)
Y = 2×2

    1.5667    1.7408
    2.6112    4.1779

输入参数

全部折叠

输入矩阵,指定为方阵。

数据类型: single | double
复数支持:

提示

  • 某些矩阵(如 A = [0 1; 0 0])没有任何实数/复数平方根,并且 sqrtm 也无法生成这样的根。

算法

sqrtm 使用的算法如 [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

扩展功能

版本历史记录

在 R2006a 之前推出

另请参阅

| |