A-lx奇异且无解时的特征向量 [英] eigenvectors when A-lx is singular with no solution
问题描述
R如何找到以下矩阵的特征向量?特征值是2,2,所以特征向量需要求解solve(matrix(c(0,1,0,0),2,2))
,它是没有解的奇异矩阵.
How is R able to find eigenvectors for the following matrix? Eigenvalues are 2,2 so eigenvectors require solving solve(matrix(c(0,1,0,0),2,2))
which is singular matrix with no solution.
> eigen(matrix(c(2,1,0,2),2,2))
$values
[1] 2 2
$vectors
[,1] [,2]
[1,] 0 4.440892e-16
[2,] 1 -1.000000e+00
> solve(matrix(c(0,1,0,0),2,2))
Error in solve.default(matrix(c(0, 1, 0, 0), 2, 2)) :
Lapack routine dgesv: system is exactly singular
这两个例程本质上都做同样的事情.他们找到x使得(A-lambdaI)x = 0
而不找到A-lambdaI
的倒数.显然(0 1)是一种解决方案,但我不明白为什么未提出解决方案,以及如何手动解决方案.
Both the routines essentially do the same thing. They find x such that (A-lambdaI)x = 0
without finding the inverse of A-lambdaI
. Clearly (0 1) is a solution but how I can't understand why solve did not come up with it and how do I manually solve it.
推荐答案
也许正在使用此处列出的一种算法:
Maybe it's using one of the algorithms listed here:
http://en.wikipedia.org/wiki/List_of_numerical_analysis_topics#Eigenvalue_algorithms
?
根据 http://stat .ethz.ch/R-manual/R-devel/library/base/html/eigen.html ,eigen
似乎在
According to http://stat.ethz.ch/R-manual/R-devel/library/base/html/eigen.html, eigen
seems to use the LAPACK routine at http://netlib.org/lapack/double/dgeev.f (if you have a square matrix which is not symmetric).
注意:如果lambda是一个特征值,那么A - lambda * I
是单数形式,但是为了找到特征向量,您确实需要将A - lambda * I
求逆或求解一个方程式y = (A - lambda * I) * x
(y
不能为null)是正确的向量).找到满足
Note: you're right that A - lambda * I
is singular if lambda is an eigenvalue but in order to find eigenvectors, one does need invert A - lambda * I
or solve an equation y = (A - lambda * I) * x
(with y
not being the null vector). It is sufficient to find non-zero vectors x
which satisfy
(A - lambda * I) * x = 0
一种策略是找到非奇异变换矩阵T
,使(A - lambda * I) * T
是上三角矩阵(即,对角线以下的所有元素均为零).因为A-lambda*I
是奇数,所以T
可以构造为使得对角线上的最后一个元素(如果特征值的多重性大于1,则甚至是更多对角元素)为零.
One strategy is to find a non-singular transformation matrix T
such that (A - lambda * I) * T
is an upper triangular matrix (i.e. all elements below the diagonal are zero). Because A-lambda*I
is singular, T
can be constructed such that the last element on the diagonal (or even more diagonal elements if the multiplicity of the eigenvalue is larger than one) is zero.
仅 的向量z
的最后一个元素等于非零值(即z = (0,....,0,1)
),然后乘以(A-lambda *I) * T
即可得到零向量.所以有一个:
A vector z
which only has it's last element equal to a non-zero value (i.e. z = (0,....,0,1)
) will then give the zero vector when multiplied with (A-lambda *I) * T
. So one has:
0 = ((A - lambda * I) * T) * z
或换句话说,T*z
是A
的特征向量.
or in other words, T*z
is an eigenvector of A
.
这篇关于A-lx奇异且无解时的特征向量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!