提问人:Sabina Zaman 提问时间:10/21/2023 最后编辑:chrslgSabina Zaman 更新时间:10/21/2023 访问量:40
当特征值和特征向量已知时查找矩阵
Finding Matrix When Eigen Values & Eigen Vectors were known
问:
我一直在尝试从特征值和特征向量中找到我的矩阵。 我首先从矩阵中计算特征值和特征向量。 然后,我想验证特征值和特征向量的值。但是没有得到预期的值。我的代码
import numpy as np
from numpy.linalg import eig
a=np.array([[1,2],[2,np.pi]])
w,v=eig(a)
c0=np.outer(v[0],v[0].T)
c1=np.outer(v[1],v[1].T)
a_=w[0]*c0+w[1]*c1
我得到的结果是:
array ([[ 1. , -2. ],
[-2. , 3.14159]])
但我期待与 a 相同的数组。谁能告诉我这里出了什么问题?
答:
的特征向量不是 和 。 是一个变换矩阵。所以 的列是 和 是特征向量。a
v[0]
v[1]
v
v
v[:,0]
v[:,1]
你把代码写得好像是特征向量,但事实并非如此。v[0]
v[1]
另外,我希望您知道您的代码(一旦被替换和 和 )才有效,因为是酉的,因此是 .v[0]
v[1]
v[:,0]
v[:,1]
v
v⁻¹
vᵀ
返回的一般方法是 .
你正在做的相当于 .这没关系,只要和是一回事。当是单一的时,就是这种情况。a
[email protected](w)@np.linalg.inv(v)
[email protected](w)@v.T
np.linalg.inv(v)
v.T
v
由于初始矩阵是对称的,因此我们知道它存在一组正交特征向量,一旦归一化,就会形成一个酉矩阵。所以,我们知道酉矩阵是可能的。a
v
因为你有 2 个不同的特征值,所以在维度 2 中,向量必须是正交的(每个子空间都是一条线;所以无论我们选择什么特征向量,它们都是我们已知存在的正交集的特征向量的共线)。因此,在对称的情况下,并且您具有与 的维数一样多的特征值,是正交的,并且是酉的,因为保证每个向量都是归一化的(范数 1)a
a
v
eig
但是,如果碰巧有双特征值,那么,我们所知道的是 CAN 可能是酉的,但不能保证这一点。a
v
eig
例如,一个漫画示例,是唯一的特征值为 1。特征空间是整个空间。因此,任何由两个独立向量组成的都是有效的.当然,存在一些酉特征向量集(是显而易见的。事实上)是.但也存在其他非单一的,即使在正常化之后也是如此。例如,是另一组有效的特征向量,可以通过 (两者都是特征向量。它们构成了特征空间的有效基础。它们被规范化了)。A=Identity
v
v
[1,0], [0,1]
np.array([[1,0],[0,1]])@np.diag([1,1])@np.array([[1,0],[0,1]]).T
A
[1,0], [1/√2, 1/√2]
eig
然而不是(是)。np.array([[1, 1/np.sqrt(2)], [0, 1/np.sqrt(2)]])@np.diag([1,1])@np.array([[1, 1/np.sqrt(2)], [0, 1/np.sqrt(2)]]).T
A
np.array([[1, 1/np.sqrt(2)], [0, 1/np.sqrt(2)]])@np.diag([1,1])@np.linalg.inv(np.array([[1, 1/np.sqrt(2)], [0, 1/np.sqrt(2)]]))
所以,长话短说,在 dim 2 中,即使使用对称矩阵,您也不能保证它是酉的。数学告诉我们这是可能的。但不能保证。因此,您不知道(这是您计算的内容,代码较长)是否是 .a
v
linalg.eig
[email protected](w)@v.T
a
另一方面,只能用于厄米特矩阵(因此,现实世界中的对称矩阵),保证它是酉的。eigh
v
所以tl;博士
您的代码假定 和 是特征向量。他们不是。 并且是。
v[0]
v[1]
v[:,0]
v[:,1]
一旦纠正了这一点,你的代码就等同于计算
[email protected](w)@v.T
这与(等于 )是一回事,只有当是酉的。 并不能保证情况确实如此(即使对称,也有可能是这样)。因此,不能保证您的代码即使在更正后也能找回。即便如此,在您的情况下(更正后),它恰好起作用。
a
[email protected](w)@np.linalg.inv(v)
v
eig
a
a
eigh
,它只适用于对称(厄米特)矩阵,就像你一样,确实保证了这一点。因此,请在代码中替换为。然后,你肯定知道(只要是对称的),是 .a
eig
eigh
a
a_
a
评论