模型和能带, 学术

泡利矩阵张量积的顺序对本征值的影响

之前相关的几篇:

张量积是不满足交换律的,但交换顺序后描述的仍然是同一个物理体系。这里通过数值的方式,观察泡利矩阵张量积的顺序对本征值的影响。

代码如下(调用开源项目Guan:https://py.guanjihuan.com):

"""
This code is supported by the website: https://www.guanjihuan.com
The newest version of this code is on the web page: https://www.guanjihuan.com/archives/12731
"""

import numpy as np
import guan

a_00 = np.random.uniform(-1, 1)
a_0x = np.random.uniform(-1, 1)
a_0y = np.random.uniform(-1, 1)
a_0z = np.random.uniform(-1, 1)

a_x0 = np.random.uniform(-1, 1)
a_xx = np.random.uniform(-1, 1)
a_xy = np.random.uniform(-1, 1)
a_xz = np.random.uniform(-1, 1)

a_y0 = np.random.uniform(-1, 1)
a_yx = np.random.uniform(-1, 1)
a_yy = np.random.uniform(-1, 1)
a_yz = np.random.uniform(-1, 1)

a_z0 = np.random.uniform(-1, 1)
a_zx = np.random.uniform(-1, 1)
a_zy = np.random.uniform(-1, 1)
a_zz = np.random.uniform(-1, 1)

hamiltonian_1 = \
    a_00*guan.sigma_00()+a_0x*guan.sigma_0x()+a_0y*guan.sigma_0y()+a_0z*guan.sigma_0z()+ \
    a_x0*guan.sigma_x0()+a_xx*guan.sigma_xx()+a_xy*guan.sigma_xy()+a_xz*guan.sigma_xz()+ \
    a_y0*guan.sigma_y0()+a_yx*guan.sigma_yx()+a_yy*guan.sigma_yy()+a_yz*guan.sigma_yz()+ \
    a_z0*guan.sigma_z0()+a_zx*guan.sigma_zx()+a_zy*guan.sigma_zy()+a_zz*guan.sigma_zz()
eigenvalue_1 = guan.calculate_eigenvalue(hamiltonian_1)

hamiltonian_2 = \
    a_00*guan.sigma_00()+a_0x*guan.sigma_x0()+a_0y*guan.sigma_y0()+a_0z*guan.sigma_z0()+ \
    a_x0*guan.sigma_0x()+a_xx*guan.sigma_xx()+a_xy*guan.sigma_yx()+a_xz*guan.sigma_zx()+ \
    a_y0*guan.sigma_0y()+a_yx*guan.sigma_xy()+a_yy*guan.sigma_yy()+a_yz*guan.sigma_zy()+ \
    a_z0*guan.sigma_0z()+a_zx*guan.sigma_xz()+a_zy*guan.sigma_yz()+a_zz*guan.sigma_zz()
eigenvalue_2 = guan.calculate_eigenvalue(hamiltonian_2)


print()
print('Eigenvalue:')
print(eigenvalue_1)
print(eigenvalue_2)
print()
print('Difference of matrices:')
print(hamiltonian_1-hamiltonian_2)
print()
# print(hamiltonian_1)
# print(hamiltonian_2)

运算结果:

数值结论:矩阵形式不同,本征值相同。

物理意义:说明不管哪个自由度作为张量积嵌套的“大空间”,都不影响结果。即使哈密顿量形式不一样,但物理上是等价的。

本篇匿名网友的评论:其实把哈密顿量中的Pauli矩阵的直积顺序改变一下,也就是更改了一下构建哈密顿量基矢时候的顺序,比如改变前是(orbit-a-spin-up,orbit-b-spin-up,orbit-a-spin-down,orbit-b-spin-down)改变成(orbit-a-spin-up,orbit-a-spin-down,orbit-b-spin-up,orbit-b-spin-down); spin\otimes orbit —–> orbit\otimes spin

测试2:如果只是改变一个顺序,例如仅仅把guan.sigma_0x()改成guan.sigma_x0(),代码如下:

"""
This code is supported by the website: https://www.guanjihuan.com
The newest version of this code is on the web page: https://www.guanjihuan.com/archives/12731
"""

import numpy as np
import guan

a_00 = np.random.uniform(-1, 1)
a_0x = np.random.uniform(-1, 1)
a_0y = np.random.uniform(-1, 1)
a_0z = np.random.uniform(-1, 1)

a_x0 = np.random.uniform(-1, 1)
a_xx = np.random.uniform(-1, 1)
a_xy = np.random.uniform(-1, 1)
a_xz = np.random.uniform(-1, 1)

a_y0 = np.random.uniform(-1, 1)
a_yx = np.random.uniform(-1, 1)
a_yy = np.random.uniform(-1, 1)
a_yz = np.random.uniform(-1, 1)

a_z0 = np.random.uniform(-1, 1)
a_zx = np.random.uniform(-1, 1)
a_zy = np.random.uniform(-1, 1)
a_zz = np.random.uniform(-1, 1)

hamiltonian_1 = \
    a_00*guan.sigma_00()+a_0x*guan.sigma_0x()+a_0y*guan.sigma_0y()+a_0z*guan.sigma_0z()+ \
    a_x0*guan.sigma_x0()+a_xx*guan.sigma_xx()+a_xy*guan.sigma_xy()+a_xz*guan.sigma_xz()+ \
    a_y0*guan.sigma_y0()+a_yx*guan.sigma_yx()+a_yy*guan.sigma_yy()+a_yz*guan.sigma_yz()+ \
    a_z0*guan.sigma_z0()+a_zx*guan.sigma_zx()+a_zy*guan.sigma_zy()+a_zz*guan.sigma_zz()
eigenvalue_1 = guan.calculate_eigenvalue(hamiltonian_1)


# only guan.sigma_0x() is changed to guan.sigma_x0()
hamiltonian_3 = \
    a_00*guan.sigma_00()+a_0x*guan.sigma_x0()+a_0y*guan.sigma_0y()+a_0z*guan.sigma_0z()+ \
    a_x0*guan.sigma_x0()+a_xx*guan.sigma_xx()+a_xy*guan.sigma_xy()+a_xz*guan.sigma_xz()+ \
    a_y0*guan.sigma_y0()+a_yx*guan.sigma_yx()+a_yy*guan.sigma_yy()+a_yz*guan.sigma_yz()+ \
    a_z0*guan.sigma_z0()+a_zx*guan.sigma_zx()+a_zy*guan.sigma_zy()+a_zz*guan.sigma_zz()
eigenvalue_3 = guan.calculate_eigenvalue(hamiltonian_3)

print()
print('Eigenvalue:')
print(eigenvalue_1)
print(eigenvalue_3)
print()

运算结果:

结论:本征值结果不一致。

1,166 次浏览

【说明:本站主要是个人的一些笔记和代码分享,内容可能会不定期修改。为了使全网显示的始终是最新版本,这里的文章未经同意请勿转载。引用请注明出处:https://www.guanjihuan.com

2 thoughts on “泡利矩阵张量积的顺序对本征值的影响”

  1. 其实把哈密顿量中的Pauli矩阵的直积顺序改变一下, 也就是更改了一下构建哈密顿量基矢时候的顺序,比如改变前是(orbit-a-spin-up,orbit-b-spin-up,orbit-a-spin-down,orbit-b-spin-down)改变成(orbit-a-spin-up,orbit-a-spin-down,orbit-b-spin-up,orbit-b-spin-down); spin\otimes orbit -----> orbit\otimes spin

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code