巨正则系综与量子统计

巨正则系综与量子统计#

$$\newcommand\ee{\mathrm{e}} \newcommand\HH{\mathcal{H}} \newcommand\dd{\mathrm{d}}$$

巨配分函数#

我们知道对于粒子数为 \(N\) 的系统, 系统整体的量子态 \(\ket{r} \in \HH_N\), \(\HH_N\) 是一个希尔伯特空间, 它与系统的粒子数 \(N\) 有关. 系统的正则配分函数为

$$Z = \sum_r \ee^{-\beta E_r}$$

其中 \(E_r\) 代表系统能量 \(\hat{H} \ket{r} = E_r \ket{r}\), \(\sum_r\) 表示对系统的全部量子态, 即全体 \(\ket{r}\) 求和.

当把目光投向粒子数 \(N\) 可变的系统时, 我们转而使用巨正则系综, 其配分函数如下

$$\Xi = \sum_r \ee^{-\beta (E_r - \mu N_r)}$$

这时因为 \(N\) 不再固定, 系统的量子态 \(\ket{r}\) 可能存在于任意 \(\HH_N\), \(\forall N \in \mathbb{N}\). 换言之, \(\ket{r} \in \HH_0 \oplus \HH_1 \oplus \cdots\), 这是一个福克空间. 为了描述系统的状态, 我们除了需要总能量 \(E_r\) 外, 还需要知道此时系统内包含的粒子数 \(\hat{N} \ket{r} = N_r \ket{r}\).

从绝对零度不可到达原理推导能斯特定理

从绝对零度不可到达原理推导能斯特定理#

我们知道热力学第三定律有好几种被认为等价的表述, 最著名的就是绝对零度不可到达原理能斯特定理:

绝对零度不可到达原理 (Unattainability Principle, 下面简称 Ua. P.)

不可能通过有限的步骤使物体温度降低到绝对零度.

能斯特定理 (Nernst Heat Theorem, 下面简称 N. H. T.)

凝聚系的熵在等温过程中的改变随绝对温度趋于 0.

N. H. T. 推导 Ua. P. 是很简单的, 但反之则不然. 一般来说, 从 Ua. P. 推导出 N. H. T. 需要附加一些条件, 这些条件可能由实验或其他理论给出; 并且推导的过程很容易出现逻辑上的漏洞. 这是因为 Ua. P. 是以否定的形式给出的, 这使得对它的应用颇为棘手, 尤其是在使用反证法时. 我们不能确定, 究竟是结论与原命题出现了矛盾, 还是推导过程本身就不能存在, 因为违反了 Ua. P.

如果我们改写一下 Ua. P., 使其写为如下的形式:

只能通过无穷次步骤使物体温度降低到绝对零度. (Ua. P. (II))

则这种尴尬局面就迎刃而解了. 假如我们的确构造了一个使用有限次步骤 (例如有限次等温与绝热过程) 达到 0K 的方法, 就能用反证法尝试从 Ua. P. (II) 推导出 N. H. T.

量子力学中的微扰理论

量子力学中的微扰理论#

大多数量子系统都是不可解的, 因为其哈密顿量 \(\hat{H}\) 中的势能项 \(\hat{V}\) 过于复杂, 使得薛定谔方程 \(\hat{H} \ket{\psi} = (-\frac{\hbar^2}{2m} \nabla^2 + \hat{V}) \ket{\psi} = E \ket{\psi}\) 无解析解. 人们发展出一套方法, 使得我们能通过近似手段, 从一个已知可解的系统出发, 近似得到期望求解系统的能量与对应的态矢, 这套方法被称为微扰论.

具体而言, 我们假定所求系统的哈密顿量 \(\hat{H}\) 可以被分为 \(\hat{H} = \hat{H}_0 + \hat{V}\), 其中 \(\hat{H}_0\) 精确可解:

$$\hat{H}_0 \ket{n}_0 = E_0 \ket{n}_0$$

而 \(\hat{V}\) 被称为一个微扰, 这说明它一般而言相较于 \(\hat{H}_0\) 是微小的, 以至于加入这一项后, 对系统能量和态矢的改变以小量的形式给出:

$$E = E_0 + E_1 + \cdots$$

$$\ket{n} = \ket{n}_0 + \ket{n}_1 + \cdots$$

在这篇文章中, 我们将讨论不含时情况下, 非简并与简并微扰理论. 所使用的符号如下约定: 对于量子数 \(n\) 对应的每一阶态矢修正, 用 \(\ket{n}_i\) 表示, \(i\) 代表修正的阶数; 每一阶能量修正, 使用 \(E^\mathrm{n}_i\) 表示, \(n\) 代表对应的量子数, 在不至于引起混淆的情况下, 上标 \(n\) 将被隐去, 简写为 \(E_i\).

Delta 机器人的动力学建模

Delta 机器人的动力学建模#

