幂和指数
本主题说明如何使用各种方法计算矩阵幂和指数。
正整数幂
如果 A
为方阵并且 p
为正整数,则 A^p
实际上是将 A
乘以其自身 p-1
次。例如:
A = [1 1 1 1 2 3 1 3 6]; A^2
ans = 3×3
3 6 10
6 14 25
10 25 46
逆幂和分数幂
如果 A
为方阵并且是非奇异的,则 A^(-p)
实际上是将 inv(A)
乘以其自身 p-1
次。
A^(-3)
ans = 3×3
145.0000 -207.0000 81.0000
-207.0000 298.0000 -117.0000
81.0000 -117.0000 46.0000
MATLAB® 用相同的算法计算 inv(A)
和 A^(-1)
,因此结果完全相同。如果矩阵接近奇异,inv(A)
和 A^(-1)
都会发出警告。
isequal(inv(A),A^(-1))
ans = logical
1
也允许分数幂,例如 A^(2/3)
。使用小数幂的结果取决于矩阵特征值的分布。
A^(2/3)
ans = 3×3
0.8901 0.5882 0.3684
0.5882 1.2035 1.3799
0.3684 1.3799 3.1167
逐元素幂
.^
运算符计算逐元素幂。例如,要对矩阵中的每个元素求平方,可以使用 A.^2
。
A.^2
ans = 3×3
1 1 1
1 4 9
1 9 36
平方根
使用 sqrt
函数可以方便地计算矩阵中每个元素的平方根。另一种方法是 A.^(1/2)
。
sqrt(A)
ans = 3×3
1.0000 1.0000 1.0000
1.0000 1.4142 1.7321
1.0000 1.7321 2.4495
对于其他根,您可以使用 nthroot
。例如,计算 A.^(1/3)
。
nthroot(A,3)
ans = 3×3
1.0000 1.0000 1.0000
1.0000 1.2599 1.4422
1.0000 1.4422 1.8171
这些按元素计算的根不同于矩阵平方根,后者计算得到的是另一个矩阵 以满足 。函数 sqrtm(A)
采用更精确的算法计算 A^(1/2)
。sqrtm
中的 m
将此函数与 sqrt(A)
区分开来,后者与 A.^(1/2)
一样,以逐元素方式工作。
B = sqrtm(A)
B = 3×3
0.8775 0.4387 0.1937
0.4387 1.0099 0.8874
0.1937 0.8874 2.2749
B^2
ans = 3×3
1.0000 1.0000 1.0000
1.0000 2.0000 3.0000
1.0000 3.0000 6.0000
标量底
除了对矩阵求幂以外,您还可以以矩阵为次数对标量求幂。
2^A
ans = 3×3
10.4630 21.6602 38.5862
21.6602 53.2807 94.6010
38.5862 94.6010 173.7734
当您以矩阵为次数对标量求幂时,MATLAB 使用矩阵的特征值和特征向量来计算矩阵幂。如果 [V,D] = eig(A)
,则 。
[V,D] = eig(A); V*2^D*V^(-1)
ans = 3×3
10.4630 21.6602 38.5862
21.6602 53.2807 94.6010
38.5862 94.6010 173.7734
矩阵指数
矩阵指数是以矩阵为次数对标量求幂的特殊情况。矩阵指数的底是欧拉数 e = exp(1)
。
e = exp(1); e^A
ans = 3×3
103 ×
0.1008 0.2407 0.4368
0.2407 0.5867 1.0654
0.4368 1.0654 1.9418
expm
函数是计算矩阵指数的一种更方便的方法。
expm(A)
ans = 3×3
103 ×
0.1008 0.2407 0.4368
0.2407 0.5867 1.0654
0.4368 1.0654 1.9418
矩阵指数可以用多种方法来计算。有关详细信息,请参阅 矩阵指数。
处理较小的数字
对于非常小的 值,MATLAB 函数 log1p
和 expm1
可以精确计算 和 。例如,如果您尝试将小于计算机精度的一个数与 1 相加,则结果会舍入到 1。
log(1+eps/2)
ans = 0
但是,log1p
能够返回更准确的答案。
log1p(eps/2)
ans = 1.1102e-16
同样,对于 ,如果 非常小,则会将它舍入为零。
exp(eps/2)-1
ans = 0
同样,expm1
能够返回更准确的答案。
expm1(eps/2)
ans = 1.1102e-16
另请参阅
exp
| expm
| expm1
| power
| mpower
| sqrt
| sqrtm
| nthroot