Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
numpy特征向量的奇怪行为:bug还是no bug_Numpy_Eigenvector - Fatal编程技术网

numpy特征向量的奇怪行为:bug还是no bug

numpy特征向量的奇怪行为:bug还是no bug,numpy,eigenvector,Numpy,Eigenvector,NumPy的特征向量解不同于Wolfram Alpha和我的手工计算 导入numpy.linalg >>>将numpy作为np导入 >>>numpy.linalg.eig(np.array([[-2,1],[2,-1]])) (数组([-3,0.]),数组([-0.70710678,-0.4472136], [ 0.70710678, -0.89442719]])) Wolfram Alpha和我个人的计算给出了特征向量(-1,1)和(2,1)。然而,NumPy解决方案有所不同 然而,NumP

NumPy的特征向量解不同于Wolfram Alpha和我的手工计算

导入numpy.linalg >>>将numpy作为np导入 >>>numpy.linalg.eig(np.array([[-2,1],[2,-1]])) (数组([-3,0.]),数组([-0.70710678,-0.4472136], [ 0.70710678, -0.89442719]])) Wolfram Alpha和我个人的计算给出了特征向量(-1,1)和(2,1)。然而,NumPy解决方案有所不同

然而,NumPy计算的特征值得到了Wolfram Alpha和我个人计算的证实

那么,这是NumPy中的一个bug还是我对数学的理解太简单了?类似的线程在特征向量的舍入/缩放方面看到了主要差异,但解决方案之间的偏差将是巨大的


关于

numpy.linalg.eig
标准化特征向量,结果为列向量

eig_vectors = np.linalg.eig(np.array([[-2, 1], [2, -1]]))[1]
vec_1 = eig_vectors[:,0]
vec_2 = eig_vectors[:,1]
现在这两个向量只是你计算的向量的标准化版本

print(vec_1 * np.sqrt(2)) # where root 2 is the magnitude of [-1, 1]
print(vec_1 * np.sqrt(5)) # where root 5 is the magnitude of [2, 1]

因此,这两组计算的结果是等价的,只是Numpy喜欢对结果进行归一化。

Numpy.linalg.eig
对特征向量进行归一化,结果为列向量

eig_vectors = np.linalg.eig(np.array([[-2, 1], [2, -1]]))[1]
vec_1 = eig_vectors[:,0]
vec_2 = eig_vectors[:,1]
现在这两个向量只是你计算的向量的标准化版本

print(vec_1 * np.sqrt(2)) # where root 2 is the magnitude of [-1, 1]
print(vec_1 * np.sqrt(5)) # where root 5 is the magnitude of [2, 1]

所以底线是,两组计算是等价的,只是Numpy喜欢将结果归一化。

输入数组的秩是一,输入数组的秩是一