本文所述为量子化学电子结构理论中的基础知识,为本公众号同期另一文《从密度矩阵产生自然轨道_理论篇》一文的补充,对此基础内容熟悉的读者可以直接略过。
量子化学中最常见的对矩阵“开根号”的情形便是
\boldsymbol{\rm S}^{1/2},这里的
\boldsymbol{\rm S}是原子基(AO basis)重叠积分矩阵,矩阵维度为基函数*基函数,
\boldsymbol{\rm S}是个厄米矩阵(实数下就是对称矩阵),满足
S_{\mu \nu}=S_{\nu \mu} (矩阵元素写法)
\boldsymbol{\rm S}^{\dagger}=\boldsymbol{\rm S} (矩阵写法)
所谓的对矩阵“开根号”不是对矩阵的每个元素开根号,而是指先将
\boldsymbol{\rm S}对角化,将其本征值开根号再乘回来,步骤如下
\boldsymbol{\rm S}=\boldsymbol{\rm UsU}^{\dagger} (\boldsymbol{\rm s}^{1/2})_{ii}=\sqrt{s_{ii}} \boldsymbol{\rm S}^{1/2}=\boldsymbol{\rm Us}^{1/2}\boldsymbol{\rm U}^{\dagger}
其中
\boldsymbol{\rm U}是酉矩阵(实数下就是正交矩阵),满足
\boldsymbol{\rm UU}^{\dagger}=\boldsymbol{\rm U}^{\dagger}\boldsymbol{\rm U}=\boldsymbol{\rm I}
相应的还有
\boldsymbol{\rm S}^{-1/2}(\boldsymbol{\rm s}^{-1/2})_{ii}=1/\sqrt{s_{ii}} \boldsymbol{\rm S}^{-1/2}=\boldsymbol{\rm Us}^{-1/2}\boldsymbol{\rm U}^{\dagger}
由于
\boldsymbol{\rm S}是半正定(positive semi-definite)矩阵,本征值
s_{ii}>0,因而可以开根号。但在实际编程中要小心,由于数值误差(可能的原因很多,例如从格式化文本文件中读取,小数位数有限),可能会有本征值
s_{ii}\sim-10^{-8}略微小于零,这时不妨把这些直接赋值为0,否则可能会超出开根号函数的定义域。
取倒数更要小心,编程时需要设定一个阈值(例如
10^{-6}),低于此阈值的需要舍弃掉(
\boldsymbol{\rm U}中相应的本征矢也要舍弃),不能取倒数,否则容易引起数值不稳定。
这个“开根号”的定义使得一些矩阵乘法变得像数的乘法一样简便,例如
\boldsymbol{\rm S}^{1/2}\boldsymbol{\rm S}^{1/2}=\boldsymbol{\rm Us}^{1/2}\boldsymbol{\rm U}^{\dagger}\boldsymbol{\rm Us}^{1/2}\boldsymbol{\rm U}^{\dagger}=\boldsymbol{\rm Us}^{1/2}\boldsymbol{\rm s}^{1/2}\boldsymbol{\rm U}^{\dagger}=\boldsymbol{\rm U}\boldsymbol{\rm s}\boldsymbol{\rm U}^{\dagger}=\boldsymbol{\rm S}\boldsymbol{\rm S}^{1/2}\boldsymbol{\rm S}^{-1/2}=\boldsymbol{\rm I}\boldsymbol{\rm S}^{-1/2}\boldsymbol{\rm S}^{-1/2}=\boldsymbol{\rm U}\boldsymbol{\rm s}^{-1}\boldsymbol{\rm U}^{\dagger}=\boldsymbol{\rm S}^{-1}
后两行细节就不写了,初学者可以自己验算。另外,
\boldsymbol{\rm S}^{1/2}也是对称矩阵,
(\boldsymbol{\rm S}^{1/2})^{\dagger}=(\boldsymbol{\rm Us}^{1/2}\boldsymbol{\rm U}^{\dagger})^{\dagger}=\boldsymbol{\rm Us}^{1/2}\boldsymbol{\rm U}^{\dagger}=\boldsymbol{\rm S}^{1/2}
假设
\boldsymbol{\rm A}是对称矩阵,那么
\boldsymbol{\rm S}^{1/2}\boldsymbol{\rm A}\boldsymbol{\rm S}^{1/2}也是对称矩阵
(\boldsymbol{\rm S}^{1/2}\boldsymbol{\rm A}\boldsymbol{\rm S}^{1/2})^{\dagger}=\boldsymbol{\rm S}^{1/2}\boldsymbol{\rm A}^{\dagger}\boldsymbol{\rm S}^{1/2}=\boldsymbol{\rm S}^{1/2}\boldsymbol{\rm A}\boldsymbol{\rm S}^{1/2}
但
\boldsymbol{\rm AS}不一定是对称矩阵
(\boldsymbol{\rm AS})^{\dagger}=\boldsymbol{\rm SA}\neq\boldsymbol{\rm AS}
因为矩阵乘法一般不满足对易关系。
\boldsymbol{\rm S}是半正定矩阵的证明:已知正交归一关系
\boldsymbol{\rm C}^{\dagger}\boldsymbol{\rm SC}=\boldsymbol{\rm I},该内积空间下的任意列向量可以写成本征矢的展开
\boldsymbol{\rm x}=\sum\limits_{i}\lambda_i \boldsymbol{\rm c}_i
其中
\boldsymbol{\rm c}_i是矩阵
\boldsymbol{\rm C}的第
i个列向量,则
\boldsymbol{\rm x}^{\dagger}\boldsymbol{\rm Sx}=\sum\limits_{ij}\lambda_i \lambda_j \boldsymbol{\rm c}_{i}^{\dagger}\boldsymbol{\rm Sc}_j=\sum\limits_{ij}\lambda_i \lambda_j \delta_{ij}=\sum\limits_{i}\lambda_i^2\geq0
此恰为半正定矩阵的定义。
本文分享自微信公众号 - 量子化学(quantumchemistry),作者:jxzou
原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。
原始发表时间:2020-05-03
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
我来说两句