【问题标题】:large matrix diagonalization python大矩阵对角化python
【发布时间】:2015-10-09 11:53:51
【问题描述】:

我正在使用 scipy 中的 linalg 来获取 155X156 矩阵的特征值和特征向量。然而,与矩阵相比,特征值的顺序似乎是随机的。我希望第一个特征值对应于矩阵中的第一个数字。请看下面我的例程。我首先读取一个包含所有像这样的浮点数的文件(1_1o.dat)

 2533297.650278 -2373859.531153      
 37695.845843     425449.129032

然后我将它们作为数组读取

  [2533297.650278, -2373859.531153,      37695.845843,     425449.129032...]

然后重塑为 156X156 矩阵。我希望按照读取矩阵的顺序打印所有特征值和相应的特征向量。我知道最后我的特征值(156 个数字)应该从小到大列出,而不是像当前例程那样随机列出。当然,相应特征向量的顺序相同。谁能帮我解决这个问题?

谢谢。

from scipy import linalg
from scipy.linalg import *
file2 = open('1_1f.dat', 'w')                                   
with open('1_1o.dat', 'rU') as file:                            
    File = file.readlines()                                     
    nums2 = np.array(File)                                         
    nums2 = [float(i.rstrip('\n')) for i in nums2[0].split()]  
    nums2 = np.reshape(nums2, (156, 156))
    print eig(nums2)    
    print >> file2, eig(nums2)                         
    file2.close()   

【问题讨论】:

  • 您是否检查过numpy.linalg.det(nums2-eig(nums2)*numpy.eye(nums2.shape)) == 0 或者您如何得出这些值是随机顺序的结论?您是否检查了可以手动解决的最小示例?
  • 我在这里查看mathresource.iitb.ac.in/linear%20algebra/mainchapter10.3.html 并尝试这个小矩阵 a = np.array([[3, 1, -1], [1, 3, -1], [-1 , -1, 5]]) 打印 eig(a)。 Python 以 6、2、3 的顺序打印特征值,因为在网络上解决了这个问题,对角线是 2、3、6。我在 156X156 矩阵上观察到的相同变化(我知道最终结果应该是什么)。所以我不确定问题出在哪里,以及我是否误解了取消国籍的程序。

标签: python


【解决方案1】:

根据np.linalg.eig的文档部分:返回,w:(...,M)数组:

特征值,每个都根据其多重性重复。 特征值不一定是有序的。结果数组将始终是复杂类型。当 a 为实数时,得到的特征值将是实数(虚部为 0)或以共轭对形式出现

如何对值进行排序显示here 并复制以确保完整性:

import numpy as np
A = np.array([[3,1,-1], [1,3,-1], [-1,-1,5]])
w,v =  np.linalg.eig(A)
print w
idx = w.argsort()[::-1] #large to small
# idx = w.argsort() #small to large
w = w[idx]
v = v[:,idx]
print w # now they are ordered and you can iterate through your results to write them to your file

【讨论】:

    猜你喜欢
    • 2011-02-24
    • 2013-10-11
    • 2015-09-19
    • 2020-07-29
    • 1970-01-01
    • 2013-09-13
    • 1970-01-01
    • 1970-01-01
    • 2017-10-08
    相关资源
    最近更新 更多