1、名词说明
1)特征值
特征值(Eigenvalues)是矩阵的一个重要概念,在线性代数中起着非常重要的作用。给定一个n×n的方阵A,如果存在一个非零向量v,使得矩阵A作用于向量v后,得到的结果与向量v成比例(即Av=λv,其中λ为标量),那么λ就是矩阵A的特征值,v就是对应于特征值λ的特征向量。
特征值和特征向量的概念与矩阵的对角化有密切的关系。通过特征值和特征向量的求解,可以将矩阵对角化为对角矩阵,简化矩阵的计算和分析。特征值和特征向量还在矩阵的谱理论和矩阵的性质研究中扮演着重要的角色。
一些常见的特征值相关的问题包括:求解特征值和特征向量、特征值的性质(如重数、特征多项式等)、特征值的影响(如对角化、矩阵的稳定性分析等)等。
2)广义特征值
在线性代数中,矩阵的广义特征值(Generalized Eigenvalues)是指两个矩阵的特征值。给定两个n×n的矩阵A 和 B,广义特征值λ是一个非零的标量λ,使得存在一个非零的n 维向量x,使得如下广义特征方程成立:
Ax = λBx
其中A 和 B 是给定的矩阵,x 是非零向量。广义特征值问题是通过求解上述方程来获取特征值λ和相应的特征向量x 的过程。
3)特征向量
特征向量(Eigenvectors)是与特征值(Eigenvalues)相关联的一组向量。对于一个给定的方阵A,如果存在一个非零向量v,使得矩阵A作用于向量v后,得到的结果与向量v成比例(即Av=λv,其中λ为标量),那么v就是矩阵A的特征向量,对应的标量λ为特征值。
特征向量在许多领域中都有着广泛的应用。在线性代数中,特征向量可以帮助我们理解矩阵的性质和对角化。通过求解特征值和特征向量,我们可以将矩阵对角化,简化矩阵的计算和分析过程。
4)奇异值
奇异值(Singular Values)是线性代数中一个非常重要的概念,特别在矩阵分解和降维技术中扮演着关键的角色。对于一个任意的矩阵A(不一定是方阵),其奇异值分解(Singular Value Decomposition,SVD)可以表示为:
A = UΣV^T
其中,U和V都是正交矩阵,Σ是一个对角矩阵,对角线上的元素称为矩阵A的奇异值。通常情况下,奇异值按照非增的次序排列。奇异值分解不仅能够将矩阵A分解为一系列特征较强的奇异向量,还为矩阵的低秩近似提供了有效的方式。
5)正交矩阵
正交矩阵是指在实数域或复数域上的一个方阵,满足其转置矩阵与逆矩阵相等的性质。换句话说,一个正交矩阵A满足以下条件:A^T * A = A * A^T = I,其中I为单位矩阵。
2、eig ():特征值和特征向量求解
1)语法
语法:e = eig(A) 返回一个列向量,其中包含方阵 A 的特征值。
语法:[V,D] = eig(A) 返回特征值的对角矩阵 D 和矩阵 V,其列是对应的右特征向量,使得 A*V = V*D。
语法:[V,D,W] = eig(A) 还返回满矩阵 W,其列是对应的左特征向量,使得 W'*A = D*W'。
语法:e = eig(A,B) 返回一个列向量,其中包含方阵 A 和 B 的广义特征值。
语法:[V,D,W] = eig(A,B) 还返回满矩阵 W,其列是对应的左特征向量,使得 W'*A = D*W'*B。
___\] = eig(___,outputForm) 支持上述语法中的任何输入或输出参量,并以 outputForm 指定 的形式返回特征值。将 outputForm 指定为 "vector" 可返回列向量中的特征值,指定为 "matrix" 可返回对角矩阵中的特征值。 ### 2)参数 A --- 输入矩阵 B --- 广义特征值问题输入矩阵 outputForm --- 特征值的输出格式 e --- 特征值(以向量的形式返回) V --- 右特征向量 D --- 特征值(以矩阵的形式返回) W --- 左特征向量 ### 3)矩阵特征值 #### 代码及运算 ```Matlab A = gallery("lehmer",4)%创建对称正定矩阵 e = eig(A)%特征值计算 D = eig(A,"matrix")%对角矩阵显示特征值 A = 1.0000 0.5000 0.3333 0.2500 0.5000 1.0000 0.6667 0.5000 0.3333 0.6667 1.0000 0.7500 0.2500 0.5000 0.7500 1.0000 e = 0.2078 0.4078 0.8482 2.5362 D = 0.2078 0 0 0 0 0.4078 0 0 0 0 0.8482 0 0 0 0 2.5362 ``` ### 4) 矩阵的特征值和特征向量 #### 代码及运算 ```Matlab A = gallery("lehmer",4)%创建对称正定矩阵 [V,D] = eig(A)%D为特征值的对角矩阵 A*V - V*D%验证 A = 1.0000 0.5000 0.3333 0.2500 0.5000 1.0000 0.6667 0.5000 0.3333 0.6667 1.0000 0.7500 0.2500 0.5000 0.7500 1.0000 V = 0.0693 -0.4422 -0.8105 0.3778 -0.3618 0.7420 -0.1877 0.5322 0.7694 0.0486 0.3010 0.5614 -0.5219 -0.5014 0.4662 0.5088 D = 0.2078 0 0 0 0 0.4078 0 0 0 0 0.8482 0 0 0 0 2.5362 ans = 1.0e-14 * -0.0309 0.0028 0.0222 -0.0222 -0.0319 0.0111 -0.0083 -0.0444 -0.0833 -0.0208 0.0278 -0.1332 -0.0056 0 0 0.0444 ``` ### 5) 左特征向量 #### 代码及运算 ```Matlab A = gallery("lehmer",4)%创建对称正定矩阵 [V,D,W] = eig(A) W'*A - D*W'%验证 A = 1.0000 0.5000 0.3333 0.2500 0.5000 1.0000 0.6667 0.5000 0.3333 0.6667 1.0000 0.7500 0.2500 0.5000 0.7500 1.0000 V = 0.0693 -0.4422 -0.8105 0.3778 -0.3618 0.7420 -0.1877 0.5322 0.7694 0.0486 0.3010 0.5614 -0.5219 -0.5014 0.4662 0.5088 D = 0.2078 0 0 0 0 0.4078 0 0 0 0 0.8482 0 0 0 0 2.5362 W = 0.0693 -0.4422 -0.8105 0.3778 -0.3618 0.7420 -0.1877 0.5322 0.7694 0.0486 0.3010 0.5614 -0.5219 -0.5014 0.4662 0.5088 ans = 1.0e-14 * -0.0309 -0.0319 -0.0833 -0.0056 0.0028 0.0111 -0.0208 0 0.0222 -0.0083 0.0278 0 -0.0222 -0.0444 -0.1332 0.0444 ``` ### 6) 广义特征值 #### 代码及运算 ```Matlab A = [1/sqrt(2) 0; 0 1] B = [0 1; -1/sqrt(2) 0] [V,D]=eig(A,B) A*V - B*V*D%验证 A = 0.7071 0 0 1.0000 B = 0 1.0000 -0.7071 0 V = 1.0000 + 0.0000i 1.0000 + 0.0000i 0.0000 - 0.7071i 0.0000 + 0.7071i D = 0.0000 + 1.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 - 1.0000i ans = 0 0 0 0 ``` ## 3、svd()奇异值分解 ### 1)语法 语法:S = svd(A) 以降序顺序返回矩阵 A 的奇异值。 语法:\[U,S,V\] = svd(A) 执行矩阵 A 的奇异值分解,因此 A = U\*S\*V'。 \[___\] = svd(___,outputForm) 还可以指定奇异值的输出格式。您可以将此选项与上述任一输入或输出参量组合一起使用。指定 "vector" 以列向量形式返回奇异值,或指定 "matrix" 以对角矩阵形式返回奇异值。 ### 2)参数 A :输入矩阵 outputForm :奇异值的输出格式 U :左奇异向量 S :奇异值 V :右奇异向量 ### 3)矩阵的奇异值 #### 代码及运算 ```Matlab A = [1 0 1; -1 -2 0; 0 1 -1]%满秩矩阵 s = svd(A) A = 1 0 1 -1 -2 0 0 1 -1 s = 2.4605 1.6996 0.2391 ``` ### 4) 奇异值分解 #### 代码及运算 ```Matlab A = [1 2; 3 4; 5 6; 7 8] [U,S,V] = svd(A) U*S*V' A = 1 2 3 4 5 6 7 8 U = -0.1525 -0.8226 -0.3945 -0.3800 -0.3499 -0.4214 0.2428 0.8007 -0.5474 -0.0201 0.6979 -0.4614 -0.7448 0.3812 -0.5462 0.0407 S = 14.2691 0 0 0.6268 0 0 0 0 V = -0.6414 0.7672 -0.7672 -0.6414 ans = 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 ```