Delta 机器人 是一种三自由度的常用并联型机器人. 由于其特殊设计, 能够保证其顶板始终平行于底板, 只有三个平动自由度而无转动. 这一点很容易证明, 此处不再赘述. 因此我们将按下面的模型讨论

机器人模型

机器人有三个可以独立活动的支部, 编号为 \(1\), \(2\), \(3\), 按右手顺序排列, 彼此相隔 \(\frac{2\pi}{3}\). 我们之后的讨论将更多只限于同一个支部, 在不引起误会的情况下, 将省略下标以求简洁. 此时我们讨论的将是适用于三支的通用关系.

约定粗体 \(\mathbf{L}\) 代表向量, 非粗体的相同字母代表其模长 \(L := \|\mathbf{L}\|\). 在模型中, \(L_i\), \(i = 1,2,3\) 都是等长的, 因此都记为 \(L\); \(g\) 与 \(l\) 同理. 单位坐标轴方向为 \(\hat{\mathbf{i}}\), \(\hat{\mathbf{j}}\), \(\hat{\mathbf{k}}\); \(\hat{\cdot}\) 表示归一化. \(P\) 为关心的末端位置.

正向运动学#

正向运动学解决的问题是如何通过已知的广义坐标 \(\theta_i\), \(i = 1,2,3\) 来得到 \(P\) 的位置. 我们将从底部开始, 逐步地依次求解 \(B\), \(M\) 直到 \(P\) 的位置.

中途向量#

\(\mathbf{g}\) 与 \(B\) 的求解是极为简单的. 记方位角 \(\phi\) 为三支在水平面上的偏角, 有 \(\phi_1 = 0\), \(\phi_2 = \frac{2\pi}{3}\), \(\phi_3 = \frac{4\pi}{3}\). 于是

带有单位的物理计算

带有单位的物理计算#

Mathematica#

Mathematica 中可以带单位计算; 同样, 可以获取任意物理常数, 并以任意精度进行计算.

要使用物理常数, 首先使用 Quantity 函数获取它并保存在变量里, 接着就可以在运算中使用这一常数的带有单位的精确值. 例如

h = Quantity["PlanckConstant"]

获取了普朗克常量的值并保存在变量 h 中.

如果想要知道该常数在国际单位制下的准确值, 可以使用函数 UnitConvert. 例如

UnitConvert@Quantity["PlanckConstant"]

将给出结果

$$\frac{132521403}{200000000000000000000000000000000000000000} \mathrm{kg ~ m^2 / s}$$

要定义带有单位的变量, 依旧使用 Quantity, 只需如下所示

Quantity[600*^6, "Hz"] (* 给出 600000000 Hz *)

Quantity[1, "kg m/s^2"] (* 给出 1 kg m/s^2 *)

软件在解析单位时较慢, 但识别较为精确.

还可以使用语法 Ctrl+= 输入, 这其实是自然语言输入, 可以替换函数 Quantity, 只需按下 Ctrl+= 后输入想要的常数或带单位量即可. 例如 600*^6Hz, 1 kg m/s^2, Planck Constant 等等, 都可被正常识别.

量子力学中的角动量

量子力学中的角动量#

在量子力学中, 除了我们能够想象的沿轨道运动和绕自转轴转动的公转角动量与自转角动量, 这两者分别称为轨道角动量与自旋角动量, 对于任意 \(\mathbf{J}\), 只要其分量 \(J_\alpha\) 满足

$$ [J_\alpha, J_\beta] = \mathrm{i} \hbar \, \varepsilon_{\alpha \beta \gamma} \, J_\gamma $$

则我们称它为一种角动量. 角动量都具有以下对易关系

$$[\mathbf{J}^2, J_\alpha] = 0$$

这说明角动量的值与某一个角动量分量可以被同时测得, 一般我们选择 \(z\) 轴分量 \(J_z\).

我们将角动量值 \(\mathbf{J}^2\) 与 \(z\) 轴角动量 \(J_z\) 的共同本征态记作 \(\ket{\lambda, m}\), 其中 \(\mathbf{J}^2 \ket{\lambda, m} = \lambda \hbar^2 \ket{\lambda, m}\), \(J_z \ket{\lambda, m} = m \hbar \ket{\lambda, m}\).

阶梯算符#

定义两个重要的阶梯算符 \(J_\pm := J_x \pm \mathrm{i} J_y\). 这两个算符不是厄米算符, 因此它不能对应一种可观测的力学量. 我们可以发现它的对易关系

密度流体的动态模拟

密度流体的动态模拟#

我们将不可压缩流体的模拟分为两类, 一类聚焦于流体本身, 另一类则聚焦依托于流场的标量场. 前者称为体积流体, 如水与空气二相的模拟, 我们更关心流体本身的运动; 后者称为密度流体, 如充斥于密闭容器中的浊液的模拟, 我们关注的是溶质的物质的量密度这一标量. 需要注意的是这两个词仅为本篇文章的约定, 而非正式的学术用语.

