【问题标题】:Best way to find eigenvalues?找到特征值的最佳方法?
【发布时间】:2014-02-19 06:35:09
【问题描述】:

我有一个方程AX= nBX,其中AB 是相同阶的矩阵,Xcoefficient matrix。而n 是待查明的eigenvalues

现在,我知道X,我通过施加必要的边界条件获得。

找到eigenvalues 'n' 的最佳方法是什么?为什么?

A1=np.dot(A,X)

B1=np.dot(B,X)

n=eigvals(A1,B1)

n,yhat=eig(A,B).

【问题讨论】:

  • 你真的知道ABX的所有元素吗?这似乎使问题变得微不足道。
  • numpy.linalg.eignumpy.linalg.eigvals 都不接受两个参数。这看起来根本不像特征值计算。
  • 是的,我知道 A、B 和 X 的所有元素。我必须找出“n”的值。请解释一下知道所有矩阵,它如何使问题变得微不足道。
  • 有3个案例。案例一:AX=BX=0。在这种情况下,n 的任何值都是有效的。情况 2:BX!=0,但 AXBX 的标量倍数。在这种情况下,n 必须是 AX 的任何倍数 BX。案例 3:AX 不是 BX 的标量倍数。在这种情况下,n 的值是不可能的。鉴于您谈到特征值,复数,您似乎对这种情况有不同的心理模型。
  • 如果您已经愿意承担计算 AXBX 的计算负担,那么整个事情就可以简化为一个包含 1 个变量的 m*n 线性方程组,其中 m 和n 是AXBX 中的行数和列数。

标签: python numpy eigenvalue


【解决方案1】:

假设 X 未知,你想要

eigenvalues = scipy.linalg.eigvals(A, B)

如果你还想要特征向量,你想要

eigenvalues, eigenvectors = scipy.linalg.eig(A, B)

如果 X 已知,将其视为特征值问题没有多大意义。如果 X 是已知的,你不妨乘以看看 AX 是不是 BX 的倍数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-25
    • 2014-03-05
    • 1970-01-01
    • 2021-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多