Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.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
Python 关于使用NumPy计算特征向量的澄清_Python_Numpy_Matrix_Linear Algebra_Eigenvector - Fatal编程技术网

Python 关于使用NumPy计算特征向量的澄清

Python 关于使用NumPy计算特征向量的澄清,python,numpy,matrix,linear-algebra,eigenvector,Python,Numpy,Matrix,Linear Algebra,Eigenvector,我正在复习一些线性代数,并正在研究Python中的一些实现。我正在解决一个关于寻找矩阵a的特征向量的问题 当我手工解决这个问题时,我得到特征值3和-3,其中3的重数为2。我的特征向量是[[1/3],[1],[[1],[1],[0],[[-1],[0],[1]] 尝试在NumPy中实现: import numpy as np A = [[ 1, 2, -2], [-2, 5, -2], [-6, 6, -3]] np.linalg.eig(A) 它给出了输出 (array

我正在复习一些线性代数,并正在研究Python中的一些实现。我正在解决一个关于寻找矩阵a的特征向量的问题

当我手工解决这个问题时,我得到特征值3和-3,其中3的重数为2。我的特征向量是[[1/3],[1],[[1],[1],[0],[[-1],[0],[1]]

尝试在NumPy中实现:

import numpy as np
A = [[ 1, 2, -2], 
     [-2, 5, -2], 
     [-6, 6, -3]]
np.linalg.eig(A)
它给出了输出

(array([ 3., -3.,  3.]), array([[ 0.53452248, -0.30151134, -0.05332571],
                                [-0.26726124, -0.30151134, -0.73225996],
                                [-0.80178373, -0.90453403, -0.67893425]]))
特征值是我所期望的,但是特征向量让我困惑。从我所读的内容中,我了解到它们是列,它们是标准化的,即norme1=1。此外,从数值上看,它们似乎是正确的,因为它们满足Ax=lambda*x方程

此外,当我在Symphy中实现时,我得到了预期的结果

from sympy.matrices import Matrix, eye, zeros, ones, diag, GramSchmidt
A = Matrix([[ 1, 2, -2], 
            [-2, 5, -2], 
            [-6, 6, -3]])
A.eigenvects()
输出:

[(-3, 1, [Matrix([
[1/3],
[1/3],
[  1]])]), (3, 2, [Matrix([
[1],
[1],
[0]]), Matrix([
[-1],
[ 0],
[ 1]])])]

有谁能解释一下NumPy的不同之处以及发生了什么?它是数值求解的吗?这些不是真正的特征向量,但它们似乎在某种意义上满足一定数值精度的条件?多谢各位

这里,特征值3的几何重数为2,矩阵A-3i的秩为1,并且有无数种方法可以选择该特征空间的两个基向量特征向量

在A的情况下,numpy.linalg.eig将返回行特征向量数组,形成整个空间的一组正交基,并且在计算实践中,特征向量在每列中的排列和方向符号上是唯一的。在这里的非正常情况下,没有唯一的选择,只有将整个空间唯一划分为与每个特征值相关的子特征空间

可以考虑特征值3的输出特征向量,即返回的特征向量阵列中的零和第二列,满足满足本征值方程的任意一组基。 该实现应该是LAPACK API的底层函数的包装器。除了匹配以共轭对形式排列的特征值顺序外,对输出特征向量的唯一约束似乎是

对每个特征向量进行缩放,使欧几里德范数为1,最大分量为实数


所以仍然有很多任意性,我不会指望某个特定的输出。

这里,特征值3的几何重数为2,矩阵a-3i的秩为1,并且有无限多的方法来选择该特征空间的两个基向量特征向量

在A的情况下,numpy.linalg.eig将返回行特征向量数组,形成整个空间的一组正交基,并且在计算实践中,特征向量在每列中的排列和方向符号上是唯一的。在这里的非正常情况下,没有唯一的选择,只有将整个空间唯一划分为与每个特征值相关的子特征空间

可以考虑特征值3的输出特征向量,即返回的特征向量阵列中的零和第二列,满足满足本征值方程的任意一组基。 该实现应该是LAPACK API的底层函数的包装器。除了匹配以共轭对形式排列的特征值顺序外,对输出特征向量的唯一约束似乎是

对每个特征向量进行缩放,使欧几里德范数为1,最大分量为实数


所以仍然有很多任意性,我不会指望某个特定的输出。

如果x满足本征向量方程,c*x也满足任何标量c的方程。如果x满足本征向量方程,c*x也满足任何标量c的方程。@RodrigodeAzevedo,这就是这里的意思。不接受。。我想补充一些links@RodrigodeAzevedo,这是此处的意思。不接受。。关闭以添加一些链接
[(-3, 1, [Matrix([
[1/3],
[1/3],
[  1]])]), (3, 2, [Matrix([
[1],
[1],
[0]]), Matrix([
[-1],
[ 0],
[ 1]])])]