-
2020-12-09 07:41:55
使用python的数值计算库numpy来计算矩阵的特征值,特征向量与标准正交向量组
import numpy as np
1.求矩阵
的特征值和各特征值所对应的特征向量
x = np.array([[-1,0,1],[1,2,0],[-4,0,3]])
a,b=np.linalg.eig(x) ##特征值赋值给a,对应特征向量赋值给b
for i in range(len(a)):
print('特征值',a[i],'对应特征向量为',b[:,i])
特征值 2.0 对应特征向量为 [0. 1. 0.]
特征值 1.0 对应特征向量为 [ 0.40824829 -0.40824829 0.81649658]
特征值 1.0 对应特征向量为 [-0.40824829 0.40824829 -0.81649658]
2.求矩阵
的特征值和各特征值所对应的特征向量
x = np.array([[1,-2,2],[-2,-2,4],[2,4,-2]])
a,b=np.linalg.eig(x) ##特征值赋值给a,对应特征向量赋值给b
for i in range(len(a)):
print('特征值',a[i],'对应特征向量为',b[:,i])
特征值 2.000000000000001 对应特征向量为 [ 0.94280904 -0.23570226 0.23570226]
特征值 -6.999999999999997 对应特征向量为 [-0.33333333 -0.66666667 0.66666667]
特征值 1.9999999999999993 对应特征向量为 [-0.0232036 0.7126935 0.7010917]
3.由向量组
构造一组标准正交向量组
print('循环')
a = np.array([[0,1,0],[0,-1,1],[1,-1,2]])
b = np.zeros(a.shape)
#正交化
for i in range(len(a)):
b[i] = a[i]
for j in range(0,i):
b[i] -= np.dot(a[i],b[j])/np.dot(b[j],b[j])*b[j]
#归一化
for i in range(len(b)):
b[i] = b[i]/np.sqrt(np.dot(b[i],b[i]))
print(b)
循环
[[0. 1. 0.]
[0. 0. 1.]
[1. 0. 0.]]
更多相关内容 -
C语言计算特征值和特征向量
2013-03-05 22:51:00本代码用C语言进行编程,可以计算矩阵的特征值和相应的特征向量。 -
vba求特征值与特征向量
2014-08-14 22:45:27通过用vba求矩阵的特征值与特征向量。可用于大多数 -
雅克比法求取矩阵特征值和特征向量(c语言)
2013-08-16 15:51:52雅克比法求取矩阵特征值和特征向量 考虑线性方程组Ax = b时,一般当A为低阶稠密矩阵时,用主元消去法解此方程组是有效方法。但是,对于由工程技术中产生的大型稀疏矩阵方程组,利用迭代法求解此方程组就是合适的,在... -
特征值与特征向量
2019-08-23 16:58:11本文参考《Linear Algebra and Its Applications》——David C.Lay, Steven R....A为n*n的矩阵,x为非零向量,若存在数λ使Ax=λx有非平凡解x,则称λ为A的特征值,x称为对应于λ的特征向量。 例:设,...本文参考《Linear Algebra and Its Applications》——David C.Lay, Steven R. Lay, Judi J.McDonald,中译本名为《线性代数及其应用》(原书第五版)中的相关章节。
一:特征值,特征向量
定义如下:
A为n*n的矩阵,x为非零向量,若存在数λ使Ax=λx有非平凡解x,则称λ为A的特征值,x称为对应于λ的特征向量。
例:设
,
可以看到A对特征向量的作用是很简单的,它只是对特征向量进行了拉伸,而特征值表达了它拉伸的方向和大小。
式
可以变为
,所以A的特征向量是满足
的所有非平凡解,这个解集称为A对应于
的特征空间。
二:特征方程
由于A的特征向量是满足
的所有非平凡解,所以要使
有非平凡解,则
为可逆矩阵,则det(
)=0。所以称det(
)=0为A的特征方程。
换句话说:数
是n*n矩阵A的特征值的充要条件是
是特征方程det(
)=0的根。
三:相似性
若A和B是n*n的矩阵,如果存在可逆矩阵P,使得
,称为A相似于B,由于可逆矩阵的逆也是可逆的,所以B也相似于A,所以称A和B是相似的,而把A变成B(
)的变换称为相似变换。若A和B是相似的,则他们有相同的特征多项式,从而有相同的特征值(和相同的重数)
四:对角化
定义:若方阵A相似于对角矩阵,即存在可逆矩阵P和对角矩阵D,有
,则称A可对角化。
设P是列为
的任意n*n矩阵,D是对角线元素为
的对角矩阵,那么:
而
假设A可对角化且
,用P右乘等式两边,则有
:
因为P可逆,所以P的各列线性无关,所以由上式得
是A的特征值,
是相应的特征向量。
所以,总行所述,
,D为对角矩阵的充要条件是P的列向量是A的n个线性无关的特征向量,此时,D的主对角线上的元素分别是A对应于P中特征向量的特征值。
-
java求矩阵的特征值和特征向量
2012-05-25 11:18:29这几天做一个项目,需要用到 求矩阵的特征值特征向量。我c++学的不好,所以就去网站找了很多java的源代码,来实现这个功能。很多都不完善,甚至是不准确。所以自己参考写了一个。这个用于我一个朋友的毕业设计。结果... -
矩阵的特征值和特征向量
2021-03-27 14:47:19矩阵的特征值和特征向量特征值的理解特征值 、特征向量、方阵的关系几何意义物理意义特征分解特征值和特征向量的含义的应用补充一点 特征值的理解 其实刚上大学的时候上的线性代数课上,也只是简单讲解了特征值和...特征值的理解
其实刚上大学的时候上的线性代数课上,也只是简单讲解了特征值和特征向量是怎么求的。但是并不知道特征值和特征向量有什么含义,能做什么,也就是我为什么要求它们。
这几天抽空查了很多的资料,在这里记录一下学习心得吧!特征值 、特征向量、方阵的关系
我们都知道,它们三者满足如下的关系
A ∗ X = λ ∗ X A* X=\lambda*X A∗X=λ∗X
其中,A是方正,一般是已知的。 X是特征向量, λ \lambda λ是特征值,这两个是捆绑存在的,待定的。
从整个式子上看,可以简单的理解:X特征向量在经过 转换矩阵A的转化后,在另一个空间维度和方向不变,只是被拉伸或缩短了。几何意义
说明下,矩阵和向量线性变换总是在不同的基对之间变化的。所以下面我会申明一下基是什么。
- 从V不动,A不断变化的角度看:
在 i ⃗ \vec{i} i, j ⃗ \vec{j} j 向量为基的坐标系中,存在一个 向量 v ⃗ \vec{v} v,
- 先用转化矩阵对 向量进行位移, A 1 ∗ v ⃗ A_1*\vec{v} A1∗v如下,没有发现和 v ⃗ \vec{v} v 有什么特殊的关系。
- 变化矩阵A,不断调整
A
∗
v
⃗
A*\vec{v}
A∗v的位置,可以发现出现如下情况。
3. A 2 ∗ v ⃗ A_2*\vec{v} A2∗v与 v ⃗ \vec{v} v重合了。可以观察到, v ⃗ \vec{v} v是 A 2 A_2 A2的特征向量, A 2 ∗ v ⃗ A_2*\vec{v} A2∗v的长度是 v ⃗ \vec{v} v的 λ \lambda λ倍
- 从A不变,V不断变化的角度看
依旧是在 i ⃗ 、 j ⃗ \vec{i}、\vec{j} i、j的坐标系下,存在一个 v ⃗ \vec{v} v,给v左乘一个矩阵 A A A,位置关系如下,也没什么特殊的
调整了一下KaTeX parse error: Expected '}', got 'EOF' at end of input: \vec{v]的方向,图像渐渐特殊了:
可以观察到, v ⃗ \vec{v} v是 A ∗ v ⃗ A*\vec{v} A∗v重合了。此时我们称 v ⃗ \vec{v} v是 A A A的特征向量, A ∗ v ⃗ A*\vec{v} A∗v的长度是 v ⃗ \vec{v} v的 λ \lambda λ倍
其实,向量v就是一个方向,表示在这个方向上,矩阵A(运动)相对稳定,因为方向不变化。
而在这个方向上的所有特征都是特征向量。
这也就说明了,为什么 λ \lambda λ和v是一对的,因为 有了长度和方向,这个向量的也就确定了,即特征向量就是固定的了。
物理意义
一般来说,矩阵我们可以看成是一种运动,而向量可以看作是平面上的一个方向。而在这里,特征值和特征向量就像是 运动 的速度和 方向。
- 特征值就是运动的速度
- 特征向量就是运动的方向
既然运动最重要的两方面都被描述了,特征值、特征向量自然可以称为运动(即矩阵)的特征。而运动是不能直接观察的,例如走路,我们只会人在走,猪在走,熊再走… 只有了载体我们才会说这个动作。
上面说的运动太抽象了,我来举一个具体点的例子:烧水。- 烧一壶斐波那契的水
如果我要烧一壶水,且水得温度假设 按照斐波那契数列增加,那么就有 下一秒的水温度 T t + ! T_{t+!} Tt+!,当前水温 T T T,前一秒水温 T t − 1 T_t{-1} Tt−1的关系为:
T t + 1 = T t + T t − 1 T_{t+1}=T_t+T_{t-1} Tt+1=Tt+Tt−1
因为每次计算,我都需要连续两个时间片的温度,因此可以用矩阵表示为
[ T t + 1 T t ] = [ 1 1 1 0 ] [ T t T t − 1 ] \begin{bmatrix} T_{t+1}\\ T_t \end{bmatrix} = \begin{bmatrix} 1&1\\ 1&0 \end{bmatrix} \begin{bmatrix} T_t\\ T_{t-1} \end{bmatrix} [Tt+1Tt]=[1110][TtTt−1]
其中,烧水这个动作我们抽象为 A = [ 1 1 1 0 ] A=\begin{bmatrix}1&1\\ 1&0\end{bmatrix} A=[1110],反复这个运动就可以把水烧开。根据斐波那契数列, T 1 = 1 , T 2 = 1 T_1=1,T_2=1 T1=1,T2=1开始,通过之前的相互调整阐述,可以得到如下结果:
实际上,这壶水会沿着 A A A 的特征值最大的特征向量方向飞快增长,在理想情况下,温度会不断突破,甚至上百亿度。这时,我们就说 这个矩阵是不稳定。
拉格朗日发现,原来特征向量就是方向
我们知道了特征向量和特征值的含以后,会想为什么会这样??
特征分解
从某种层面来看,特征就是“不变”。不管v怎么变,都满足这样一个式子
A ∗ X = λ ∗ X A* X=\lambda*X A∗X=λ∗X
共线。
一般来说,一个向量在某个矩阵的作用下,其空间变换体现为 长度和 方向 的变化,即旋转和、平移和拉伸,有些情况下,向量的维度都会发生变化。而 这里的特殊指出在于,矩阵作用与它的特征向量,只是导致它的长度发生变化。
对于方阵而言,它的维度不会变化,所以矩阵作用到特征向量上的运动实际上只有两种:- 拉伸
- 旋转
特征值也就是对特征向量 进行伸缩和旋转程度的度量。 如果 λ \lambda λ是
- 实数R那么特征向量就只进行了 伸缩
- 虚数那么特征向量就只进行了 旋转
- 复数C那么特征向量就只进行了 伸缩和旋转
- 推荐教材 《linear algebra and its application》
其实矩阵的分解,就用有一个现成的知识点:对角化
A = P Λ P − 1 A=P\Lambda P^{-1} A=PΛP−1
其中 Λ \Lambda Λ是对角阵,由特征值组成。 P − 1 P^{-1} P−1的列向量是单位化的特征向量
我们再回头看下刚才的特征值分解,实际上把运动给分解开了:
我们来看几何上做了什么:观察基的变化。
初始时
左乘 P = [ − 2 2 2 2 2 2 2 2 ] P=\begin{bmatrix} -\frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2}\\ \frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2} \end{bmatrix} P=[−22222222]
继续左乘 Λ = [ 3 0 0 1 ] \Lambda =\begin{bmatrix} 3&0\\ 0&1\end{bmatrix} Λ=[3001]
相当于,之前的旋转是指明了拉伸的方向,所以我们理解了:特征值就是拉伸的大小,特征向量指明了拉伸的方向
之前说的运动,特征值就是运动的速度,而特征向量就是运动的方向,而其余方向的运动就由 特征向量方向的运动合成。所以最大的特征值 对于的特征向量指明了运动速度的最大方向。最后左乘 P − 1 = [ − 2 2 2 2 2 2 2 2 ] P^{-1}=\begin{bmatrix} -\frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2}\\ \frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2} \end{bmatrix} P−1=[−22222222]
特征值和特征向量的含义的应用
从线性空间的角度上看,在一个定义了内积的线性空间里,对一个N阶对称的方阵进行 特征分解,就是产生了该空间 的N个标准正交基,然后把矩阵投影在N个基上。
N个特征向量就是N个正交基,而特征值的绝对值 则是代表矩阵在每个基上的投影长度
一般而言,特征值越大,说明矩阵在对应的特征向量上的方差越大,功率越大,信息量越多。
应用到 最优化中,意思就是 R的二次型。 自变量在这个方向上变化的时候,对函数值的影响最大,也就是在该方向上的导数最大。
应用到数据挖掘中,意思就是最大的特征值 对应的特征向量的方向上包含的信息量度,而特征值小的对应的特征向量方向上的信息很小,可以删除,从而达到降维的目的。也就是保留特征值大的方向对于的数据。
可以查看我的另一篇:数据降维的一个栗子:葡萄酒分类补充一点
准确地来说,所有的方阵都有特征值和特征向量。
矩阵特征值的求法是写出特征方程lλE-Al=0
左边解出含有λ的特征多项式,比如说是含有λ的2次多项式,我们学过,是可能没有实数解的,(Δ<0)
这个时候我们说这个矩阵没有【实特征值】
但是如果考虑比如Δ<0时,有虚数的解,,也就是有虚数的特征值的
这样说来就必有特征值啦! - 从V不动,A不断变化的角度看:
-
《特征值与特征向量》定义、意义及例子
2020-11-11 20:09:24参考:特征值与特征向量 -
什么是特征向量和特征值
2019-07-05 10:24:45特征值和特征向量的由来 谈到线性代数课本里面的一些概念,比如行列式、矩阵乘积、线性变换、二次型等,或许很少人知道它们是谁发现的,这不像高数/数分课本上那么明显:柯西收敛准则、拉格朗日中值定理、魏尔... -
python 求矩阵的特征值和特征向量
2020-12-23 12:51:01python 求矩阵的特征值和特征向量 -
Jacobi法求特征值特征向量
2019-07-02 21:30:28Jacobi法求特征值特征向量引言Jacobi法求特征值特征向量 引言 参考链接1 参考链接2 参考链接3 参考链接4 Jacobi法求特征值特征向量 求解使用对象:实对称矩阵RRR,性质有RR−1=IRR^{-1}=IRR−1=I 即是 RT=R−1R^T=R... -
特征值和特征向量的作用
2019-03-04 21:13:44本文转自知乎大牛。 从定义出发,Ax=cx:A为矩阵,c为特征值,x为特征向量。 矩阵A乘以x表示,对向量x进行一次转换(旋转或拉伸)(是一种线性转换),而该转换的效果为常数c乘以向量x(即只进行拉伸)。 ... -
MATLAB特征值和特征向量
2021-04-20 13:06:13方阵A的特征值和特征向量为标量λ和满足条件的非零向量v关=λv在这个等式中, A是一个n×n矩阵, v是非零n×1向量, 而λ是标量(可以是实数也可以是复数)。该方程式具有其解的任何λ值都称为矩阵A的特征值。它也称为... -
Jacobi__矩阵特征值和特征向量(详细,有例子)
2012-11-21 13:20:27Jacobi__矩阵特征值和特征向量(详细,有例子) -
022 特征值特征向量性质总结
2017-11-12 21:36:04022 特征值特征向量性质总结 -
线性代数学习之特征值与特征向量
2021-10-22 17:02:44什么是特征值和特征向量: 在上一次线性代数学习之行列式 - cexo - 博客园学习了行列式相关的一些概念,其中也多次提到学好行列式是为了学习“特征值和特征向量”的基础,所以此次就正式进入这块内容的学习,也是... -
特征值和特征向量 奇异值和奇异值分解
2019-01-20 14:47:03特征值和特征向量 特征值和特征向量 -
求解矩阵的特征值和特征向量的C++源代码
2012-10-22 19:51:05求解矩阵的特征值和特征向量的C++源代码,经过测试的,下载编译即可使用 -
如何理解特征值和特征向量
2017-08-02 15:45:54矩阵充当的映射是对特征向量缩放的过程,缩放因子就是特征值. -
特征值和特征向量的几何含义理解
2019-12-04 12:33:38在刚开始学的特征值和特征向量的时候只是知道了定义和式子,并没有理解其内在的含义和应用,这段时间整理了相关的内容,跟大家分享一下; 首先我们先把特征值和特征向量的定义复习一下: 定义: 设A是n阶矩阵... -
方阵的特征值和特征向量的求解案例(二阶方阵)
2021-01-27 15:44:20 -
特征值分解:特征值,特征向量,特征向量矩阵
2019-01-19 09:57:26特征值和特征向量 特征向量矩阵 特征向量矩阵S,由矩阵A的所有线性无关的特征向量按列排列组成的矩阵。 特征值矩阵,有矩阵A的所有特征值放在对角线位置组成的对角矩阵。 特征值分解的物理意义 矩阵的... -
如何计算numpy特征值和特征向量
2020-12-11 02:00:21如果你想要精确的解析推导,你需要使用symbolic computation,这就是Wolfram Alpha,Mathematica和相关系统所使用的。例如,在Python中,您可能需要查看SymPy。下面是一个例子:from sympy import Matrix, prettyL =... -
特征值和特征向量的由来 特征值和特征向量定义: 特征值和特征向量的几何意义 特征值和特征向量的应用
2018-11-01 22:14:20特征向量其实反应的是矩阵A本身固有的一些特征,本来一个矩阵就是一个线性变换...于是我们可以说:一个变换(即一个矩阵)可以由其特征值和特征向量完全表述,这是因为从数学上看,这个矩阵所有的特征向量组成了这个... -
实对称矩阵的特征值求法_机器学习和线性代数 - 特征值和特征向量
2020-10-21 22:12:45特征值和特征向量可能是线性代数中最重要的概念之一。从机器学习、量子计算、物理到许多数学和工程的问题,都可以通过找到一个矩阵的特征值和特征向量来解决。根据定义(标量λ、向量v是特征值、特征向量A):视觉上,... -
方阵的特征值和特征向量的求解案例(三阶方阵)
2021-01-27 16:19:58下面验证一下 具体特征值的求解过程如下(写的比较乱) -
特征值和特征向量的理解 浅显易懂 肯定有收获
2021-02-08 10:14:12二、举个例子1、计算特征值与特征向量2、用特征向量表示任意向量三、理解其他结论1、对角化分解2、矩阵的特征值分别是原矩阵特征值的倒数3、特征值为0,意味着不可逆4、通过解Ax⃗=λx⃗A\vec{x}=\lambda \vec{x}Ax=... -
特征值与特征向量及其应用
2019-08-13 17:36:47大学学习线性代数的时候,特征值(eigenvalue)和特征向量(eigenvector)一直不甚理解,尽管课本上说特征值和特征向量在工程技术领域有着广泛的应用,但是除了知道怎么求解特征值和特征向量之外,对其包含的现实...