目录
sqrtm求解矩阵平方根
语法
X = sqrtm(A)
[X,residual] = sqrtm(A)
[X,alpha,condx] = sqrtm(A)
说明
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-范数形式返回稳定因子 alpha 和 X 的矩阵平方根条件数的估计值,即 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=[7151022]
A 的两个平方根由 Y1 和 Y2 给出:
Y1=[1.56672.61121.74084.1779]
Y2=[1324]
确认 Y1
和 Y2
是矩阵 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*S 和 S 具有四个符号选项以生成四个不同的 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
提示
-
某些矩阵(如 A = [0 1; 0 0])没有任何实数/复数平方根,并且 sqrtm 也无法生成这样的根。