【问题标题】:How to find eigenvalues and eigenvector in python without Numpy library?如何在没有 Numpy 库的情况下在 python 中查找特征值和特征向量?
【发布时间】:2021-01-26 16:40:57
【问题描述】:

我正在尝试在没有 Numpy 的情况下在 python 中查找特征值和特征向量,但我不知道如何计算 det(A-lemda*I) 以查找特征值。

【问题讨论】:

  • 没有 numpy 并且对于大于 2 的矩阵,您需要做很多工作。你可以试试sympy,但后面会发生更多的魔法。请注意,除了纯计算之外,数值稳定性也是一个重要问题。
  • 欢迎来到 SO,苛刻的帕特尔。您是想为一般矩阵 A 还是为一个非常特殊的矩阵编写例程?我认为你应该更具体地说明你的目标是什么。特征值和特征向量可以通过符号方式找到,也可以使用特征值求解程序以数值方式找到。
  • 是的,我正在尝试为通用矩阵 A 而不是为任何特定矩阵编写,但我想为 3*3 矩阵编写。

标签: python numpy matrix scipy linear-algebra


【解决方案1】:

如果你真的想避免使用 numpy.linalg(为什么?这肯定是某种学习问题),你可以例如实现一个 qr 算法的变体:将 A 分解为 Q@R 的乘积,乘以 R@Q,重复直到收敛。

但是,如果这确实是一个学习练习,那么最好的选择是选择一本关于数值线性代数的教科书。 如果不是,那么请记住,您非常不太可能优于(在任何性能定义中)numpy.linalg 包装的久经考验的 lapack 例程。

【讨论】:

    猜你喜欢
    • 2013-11-04
    • 1970-01-01
    • 1970-01-01
    • 2014-05-11
    • 2011-12-11
    • 2017-10-21
    • 2020-07-31
    • 2018-12-30
    • 1970-01-01
    相关资源
    最近更新 更多