目录
特征值和特征向量
我们先看一下特征值和特征向量的定义:
可见,特征值可以通过特征方程(行列式)求得,则特征值与特征向量只存在于方阵中。
根据MATLAB中的帮助文档
help eig
>> A=[1 1 -1;1 -2 2;-3 1 3]
A =
1 1 -1
1 -2 2
-3 1 3
>> e = eig(A)
e =
4.0000
1.0000
-3.0000
由此求得矩阵A的特征值。
若同时求得矩阵A的特征值和对应的特征向量,可以采用下列命令:
其中D为特征值构成的对角阵,每个特征值对应于V矩阵中列向量(也正是其特征向量),如果只有一个返回变量,则得到该矩阵特征值构成的列向量。
>> [V,D] = eig(A)
V =
-0.2202 -0.5774 -0.3015
0.2752 -0.5774 0.9045
0.9358 -0.5774 -0.3015
D =
4.0000 0 0
0 1.0000 0
0 0 -3.0000
验证一下:A*V=V*D;V^-1*A*V=D
>> A*V
ans =
-0.8808 -0.5774 0.9045
1.1010 -0.5774 -2.7136
3.7433 -0.5774 0.9045
>> V*D
ans =
-0.8808 -0.5774 0.9045
1.1010 -0.5774 -2.7136
3.7433 -0.5774 0.9045
>> V^-1*A*V
ans =
4.0000 -0.0000 -0.0000
-0.0000 1.0000 0.0000
0.0000 -0.0000 -3.0000
即特征值1对应的特征向量为(-0.5774,-0.5774,-0.5774)'。
A
的特征值位于 D
的对角线上。但是,特征值并未排序。
使用 diag(D)
从 D
的对角线上提取特征值,然后按升序对得到的向量进行排序。sort
的第二个输出返回索引的置换向量。
介绍一下diag()函数命令
diag
创建对角矩阵或获取矩阵的对角元素
v =
4 1 -3
>> diag(v)
ans =
4 0 0
0 1 0
0 0 -3
>> D=[4 0 0;0 1 0;0 0 -3]
D =
4 0 0
0 1 0
0 0 -3
>> diag(D)
ans =
4
1
-3
简而言之,当diag()命令的操作对象为行向量时,则生成的结果为对角矩阵;当diag()命令的操作对象为对角矩阵时,则生成的结果为主对角元素。
再介绍一下sort()函数命令:
sort
对数组元素排序
sort()命令的操作对象为元素组,对特征值默认进行升序排序。ind的值表示的是对应的顺序,即矩阵D的主对角元素分别为a11=4、a22=1、a33=-3。
>> [d,ind] = sort(diag(D))
d =
-3
1
4
ind =
3
2
1
求出特征值排列后相对应的特征向量:
>> Vs = V(:,ind)
Vs =
-0.3015 -0.5774 -0.2202
0.9045 -0.5774 0.2752
-0.3015 -0.5774 0.9358
对特征值进行降序排序时
>> [d,ind] = sort(diag(D),'descend')
d =
4
1
-3
ind =
1
2
3
当矩阵A的特征值有重根时(如二重根λ1=λ2=0):
>> [V,D] = eig(A)
V =
0.2673 + 0.0000i -0.1996 + 0.4963i -0.1996 - 0.4963i
0.5345 + 0.0000i 0.7677 + 0.0000i 0.7677 + 0.0000i
0.8018 + 0.0000i -0.1228 - 0.3309i -0.1228 + 0.3309i
D =
13.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 - 0.0000i
相似矩阵
若A与对角矩阵相似,则相似矩阵为上文中求得的V。
若A与一般矩阵相似,求相似矩阵可用下面这种方法。
则有,其中
orth--将矩阵正交规范化
先看一下这类题目的步骤:
>> A=[3 -2 -4;-2 6 -2;-4 -2 3]
A =
3 -2 -4
-2 6 -2
-4 -2 3
>> eig(A)
ans =
-2
7
7
>> B=orth(A)
B =
-0.7454 0.0000 -0.6667
0.2981 -0.8944 -0.3333
0.5963 0.4472 -0.6667
>> B^-1*A*B
ans =
7.0000 -0.0000 -0.0000
-0.0000 7.0000 0.0000
-0.0000 0.0000 -2.0000
>> B'*B
ans =
1.0000 -0.0000 -0.0000
-0.0000 1.0000 -0.0000
-0.0000 -0.0000 1.0000
求得矩阵B即为正交矩阵。
注:正交矩阵不唯一。
补充:正交矩阵的性质
我是小韩每天进步一点点,一名研0的研究生,刚开始写博客。希望和大家多多交流,一起进步!
求朋友点赞、收藏、关注哈,鼓励一下新人博主,或者提出建议。