如果汉弥尔顿包含一些常数,如何计算特征值

时间:2018-08-07 12:42:22

标签: python numpy

我的哈密顿量是以下形式的矩阵。我想从此hamiltonain计算特征值。但是我不知道如何处理U和T?我应该把它们放1吗?

`H=[[0 t t 0 0 0]
[t U 0 t 0 0]
[t 0 U t 0 0]
[0 t t 0 0 0]
[0 0 0 0 0 0]
[0 0 0 0 0 0]]`

1 个答案:

答案 0 :(得分:0)

Sympy模块提供对符号值的操作

from sympy import *
U = symbols('U')
t = symbols('t') 
H = Matrix([[0, t, t, 0, 0, 0], [t, U, 0, t, 0, 0], 
              [t, 0, U, t, 0, 0], [0, t, t, 0, 0, 0], 
              [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]])

H.eigenvects() # eigenvectors
H.eigenvals() # eigenvalues

eigenvals返回{U: 1, U/2 - sqrt(U**2 + 16*t**2)/2: 1, U/2 + sqrt(U**2 + 16*t**2)/2: 1, 0: 3},它是特征值及其多重性的字典: