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
中的行数和列数。