【发布时间】:2016-09-07 09:08:06
【问题描述】:
我需要找到这个矩阵的特征值,以及类似的矩阵(空格表示分隔符):
[[1.0000 -0.7071*I 0 -0.7071*I 0 0 0 0 0]
[0.7071*I 0.5000 -0.7071*I 0 -0.70710*I 0 0 0 0]
[0 0.7071*I 1.0000 0 0 -0.7071*I 0 0 0]
[0.7071*I 0 0 0.5000 -0.7071*I 0 -0.7071*I 0 0]
[0 0.7071*I 0 0.7071*I 0 -0.7071*I 0 -0.7071*I 0]
[0 0 0.7071*I 0 0.7071*I 0.5000 0 0 -0.7071*I]
[0 0 0 0.7071*I 0 0 1.0000 -0.7071*I 0]
[0 0 0 0 0.7071*I 0 0.7071*I 0.5000 -0.7071*I]
[0 0 0 0 0 0.7071*I 0 0.7071*I 1.000]]
错误:
numpy.linalg.eigvalsh() 给出错误“无法将复数转换为浮点数”。
可能是什么原因,如何找到特征值?
【问题讨论】:
-
请以可用的方式发布您的矩阵
-
在文档 (docs.scipy.org/doc/numpy-1.10.1/reference/generated/…) 中明确指出
numpy.linalg.eigvalsh仅适用于实数或厄米特矩阵。你的很复杂。为什么它应该起作用?您必须按照@Glostas 下面建议的方式进行操作 -
这是一个赫米亚矩阵。
-
@AdityaVijaykumar 因此,如果您尝试像此处(docs.scipy.org/doc/numpy/reference/generated/…)那样计算其共轭转置并测试两者是否相等,您将得到
True回来吗?对角线必须是真实的才能成为厄米特 -
在将奇怪的
I转换为python 复杂1j并将其全部放入np.ndarray之后,我在您的数据上使用np.linalg.eigvalsh没有问题。发布完整的代码,因为您的输入似乎有问题。是的,上面的矩阵是厄米特的。
标签: python numpy matrix linear-algebra eigenvalue