H=sum_ic_idagger ci用matlab写成矩阵形式
假设我们有 $N$ 个粒子,那么 $H$ 矩阵的维度是 $N\times N$。我们可以将 $c_i$ 和 $c_i^\dagger$ 看作是基矢量,那么 $H$ 矩阵的元素可以表示为:
$$ H_{ij}=c_i^\dagger c_j\sum_k c_k^\dagger c_k $$
其中 $\sum_k c_k^\dagger c_k$ 可以看作是常数项。因此,我们只需要计算 $c_i^\dagger c_j$ 就可以得到 $H_{ij}$ 的值。
根据费米子对易关系,我们有:
$$ {c_i,c_j^\dagger}=c_ic_j^\dagger+c_j^\dagger c_i=\delta_{ij} $$
$$ {c_i,c_j}={c_i^\dagger,c_j^\dagger}=0 $$
因此,$c_i^\dagger c_j$ 可以表示为:
$$ c_i^\dagger c_j=\begin{cases} 1,& i=j \ 0,& i\neq j \end{cases} $$
那么,$H$ 矩阵可以表示为:
$$ H=\sum_ic_i^\dagger ci=\begin{pmatrix} c_1^\dagger c_1 & c_1^\dagger c_2 & \cdots & c_1^\dagger c_N \ c_2^\dagger c_1 & c_2^\dagger c_2 & \cdots & c_2^\dagger c_N \ \vdots & \vdots & \ddots & \vdots \ c_N^\dagger c_1 & c_N^\dagger c_2 & \cdots & c_N^\dagger c_N \ \end{pmatrix} $$
在 MATLAB 中,我们可以使用矩阵乘法和转置来计算 $H$:
N = 5; % 粒子数
c = zeros(N, N); % 初始化 c 矩阵
for i = 1:N
c(i,i) = 1;
end
H = c'*c;
``
原文地址: https://www.cveoy.top/t/topic/feO7 著作权归作者所有。请勿转载和采集!