gpt4 book ai didi

python - 如何找出与矩阵的特定特征值对应的特征向量?

转载 作者:太空狗 更新时间:2023-10-30 00:46:04 27 4
gpt4 key购买 nike

如何找出对应于特定特征值的特征向量?

我有一个随机矩阵(P),其中一个特征值是 1。我需要找到对应于特征值 1 的特征向量。

scipy 函数 scipy.linalg.eig返回特征值和特征向量的数组。

D, V = scipy.linalg.eig(P)

这里 D(值数组)和 V(向量数组)都是向量。

一种方法是在D中搜索,提取V中对应的特征向量,有没有更简单的方法?

最佳答案

import numpy as np
import numpy.linalg as linalg


P = np.array([[2, 0, 0], [0, 1, 0], [0, 0, 3]])

D, V = linalg.eig(P)
print(D)
# [ 2. 1. 3.]

特征向量是 V 的列:

V = V.T

for val, vec in zip(D, V):
assert np.allclose(np.dot(P, vec), val*vec)

所以特征值1.0对应的特征向量为

def near(a, b, rtol = 1e-5, atol = 1e-8):
return np.abs(a-b)<(atol+rtol*np.abs(b))

print(V[near(D, 1.0)])
# [[ 0. 1. 0.]]

由于可以有多个具有相同特征值的特征向量,V[near(D, 1.0)] 返回一个二维数组——数组的每一行都是一个特征向量特征值为 1.0。

关于python - 如何找出与矩阵的特定特征值对应的特征向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11953867/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com