要分清这两个函数的区别我们首先看乘方的区别。在Matlab中运行下列语句。
“两个大于号”后面是需要在Matlab中输入的命令,其他的是Matlab中的结果输出。
>> A=[1,2;3,4]
A =
1 2
3 4
>> R1=A*A
R1 =
7 10
15 22
>> R2=A^2
R2 =
7 10
15 22
>> R3=A.*A
R3 =
1 4
9 16
>> R4=A.^2
R4 =
1 4
9 16
这几句清晰地解释了矩阵乘法与矩阵乘方的关系、矩阵点乘(元素对元素)与矩阵点乘方的关系。下面我们来看开方。
先生出一个方便做开方运算的矩阵
>> B=A'*A
B =
10 14
14 20
我们看sqrt()与矩阵点乘(点乘方)之间的关系:
>> C=sqrt(B)
C =
3.1623 3.7417
3.7417 4.4721
>> R5=C.*C
R5 =
10 14
14 20
>> R6=C.^2
R6 =
10 14
14 20
即sqrt()得到的结果与点乘有关。
与矩阵乘法(乘方)有关的命令是sqrtm().
>> D=sqrtm(B)
D =
2.058 2.401
2.401 3.773
>> D*D
ans =
10 14
14 20
>> D^2
ans =
10 14
14 20
接下来讲的就是^.5, .^.5 与sqrt(),sqrtm()的关系了。他们的对应关系很简单,看下列代码就明白了。
>> sqrt(C)
ans =
1.7783 1.9343
1.9343 2.1147
>> C.^.5
ans =
1.7783 1.9343
1.9343 2.1147
>> sqrtm(C)
ans =
1.222 1.2919
1.2919 1.6743
>> C^.5
ans =
1.222 1.2919
1.2919 1.6743