0 动机
这是我的第一篇博客,没有获奖感言,锻炼下markdown使用以及测试下hexo-renderer-kramed渲染器的稳定性倒是有必要的。
‘The limits of my language mean the limits of my world.’ —— Ludwig Wittgenstein
量子力学数学语言和代码语言之间的关系是什么?
1 基矢的表示
1.1 算符和量子态的计算机语言
1.2 有限空间的处理方法
2 时不变薛定谔方程
数学语言为:
计算机语言为:
其向量形式为$H\cdot\vec{\psi}=E\vec{\boldsymbol{\psi}}$.
3 时变薛定谔方程
数学语言为:
解方程得到:
$|\psi(t)\rangle=\hat{\mathcal{U}}(t_0;t)|\psi(t_0)\rangle$, 其中$\hat{\mathcal{U}}(t_0;t)$为传播子,对其用Magnus expansion得到$\hat{\mathcal{U}}(t_0;t)=\exp\left[\sum_{k=1}^\infty\hat{\Omega}_k(t_0;t)\right]$.
3.1 假设基矢时不变,去解方程
假设$\hat{\mathcal{H}}(t)=\sum_{ij}H_{ij}(t) |i\rangle\langle j|$, $|\psi(t)\rangle=\sum\psi_i(t)\mid i\rangle$, 带入时变薛定谔方程,可以得到
计算机语言为:
其向量形式为$\mathrm{i}\hbar\dot{\vec{\boldsymbol{\psi}}}(t)=H(t)\cdot\vec{\boldsymbol{\psi}}(t)$.
3.2 假设基矢时变,去解方程(用于相互作用图景)
相互作用下哈密顿量为:$\hat{\mathcal{H}}(t)=\hat{\mathcal{H}}_0+\hat{\mathcal{H}}_1(t)$. 假设$\hat{\mathcal{H}}_0$可以对角化,即$\hat{\mathcal{H}}_0|i\rangle=E_i|i\rangle$, 则时变基矢表达式为:$|i(t)\rangle=e^{-\mathrm{i}E_it/\hbar}|i\rangle$, 于是可以将量子态用时变基展开:
将之带入时变薛定谔方程,可以得到
计算机语言为:
3.3 特殊情况: $\left[\hat{\mathcal{H}}(t),\hat{\mathcal{H}}(t’)\right]=0 \forall(t,t’)$
可以直接解出薛定谔方程,其
计算机语言为:
3.4 特殊情况: 哈密顿量是时不变的
可以直接解出薛定谔方程,其
计算机语言为:
phi:= = Flatten[KroneckerProduct[ phi1, phi2, phi3]]
4 基矢的计算机构造
4.1 多维系统的描述
多维量子态的数学描述如下:
计算机语言为:
U[∆t_?NumericQ] := MatrixExp[-I*H*N[∆t]/~]多维算符的数学描述如下:
计算机语言为:
A = KroneckerProduct[a1, a2, a3]我们经常考察作用在某一成员空间的算符,这种算符的
计算机语言(假设为三体系统)为
H1 = KroneckerProduct[h1,
IdentityMatrix[Dimensions[h2]],
IdentityMatrix[Dimensions[h3]]];
H2 = KroneckerProduct[IdentityMatrix[Dimensions[h1]],
h2,
IdentityMatrix[Dimensions[h3]]];
H3 = KroneckerProduct[IdentityMatrix[Dimensions[h1]],
IdentityMatrix[Dimensions[h2]],
h3];
4.2 偏迹的描述
数学描述如下,假如有一个三体系统:
其中$\rho$是个6维张量。对B求偏迹的数学公式为:
可见这是对6维张量在2&5维上的压缩操作。
所以用计算机语言去表示偏迹,可以先把$\hat{\rho}_{\mathrm{ABC}}$重塑成6维张量:
R = ArrayReshape[ρABC, {dA,dB,dC,dA,dB,dC}]然后在2&5维上进行压缩操作:
S = TensorContract[R, {2,5}]最后再还原成密度矩阵形式(2维张量):
ρAC = Flatten[S, {{1,2}, {3,4}}]