Python 中具有复指数元素的矩阵
Matrix with complex exponential elements in Python
我一直在尝试创建这个哈密顿矩阵,我相信复杂的指数元素给我带来了麻烦。但是,我不知道如何解决它。
这是我到目前为止写的:
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)`
当我尝试 运行 单元格时,出现此错误消息
类型错误:列表索引必须是整数或切片,而不是元组
矩阵需要是 14x14 矩阵,这样我才能编码并获得特征值和特征向量。
过去我用np.array构建矩阵,效果很好。但是,对于这一个,它没有。可以看出,我也尝试过使用 np.matrix.
尝试使用
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])
我一直在尝试创建这个哈密顿矩阵,我相信复杂的指数元素给我带来了麻烦。但是,我不知道如何解决它。
这是我到目前为止写的:
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)`
当我尝试 运行 单元格时,出现此错误消息
类型错误:列表索引必须是整数或切片,而不是元组
矩阵需要是 14x14 矩阵,这样我才能编码并获得特征值和特征向量。
过去我用np.array构建矩阵,效果很好。但是,对于这一个,它没有。可以看出,我也尝试过使用 np.matrix.
尝试使用
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])