【问题标题】:non-zero solution for linear equation with numpynumpy线性方程的非零解
【发布时间】:2012-11-08 22:23:24
【问题描述】:

如何使用 Numpy 获得此类方程的非平凡解?

r1 = r1 * 0.03  + r2 * 0.88 + r3 * 0.2425 + r4 * 0.03 + r5 * 0.03
r2 = r1 * 0.455 + r2 * 0.03 + r3 * 0.2425 + r4 * 0.03 + r5 * 0.88
r3 = r1 * 0.455 + r2 * 0.03 + r3 * 0.03   + r4 * 0.03 + r5 * 0.03
r4 = r1 * 0.03  + r2 * 0.03 + r3 * 0.2425 + r4 * 0.03 + r5 * 0.03
r5 = r1 * 0.03  + r2 * 0.03 + r3 * 0.2425 + r4 * 0.88 + r5 * 0.03

【问题讨论】:

  • 你写下了方程Ax=x...你希望得到什么解?所有特征值都等于 1 吗?
  • 这里有这个问题的答案。这个想法可能是搜索A*x=0 系统的零空间。即:stackoverflow.com/questions/5889142/…
  • 我认为您的意思是A-I 的空空间。方程的“零空间”不是一个东西。
  • 请注意,A*x=0 的空空间仅表示 A 的空空间。这里 是正确的。与标准线性代数一样,您需要向量使得 (A-kI)x = 0 的特征值 k。在这种情况下,您只需要k=1。但是你正在寻找A-kI 的空空间,notA。区别很重要,这就是为什么上面评论中链接的问题在这里不相关。这是基本的线性代数,所以当有人问到寻找特征值时,你不应该和“找到零空间......”在一起。太傻了……这是定义。

标签: python numpy linear-algebra linear-equation


【解决方案1】:

如果您只是在寻找执行此操作的库函数,只需使用 numpy.linalg.eig 并查找特征值等于 1 的特征向量。如果您需要实现迭代求解器,可能幂方法是最好的主意为了这。它应该很简单,因为特征值为 1 的向量也是特征值最大的向量。 Krylov 子空间方法(Rayleigh 迭代)也应该可以很好地解决这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-02
    • 1970-01-01
    • 2021-08-16
    • 1970-01-01
    • 2021-12-13
    相关资源
    最近更新 更多