用matlab实现矩阵的对角
对角阵在实际上的应用特别广泛,对角阵解决现实问题上很方便,通过对
角矩阵可以最简单地处理物力问题,也可以解出线性方程组的解;最普遍的是可以直接知道相似矩阵的行列式值,秩,特征值等,所以可以说研究对角化问题是特别重要。对角化的最快,最方便的方法是利用matlab软件。
λ
1
λ
2
λ
3
一般形式的矩阵为对角矩阵
λ
n
(空白处为零)。
在相似变换下,方阵A的许多重要性质(如行列式,秩,特征值等)保持不便,因此我们可以通过相似变换将矩阵A化简,并利用化简后的矩阵来研究与矩阵有关的问题。
我们讨论的主要问题是:对于n阶方阵A,是否存在可逆方阵P,使P-1AP
为对角矩阵。这就是矩阵的对角化问题。
-1 1 0 2 0 0
矩阵A=-4 3 0通过相似变换下简化为对角矩阵B=0 1 0
1 0 20 0 1
通过矩阵B可以直接知道矩阵的行列式,秩,特征值,对应方程组的解
等重要性质。
但任何矩阵不一定可以对角化。一个矩阵是否可以对角化有如下的判断方法:
1)判断A是否实对称矩阵,茹是一定可对角化,因为A是实对称矩阵,
则有(1)A的全部特征值是实数。(2)A的不同特征值对应的特征向量正交
Λ
。(3)A一定相似于对角矩阵,且存在正交矩阵T,使得T-1AT=T T AT=。
Λ
的对角元素是A的特征值。
1 -1
2 -1
实对称矩阵A= -1 1 3 -2 是否可对角化?茹是将矩阵A对角
2 3 1 0
-1 -2 0 1
化。
运用matlab程序来实现这个问题:
程序如下:
A=[1 -1 2 -1;-1 1 3 -2;2 3 1 0;-1 -2 0 1];
[V,D]=eig(A)
运行结果:
V=
0.4412 -0.2042 -0.8328 0.2647
0.6012 0.1266 0.4853 0.6221
-0.5683 0.4886 -0.2227 0.6234
0.3477 0.8388 -0.1462 -0.3927
D=
-3.7266 0 0 0
0 0.9416 0 0
0 0 1.9420 0
0 0 0 4.8430
程序说明:
D 对角线上的元素为A的特征值,V为相对应的特征向量所构成的矩阵。可以看出特征值都是实数,每个特征值对应于一个特征向量,对应的特征向量是正交的,特征向量所构成的矩阵是正交阵。如果不用matlab软件的话实现这种(3阶以上的矩阵)问题是特别复杂及麻烦。
2)求A的特征值,若n个特征值互异,则A一定可对角化。
λ
0 1 0 - 1 0
λλλ
A= 0 0 1因为|A-E|= 0 -1= -(1+)-6 0 -6 -6 -11 -6-λ
λλλλλ
(2+)(3+)=0。所以特征值分别为1=-1,2=-2,3=-3;
用Matlab程序来实现:
A=[0 1 0;0 0 1;-6 -11 -6];
[D]=eig(A)
运行结果:
D=-1,-2,-3;
结果一样,A有3个互不相同的特征值,故可对角化;这两种方法相互比较,用Matlab程序好计算这种问题。
3)求A的特征向量,若有n个线性无关的特征向量,则A可以对角化,否则不可以对角化。
λ
0 1 1 -1 -1
λλλλ
A= 1 0 1因为|I-A| = -1 -1 =(-2)(+1)2
1 1 0 -1 -1 λ
λλ
于是A的特征值为:1=2,2=-1 (二重),每个特征值对应的特征向量为
X1=(1 ,1,1)T,X2=(-1,1,0)T,X3=(-1,0,1)T,这三个向量相互线性无关,故矩阵A可对角化。
程序如下:
A=[0 1 1;1 0 1;1 1 0];
[V,D]=eig(A)
V=
1.0000 -1.0000 -1.0000
1.0000 1.0000 0.0000
1.0000 0.0000 1.0000
D=
2.0000 0 0
0 -1.0000 0
0 0 -1.0000
4)方阵A可对角化的充要条件:A的每个重特征值对应的线性无关的特征向量的个数等于该特征值的重数。
3 2 -1 x-3 -2 1
A= -2 -2 2 的特征多项式是 2 x+2 -2 = x3-12x
3 6 -1 -3 -6 x+1
+16=(x-2)2(x+4)=0。特征根是2,2,-4。特征根-4对应的特征向量为(1/3,-2/3,1)。
特征根2对应的特征向量为{(-2,1,0)(1,0,1)}。
可以看出特征向量的个数等于该特征值的重数。
程序如下:
A=[3 -2 -1;-2 -2 2;3 6 -1];
[V,D]=eig(A)
V=
0.8890 0.2673 0.1654
-0.2540 -0.5345 0.3737
0.3810 0.8018 0.9127
D=
2 0 0
0 -4 0
0 0 2
从上面可以看出这两种方法来解得的结果一样,很容易知道用Matlab程序来处理即方便又速度快。
下面讲将矩阵对角化的方法:
1)令A是数域F上的一个n阶矩阵,如果A的特征多项式f A(x)在F内有n个单根,那么存在一个n阶可逆矩阵T,使
λ
1
λ
2
。
λ
T-1AT=3
λ
n
3 2 -1 x-3 -2 1
设A= -2 -2 2的特征多项式是 2 x+2 -2 =
3 6 -1 -3 -6 x+1
X3-12x+16=(x-2)2(x+4);特征根是2,2,-4;对于特征根-4,求出齐次线性方程组
-7 -2 1 x1 0
2 -2 -2 x2 = 0 的一个基础解系(1/3,-2/3,1)。
-3 -6 -3 x3 0
对于特征根2,求出一个基础解系{(-2,1,0)(1,0,1)}。
由于基础解系所含解向量的个数都等于对应的特征根的重数,所以A可以对角化,取
1/3 -2 1 -4 0 0
T= -2/3 1 0 那么T-1AT= 0 2 0 。
1 0 1 0 0 2
Matlab程序如下:
A=[3 2 -1;-2 -2 2;3 6 -1];
[V,D]=eig(A)
V= 0.8890 0.2673 0.1654
-0.2540 -0.5345 0.3737
0.3810 0.8018 0.9127
D= 2 0 0
0 -4 0
0 0 2
T=inv(V)*A*V
T=
2.0000 0 0
0.0000 -4.0000 0.0000
matlab 下载-0.0000 -0.0000 2.0000
可以看出解向量的个数等于特征跟的重数。
2)设A是一个n阶实对称矩阵,那么存在一个n阶正交矩阵U,使得U T AU 是对角形。
0 1 1 -1
设A= 1 0 -1 1 ,求正交矩阵Q ,使Q T AQ 是对角矩阵。 1 -1 0 1 -1 1 1 0
解:①求A 的特征值。
-1 -1 1λ解特征值方程 |E-A| = -1 1 -1 =(+3)(-1)3 = 0 。λλλλ -1 1 -1λ 1 -1 -1 λ得到A 的特征值是1=-3。2=3=4=1。λλλλ②求A 的特征向量。 当1=-3时,特征向量方程为(1E-A )x=0,对特征矩阵(1E-A )作初等λλλ行变换:
-3 -1 -1 1 1 1 1 1 -1 -3 1 -1 0 -2 2 0
1E-A= -1 1 -3 -1 0 2 -2 0λ 1 -1 -1 -3 0 -2 0 -2 1 1 1 1 1 0 0 -1
0 1 -1 0 0 1 0 1
0 0 0 0 0 0 0 0 ,得出特征向量
0 0 -2 -2 0 0 1 1
x 1=(1,-1,-1,1)T ,对其单位化:
1=X 1=(1/2,-1/2,-1/2,1/2)T
η||
||11X 当2=3=4=1时,特征向量方程为(2E-A )x=0。对特征矩阵(2E-A )作λλλλλ初等行变换:
1 -1 -1 1 1 -1 -1 1
2E-A= -1 1 1 -1
0 0 0 0 , 得出基础λ -1 1 1 -1 0 0 0 0 1 -1 -1 1 0 0 0 0解系(线性无关的特征向量组)。
X 2=(1,1,0,0)T ,X 3=(1,0,1,0)T ,X 4=(-1,0,0,1)T 此时X 2,X 3,X 4线性无关,但并不正交,下面采用施迷特正交化过程,计算出与X 2,X 3,X 4等价的正交向量组y 2,y 3,y 4,令y 2=x 2=(1,1,0,0)T ,y 3=x 3-y 2=(1,0,1,0)T (1,1,0,0,)T =(,1,0)),(),(2223y y y x 21-,2121-
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论