最近,给学生布置一道习题,模拟正方格子上不回头无规行走,计算其平均末端距平方。这个问题有解析解,在我自己大约20年前写的讲义上,给了一个解析结果,我完全想不起来这个结果是怎么来的。既然是布置的作业,自己也应该做一遍,于是,写了几行代码,运行了几分钟,结果就出来了。不幸的是,计算结果与我所给的那个解析结果不符。当然,一般的行为是对的 $\langle R^2 \rangle \propto N a^2$, 这里, $N$ 是链长, $a$为格点常数。但系数与讲义上的结果不一样。计算结果和讲义上的公式,至少有一个是错的。程序太简单,不大可能出错,但基于刚刚犯过一个简单的错误,所以还是仔细斟酌了算法,检查了代码,确认无误。那么,公式大概是错了,因讲义上没有任何关于此公式来历的信息,遂上网搜索,搜到若干结果,都是不带系数的正比关系。于是,决定坐下来认真地推导一下这个公式。先是针对正方格子,很快能得到结果,然后注意到对于一般的格子也成立,所得系数只与格点的最近邻数$z$有关且关系非常简单。结果是:
在$N \ge 2$时, 末端距平方的平均值为
$$
\langle R^2 \rangle =\frac{z}{z-2} Na^2 – \frac{2}{(z-2)^2} \frac{(z-1)^N -1}{(z-1)^{N-1}} a^2 \qquad(1)
$$
当$ N \to \infty $时为
$$
\langle R^2 \rangle =\frac{z}{z-2} Na^2 \qquad(2)
$$
下面是推导过程,也许有更好的推导方法,这里的推导过程基本上没有任何技巧。先考察正方格子,末端距矢量$\vec R$为
$$
\vec R = \sum_{i=1}^N \vec r_i
$$
其平方的平均为
$$\langle R^2\rangle = \sum_{i=1}^N \sum_{j=1}^N \langle \vec r_i \cdot \vec r_j \rangle
=\sum_{i=1}^N a^2 +2\sum_{j=2}^N \sum_{i=1}^{j-1} \langle \vec r_j \cdot \vec r_i\rangle
$$
第一项为$ N a^2 $。对于简单的无规行走(RW),第二项为0, 得到 $\langle R^2\rangle = Na^2$, 这个结果在很多教材和文献中都能看到。对于不回头的无规行走(NRRW), 第二项不为0. 现在计算第二项,为简单起见,设$a=1$。从$i=j-1$开始,$\vec r_j$相对于$\vec r_{j-1}$, 有三种可能,一是相同,另两个分别是向左和向右转$\pi/2$,与$\vec r_{j-1}$点乘的结果分别是$1, 0, 0$,平均为$\frac13$; 再看$i=j-2$,相对于$\vec r_{j-2}$, $\vec r_{j-1}$有三种取向,对于每个$\vec r_{j-1}$的取向,$\vec r_j$有三个取向,共有9种,但$\vec r_j$只有四种可能,直接计算得到,与$\vec r_{j-2}$一致的有三个,其他三种各有二个,与$\vec r_{j-2}$点乘,并相加,得到$1$, 除以$9$,平均值为$\frac19 =\frac1{3^2}$; 对于$i=j-3$,计算得到的平均值为$ \frac1{3^3}$, 由此自然可以推断,对于$i=j-k$, $\langle \vec r_i \cdot \vec r_j \rangle =\frac1{3^k}$, 这样
$$
\sum_{j=2}^N \sum_{i=1}^{j-1} \langle \vec r_j \cdot \vec r_i\rangle=\sum_{j=2}^N \sum_{i=1}^{j-1} \frac1{3^k}=N-\frac12 \frac{3^N-1}{3^{N-1}}
$$
与第一项相加, 恢复$a^2$,得到
$$
\langle R^2\rangle =2 N a^2 -\frac12 \frac{3^N-1}{3^{N-1}}a^2 \qquad(3)
$$
当$N$比较大时
$$
\langle R^2\rangle =2 N a^2 \qquad(4)
$$
上面的两个公式,与模拟结果完全符合。
计算加上猜测,得到了正方格子上NRRW末端距平方平均的公式。 能不能得到一般的公式呢? 想了两天,隐约想起Flory的书上讨论过类似问题,可惜书不在手边,而经常下载书的两个网站似乎都出问题了,上不去,所以也找不到电子版。搜了几篇Flory的文章,大致找到了思路(看到这里的同学,若手边有Flory的书,可以查一下,是否有这个公式的推导?)。 考虑一般的三维情况, $\vec r_j$可以表示为一个列矩阵
$$
\vec r_j = \left[\begin{matrix} x_j \\ y_j \\z_j \end{matrix} \right]
$$
从$\vec r_{j-1}$到$\vec r_j$, 经由一旋转完成,记这个旋转的变换矩阵为$T_{\vec \theta}$, 则有
$$
\left[\begin{matrix} x_j \\ y_j \\z_j \end{matrix} \right] = T_{\vec \theta}\left[\begin{matrix} x_{j-1} \\ y_{j-1} \\z_{j-1} \end{matrix} \right]
$$
或简单写成
$$
\vec r_j = T_{\vec \theta} \vec r_{j-1} \qquad(5)
$$
这些$T_{\vec \theta}$构成一个群,不过这里并不需要此性质。上面的结论对于二维也成立,所以接下来的分析与空间维数无关。对于简单的无规行走,$\sum_{\vec \theta} \vec r_j =0$, 这样就有, 当$i\ne j$时
$$
\langle \vec r_i \cdot \vec r_j\rangle =\frac1z \sum_{\vec \theta } \vec r_i \cdot \vec r_j =\vec r_i \cdot \frac1z \sum_{\vec \theta } \vec r_j =0
$$
此处, $z$是最近邻数, $\vec\theta$的取值使得从一个矢量出发,能够转动到所有可能的矢量。由
$$\sum_{\vec \theta} \vec r_j = \sum_{\vec \theta} T_{\vec \theta} \vec r_{j-1} =0
$$
此结果对于任一 $\vec r_{j-1}$成立, 则有 $\sum_{\vec \theta} T_{\vec \theta} =0$。对于NRRW,所有可能的$\vec r_j$是扣除$-\vec r_{j-1}$外所有简单无规行走的可能转动。即
$$
\sum_{\vec \theta}{}’ \vec r_j -\vec r_{j-1}= \sum_{\vec \theta} {}’ T_{\vec \theta} \vec r_{j-1} – \vec r_{j-1}=0
$$
或
$$
\sum_{\vec \theta} {}’ T_{\vec \theta} \vec r_{j-1} = \vec r_{j-1}
$$
这里带撇的求和是对除去立刻折返的所有可能转动求和,即对NRRW的所有可能的行走方向求和。上式对任一$\vec r_{j-1}$成立,于是就有
$$
\sum_{\vec \theta} {}’ T_{\vec \theta} = I \qquad(6)
$$
$I$为恒等变换,或绕任意轴的转动角度为$0$的转动。(6)式的求和有$z-1$项, 得到NRRW的转动矩阵的平均值为
$$
\langle T_{\vec \theta}\rangle = \frac1{z-1}\sum_{\vec \theta} {}’ T_{\vec \theta} = \frac1{z-1}I \qquad(7)
$$
现在考虑NRRW, 若$\vec r_j$经由$\vec r_{j-k}$行走$k$步而来, 则
$$
\vec r_j = T_{\vec \theta_k} T_{\vec \theta_{k-1}}\cdots T_{\vec \theta_1} \vec r_{j-k}
$$
$$
\vec r_{j-k} \cdot \vec r_j = \vec r_{j-k} \cdot T_{\vec \theta_k} T_{\vec \theta_{k-1}}\cdots T_{\vec \theta_1} \vec r_{j-k}
$$
对上式求平均,注意到此时$\vec r_{j-k}$为一给定矢量,而每一步的转动矩阵是独立的,得到
$$
\begin{aligned}
\langle \vec r_{j-k} \cdot \vec r_j \rangle = & \vec r_{j-k} \cdot\langle T_{\vec \theta_k} T_{\vec \theta_{k-1}}\cdots T_{\vec \theta_1} \rangle \vec r_{j-k} \\
=& \vec r_{j-k} \cdot\langle T_{\vec \theta_k}\rangle\langle T_{\vec \theta_{k-1}}\rangle\langle \cdots \rangle\langle T_{\vec \theta_1} \rangle \vec r_{j-k} \\
=& \vec r_{j-k} \cdot \frac{1}{(z-1)^k} I \vec r_{j-k} =\frac1{(z-1)^k} a^2
\end{aligned} \qquad(8)
$$
于是
$$
\begin{aligned}
2\sum_{j=2}^N \sum_{i=1}^{j-1} \langle \vec r_i \cdot \vec r_j\rangle = & 2\sum_{j=2}^N \sum_{k=1}^{j-1} \langle \vec r_{j-k} \cdot \vec r_j\rangle = 2\sum_{j=2}^N \sum_{k=1}^{j-1} \frac{1}{(z-1)^k} a^2 \\
=&2\sum_{j=2}^N \frac{1-\frac{1}{(z-1)^{j-1}}}{z-2} a^2 =\frac{2}{z-2}\left(N-1 -\frac{1-\frac1{(z-1)^{N-1}}}{z-2} \right) a^2 \\
=& \frac{2}{z-2} N a^2 – \frac{2}{(z-2)^2} \frac{(z-1)^N -1}{(z-1)^{N-1}} a^2
\end{aligned} \qquad(9)
$$
这样就得到
$$
\begin{aligned}
\langle R^2\rangle = & \sum_{i=1}^N \sum_{j=1}^N \langle \vec r_i \cdot \vec r_j \rangle
= \sum_{i=1}^N a^2 +2\sum_{j=2}^N \sum_{i=1}^{j-1} \langle \vec r_j \cdot \vec r_i\rangle \\
=& N a^2 +\frac{2}{z-2} N a^2 – \frac{2}{(z-2)^2} \frac{(z-1)^N -1}{(z-1)^{N-1}} a^2 \\
=& \frac{z}{z-2} N a^2 – \frac{2}{(z-2)^2} \frac{(z-1)^N -1}{(z-1)^{N-1}} a^2
\end{aligned}
$$
这个结果仅仅依赖于行走的步数$N$和格点的最近邻数$z$,在二维及以上空间,与空间维数无关。因$T_{\vec \theta}$定义为对前一步的行走矢量的转动,所以对于如蜂窝状二维格子,金刚石结构的三维格子这样的复式晶格也成立。
在一维情形下,$z=2$, 公式(1)和(2)失效。 此时的NRRW意味着只能沿一个方向前进,故末端距的平方为 $R^2 = N^2 a^2$。
为了检验这个结果,我模拟了二维三角格子和蜂窝格子,三维的简单立方格子、面心立方格子和金刚石结构的格子,所得结果与公式(1)和(2)均精确符合。