Python中具有复杂指数元素的矩阵

时间:2019-06-12 14:30:06

标签: python numpy matrix complex-numbers

我一直在尝试创建这个哈密顿矩阵,我相信复杂的指数元素给我带来了麻烦。但是,我不知道如何解决它。

这是我到目前为止写的:

t = 2.7
a = 1

z = -t * np.exp(-j*k*a)

y = -t * np.exp(j*k*a)

H = np.matrix(([0, -t,0,-t,0,0,0,0,0,0,0,0,0,0],
    [- t, 0,- t ,0,0,0,0,0,0,0,0,0,0,0]
    [0, - t ,0,y,0,-t,0,0,0,0,0,0,0,0]
    [-t, 0,z,0,-t,0,0,0,0,0,0,0,0,0]
    [0, 0,0,- t ,0,- t ,0,-t,0,0,0,0,0,0]
    [0, 0,-t,0,0,-t,0,-t,0,0,0,0,0,0]
    [0, 0,0,0,0,- t ,0,y,0,-t,0,0,0,0]
    [0, 0,0,0,-t,0,z,0,- t,0,0,0,0,0]
    [0, 0,0,0,0,0,0,- t,0,- t,0,-t,0,0]
    [0, 0,0,0,0,0,-t,0,- t,0,- t,0,0,0]
    [0, 0,0,0,0,0,0,0,0,- t,0,y,0,-t]
    [0, 0,0,0,0,0,0,0,-t,0,z,0,- t,0]
    [0, 0,0,0,0,0,0,0,0,0,0,- t ,0,- t]
    [0, 0,0,0,0,0,0,0,0,0,-t,0,- t ,0]),dtype = np.complex)`

当我尝试运行单元格时,会出现此错误消息

TypeError:列表索引必须是整数或切片,而不是元组

矩阵必须是14x14的矩阵,这样我才能编码并获得特征值和特征向量。

过去,我使用np.array来构建矩阵,并且效果很好。但是,对于这一点却没有。可以看出,我也尝试过使用np.matrix。

1 个答案:

答案 0 :(得分:1)

尝试使用

np.array([[val1, val2], [val3, val4]]) 

代替

np.array(([val1, val2] [val3, val4])) ...

由于行之间的逗号而导致错误。不要忘记它们,否则Python会认为您正在尝试进行列表索引编制:

[1,2,3][0] 
Output: 1

[1,2,3], [0] 

输出:

([1,2,3], [0])