Python 找到特征值的最佳方法?
我有一个等式,Python 找到特征值的最佳方法?,python,numpy,eigenvalue,Python,Numpy,Eigenvalue,我有一个等式,AX=nBX,其中A和B是相同顺序的矩阵,X是系数矩阵。和n是要找出的特征值 现在,我知道了X,这是通过施加必要的边界条件得到的 找到特征值“n”的最佳方法是什么?为什么 A1=np.dot(A,X) B1=np.dot(B,X) n=eigvals(A1,B1) 或 假设X未知,您需要 eigenvalues = scipy.linalg.eigvals(A, B) eigenvalues, eigenvectors = scipy.linalg.eig(A, B) 如
AX=nBX
,其中A
和B
是相同顺序的矩阵,X
是系数矩阵。和n
是要找出的特征值
现在,我知道了X
,这是通过施加必要的边界条件得到的
找到特征值“n”的最佳方法是什么?为什么
A1=np.dot(A,X)
B1=np.dot(B,X)
n=eigvals(A1,B1)
或
假设X未知,您需要
eigenvalues = scipy.linalg.eigvals(A, B)
eigenvalues, eigenvectors = scipy.linalg.eig(A, B)
如果你还需要特征向量,你需要
eigenvalues = scipy.linalg.eigvals(A, B)
eigenvalues, eigenvectors = scipy.linalg.eig(A, B)
如果X已知,将其视为特征值问题没有多大意义。如果已知X,那么您不妨将AX相乘,看看AX是否是BX的倍数。您真的知道a
、B
和X
的所有元素吗?这似乎使问题变得微不足道。numpy.linalg.eig
和numpy.linalg.eigvals
都不接受两个参数。这看起来根本不像特征值计算。是的,我知道A,B和X的所有元素。我必须找出n的值。请解释了解所有矩阵,它如何使问题变得简单。有3种情况。案例1:AX=BX=0
。在这种情况下,n
的任何值都是有效的。案例二:BX=0
,但是AX
是BX
的标量倍数。在这种情况下,n
必须是AX
属于BX
的任意倍数。案例3:AX
不是BX
的标量倍数。在这种情况下,不可能有n
的值。考虑到你所说的特征值,复数,你似乎有一个不同的心理模型。如果你已经愿意承担计算AX和BX的计算负担,那么整个事情就简化为一个由m*n个线性方程组组成的一个大系统,其中m和n是AX
和BX
中的行数和列数。