本文讲述了不可压缩密度流体的运动学模拟. 纵览符合这一条件的流场, 如附加温度场, 容质的密度场等, 其标量场都耦合于流体的速度场. 这是指标量会被流体输运, 例如温度的对流; 标量场同时可以反过来影响速度场, 例如渗透压导致的流体运动, 但我们一般不认为它会破坏流体的不可压缩性, 否则这将导致被求解方程的形式变得极端复杂.

写出不可压缩流体的纳维 - 斯托克斯方程:

$$\nabla \cdot \mathbf{u} = 0$$

$$\frac{\mathrm{D} \mathbf{u}}{\mathrm{D} t} = -\nabla \frac{p}{\rho} + \nu \nabla^2 \mathbf{u} + \mathbf{a}$$

前者是质量守恒定律对应的连续性方程在不可压缩, 即 \(\rho \equiv \mathrm{const}\) 时的推论; 后者是牛顿第二定律. 其中 \(\nu\) 是运动粘度, \(\nu := \mu/\rho\), \(\mu\) 是动力粘度. 流体力学中, 我们一般用 \(\mathbf{u}\) 代表速度.

后式中出现的随质导数, 或称物质导数 \(\frac{\mathrm{D}}{\mathrm{D} t} := \frac{\partial}{\partial t} + (\mathbf{u} \cdot \nabla)\). 这一式中前者表示欧拉导数; 后者表示拉格朗日导数, 即由于流体的运动带来的变化, 这个效应称为移流. 将其拆开可以写为

使用泰勒展开的运动预测

使用泰勒展开的运动预测#

在 \(n\) 维空间运动的物体, 其运动方程总可以写成 \(n\) 个关于时间 \(t\) 的参数方程.

进一步地, 将关于 \(t\) 的参数方程泰勒展开为关于 \(t\) 的多项式函数, 可以显式得到其表达式, 并且可以计算出超过当前时刻, 也就是未来时刻的位置. 当超出当前时刻的时间不长, 运动轨迹是平滑的且分辨率足够高时, 可以认为此级数收敛于实际的位置.

泰勒展开所需的各阶导数可以通过数值计算获得.

参数获取#

假如我们已经获得位置关于时间的一系列数据 \(\{r_n\}\), 其中 \(r_n\) 是当前时刻的数据. 它也可以被记作 \(r_n^{(0)}\). 对应的时刻记为 \(t_n\), 或 \(t_n^{(0)}\).

根据函数导数的公式, 自然地我们想到当前时刻位置的一阶导数为 \(r_n^{(1)} = \frac{r_n - r_{n-1}}{\Delta t_n}\), 其中 \(\Delta t_n := t_n - t_{n-1}\), 以及过去时刻的导数同理.

于是, 我们获得了 \(n-1\) 个一阶导数组成的序列 \(\{r_n^{(1)}\}\). 进一步可以计算二阶乃至 \(n-1\) 阶导数:

$$r_n^{(m)} = \frac{r_n^{(m-1)} - r_{n-1}^{(m-1)}}{\Delta t_n^{(m-1)}}$$$$\Delta t_n^{(m)} = \frac{\Delta t_n^{(m-1)} + \Delta t_{n-1}^{(m-1)}}{2}$$

另外 \(\Delta t_n^{(0)} := \Delta t_n\).

抛体运动弹道解算

抛体运动弹道解算#

模型#

本文考虑使用 线性阻力 模型. 事实上, 在空气中运动的阻力应该由 二次阻力 描述, 关于二者的对比将在 后文 给出.

之所以使用线性阻力, 是因为如此一来物体的运动微分方程

$$m \dot{\mathbf{v}} = -k \mathbf{v} - m g \hat{\mathbf{j}}$$

有封闭解. 进一步令 \(\mu := \frac{k}{m}\), 上式化为

$$\dot{\mathbf{v}} = -\mu \mathbf{v} - g \hat{\mathbf{j}}$$

容易解得

$$\mathbf{v} = \mathrm{e}^{-\mu t} \mathbf{v}_0 - \mu^{-1} (1-\mathrm{e}^{-\mu t}) g \hat{\mathbf{j}}$$

积分得

$$ \mathbf{r} = \mathbf{r}_0 - \mu^{-1} (1-\mathrm{e}^{-\mu t}) \mathbf{v}_0 - \mu^{-2} (\mu t + \mathrm{e}^{-\mu t} - 1) g \, \hat{\mathbf{j}} $$

这就是线性阻力情况下的运动方程. 它也可以很轻松地分解为两个方向来运算.

与二次阻力的对比#

当速度较大 (\(\sim 20 ~ \mathrm{m/s}\)) 时, 弹丸在空气中运动的 雷诺数 很大, 并不适用于线性阻力. 但是在上升过程中, 速度逐渐下降, 雷诺数也逐渐变小, 于是在上升阶段用线性阻力模型的误差也不是很大.