本征值问题
📑 目录
- 引言:本征值问题的物理意义
- 预备知识:相似变换与正交矩阵
- Jacobi 方法 —— 逐个消灭非对角元
- Householder 变换 —— 批量消元成三对角
- QR 算法 —— 二十世纪十大算法之一
- Power 方法(幂法)与反幂法
- 奇异值分解(SVD)
- Krylov 子空间方法
- Lanczos 迭代
- Arnoldi 迭代
- Schrödinger 方程的对角化求解
- DMRG:密度矩阵重整化群
- 算法对比与总结
本质上 主线就是 把物理问题 变成 矩阵的本征值问题,然后利用正交变换把矩阵“变得简单但保证其本征值不变”,再利用迭代法吧本征值计算出来!
1. 引言:本征值问题的物理意义
1.1 什么是本征值问题?
在量子力学中,任何可以实验测量的物理量都对应一个算符,该算符的本征值就是测量可能得到的结果。薛定谔方程本质上是一个本征值问题:
说人话:给定一个矩阵 (哈密顿量),要找那些满足「矩阵作用上去等于标量相乘」的向量 和对应的数 。
1.2 量子多体问题中本征值问题的来源
如果系统里不是一个粒子,而是很多粒子互相作用,比如:
- 原子里的多个电子
- 原子核里的多个核子
- 量子多体凝聚态系统
那就没法直接写成一个简单单粒子问题了。通常会走这样一条路:
- 先做一个平均场近似,得到单粒子基
- 用这些单粒子基构造多体基态/激发态
- 把总波函数展开成很多个组态的线性组合
- 把哈密顿量写成这个基下的矩阵
- 解这个矩阵的本征值问题
也就是:
代入 ,得到
即矩阵形式:
这里 。
描述量子物理和计算化学中一个经典的套路:如果利用计算机去求解有多个粒子互相影响的复杂系统 (比如原子里的多个电子,或者原子核里的多个质子与中子)
“组态相互作用”(Configuration Interaction) 或者 精确对角化法
独立粒子图像 → 残余相互作用 → 组态混合 → 对角化
(Mean Field) (Residual) (CI) (Diagonalization)
核心链条:
| 步骤 | 物理含义 | 数学操作 | ||
|---|---|---|---|---|
| ① 平均场近似 | 每个粒子独立运动在平均势场中 | 得到单粒子基 | ||
| ② 组态空间构建 | 多体波函数 = Slater 行列式(组态)的线性组合 | Fock 空间展开 | ||
| ③ 哈密顿量矩阵 | 在组态基下写出 的矩阵表示 | $H{ij} = \langle \Phii | H | \Phi_j\rangle$ |
| ④ 对角化 | 求本征值和本征矢 | 这就是本征值问题! |
💡 物理直觉:组态空间(Fock 空间)是不同粒子数 Hilbert 空间的直和。组态混合(Configuration Mixing)——多体关联/纠缠——最终都归结为「在一个巨大矩阵中求本征值」。排列组合使得组态空间极其巨大,例如 个粒子分布在 个轨道上,组态数呈指数增长。
1.3 本征值问题的数学本质
对于 矩阵 ,求标量 和非零向量 使得:
等价于解特征方程:
数值例子(2×2 矩阵):
得 。
💡 但是!对于 ,直接展开行列式求根是数值灾难——这就是我们需要各种迭代算法的原因。
特征多项式数值上非常不划算!
多项式系数会涉及大量相消,高次根对于系数变化非常敏感,直接展开很不稳定,对大矩阵完全不现实!!!
2. 预备知识:相似变换与正交矩阵
2.1 相似变换保持本征值不变
如果 ,则 和 有相同的本征值。
说人话:用矩阵 对 做「换个坐标系」的操作,本征值不变,只是本征矢跟着变。
验证(数值例子):
的本征值:$\det(A-\lambda I) = (4-\lambda)(3-\lambda)-2=0 \Rightarrow \lambda=2,5$ $B$ 的本征值:对角元即为 (上三角矩阵的本征值就是对对角元)。✓
2.2 实对称矩阵 → 实正交相似对角化
如果 A 是 实对称矩阵,那么有谱定理:
- 本征值都是实数 借助定义直接去证明
- 不同本征值对应的本征矢正交 利用对称矩阵 的性质,在内积运算中“转移”矩阵 A 的作用
- 存在正交矩阵 Q ,使得
其中这个 是对角矩阵, 对角元就是本征值!
证明:使用数学归纳法,每次找一个特征向量,把空间降维,并保证降维后的子矩阵依然对称
为什么 PCA(主成分分析)、图神经网络(GNN)、量子力学、流形学习等算法都死死抱住实对称矩阵不放?
- 物理/几何意义明确:对称矩阵代表二次型 (如能量、方差)。谱定理告诉我们,总可以通过旋转坐标系(正交矩阵 Q ),消除交叉项,找到事物的“主成分”(对角元 )。
- 计算极其稳定:一般矩阵对角化 中,P可能是病态的(条件数很大),求逆会放大误差。而对称矩阵的 Q是正交矩阵,$Q^{−1}=Q^T$,转置计算不仅没有误差,而且速度极快。
- 降维与截断:在算法中,我们常常只取前 k 个最大的特征值(因为对称矩阵的特征值是实数,可以比大小!)。由于特征向量正交,这前 k个方向保留了数据中最大的“能量”或“信息量”,且彼此不相关。
简而言之,实对称矩阵的谱定理保证了:复杂的世界(一般矩阵)可以通过旋转(正交变换),被拆解为几个相互独立、互不干扰的简单方向(对角矩阵)。 这就是它在科学计算中拥有统治地位的原因。
关键定理:若 是实对称矩阵,则存在实正交矩阵 (即 ),使得 为对角矩阵,对角元就是本征值。
| 矩阵类型 | 对角化形式 | 变换矩阵性质 |
|---|---|---|
| A一般方阵 | 可逆 | |
| A实对称 | 正交 | |
| A为Hermite | 酉矩阵 |
3. Jacobi 方法 —— 逐个消灭非对角元
3.1 核心思想
一次干掉一个最大的非对角元素,用 Givens 旋转矩阵做相似变换。迭代到所有非对角元都接近零。
最直观的对称矩阵对角化的方法!
每次只处理一个非对角元 借助一个平面旋转将其消掉,如果把矩阵看成一个房间, Jacobi 就像每次只把一个歪掉的方向修正!
人话版:就像拧魔方,每次只转一个面,转完检查还有哪里不对,再转下一面,直到六面全对齐。
3.2 Givens 旋转矩阵
Givens 旋转 只在第 行/列上做旋转,其他位置保持单位矩阵:
是正交矩阵($P^T P = I$)
对称矩阵 做这样的相似变换:
可以保持对称性和本征值不变!!!
3.3 消灭非对角元
对于对称矩阵 ,做相似变换 :
变换后对应的非对角项 变为(选 使得这个位置 = 0):
选择较小的根确保 。
具体数值例子: $$ A = \begin{bmatrix} 3 & 1 \ 1 & 3 \end{bmatrix},\quad a{pq}=1,\ a{pp}=a_{qq}=3 $$
一次旋转直接对角化!本征值 。
3.4 算法流程
- 找一个大的非对角元
- 算旋转角
- 构造旋转矩阵
- 做
- 重复,直到所有非对角元都足够小
最后对角元就是本征值。
1. 找到 |a_pq| 最大的非对角元 (p≠q)
2. 计算旋转角 θ:tan(2θ) = 2a_pq / (a_pp - a_qq)
3. 构造 Givens 旋转矩阵 P
4. 做相似变换:A ← P^T A P
5. 重复直到 max|非对角元| < ε
6. 对角元即为本征值
3.5 Jacobi的优缺点
优点:思路直观 对称矩阵上作用很稳定 适合进行并行运算
缺点:每次只能消去一个非对角元,效率并不高! 对大矩阵不如QR快
适合 较小规模稠密矩阵,或者需要进行并行化的场景
3.6 并行 Jacobi 方法
怎么变? 用旋转(Rotation)。 想象你在二维平面上旋转坐标轴。比如你选中第1行和第2行交叉的那个数 a12,做一次旋转,就能把这个 a12 精准地变成0。
但是,当你把(1,2)位置变成0后,刚才已经消成0的(1,3)位置可能又变成非0了(牵一发而动全身)。所以你得不停地扫荡整个矩阵,反复消。
既然要消很多次,那我同时消 a12a12 和 a34a34 行不行?答案是:可以,但有严格条件。
并行加速,我们必须把所有的旋转操作分组。同一组里的旋转,涉及的行号列号必须完全不重叠(不然会冲突,比如想要同时消去 12和13位置,都涉及到了第一行,改第一行的时候,会影响另一个操作的数据;如果是12和34,完全不重叠,互不影响,可以同时消去)
标准结论是: 对 个变量的完全配对,可以分成大约 轮,每轮里有若干个互不冲突的旋转,能并行执行。
对于一个 n阶矩阵,总共有 n(n−1)/2个非对角元素需要消(也就是所有配对)。
- 因为每次并行旋转需要 n/2 对(比如8个变量,一次并行做4对,正好把1~8全用上)。
- 总对数 ÷ 每轮并行对数 = n-1 轮。
所以,标准结论是 n−1 轮。
对于 ,可以分出 个选择集,每个集有 个互不冲突的旋转(即旋转指标全不同),可以并行分配。
的分组示例(7 组,每组 4 个旋转,可分配给 4 个处理器):
| 组 | 旋转对 |
|---|---|
| 1 | (1,2), (3,4), (5,6), (7,8) |
| 2 | (1,3), (2,4), (5,7), (6,8) |
| ... | ... |
| 7 | (1,8), (2,7), (3,6), (4,5) |
💡 算法特点:简单直观,但每次只消一个元素,收敛较慢。
收敛较慢主要是 只消一个非对角,同时之前消去的还可能会被再次污染回来,相比之下,现在的算法(分而治之,QR算法)都是一次性处理大块数据!
适合小型稠密矩阵。Jacobi 天然适合并行! 极其稳定 计算量完全可以预测
4. Householder 变换 —— 批量消元成三对角
4.1 核心思想
我们知道理论上 实对称矩阵一定是可以被正交对角化的 但直接一步求出来用于对角化的正交矩阵Q是很难,所以数值算法通常选择线借助 Householder变换将原本实对称矩阵A变成 T(三对角矩阵) 然后再利用 QR算法 算出来A
三对角:只保留了主对角线和上下两条次对角线!!!
元素数量从 后续的迭代算法会快很多!
用一个正交反射变换 一次消灭一整列的非对角元,把对称矩阵变成三对角形式。
对比 Jacobi:
| Jacobi | Householder | |
|---|---|---|
| 每次消灭 | 1 个非对角元 | 一整列非对角元 |
| 结果 | 对角矩阵 | 三对角矩阵 |
| 适用 | 小矩阵 | 中大型矩阵 |
| 是否直接得到本征值 | 是(对角元) | 否(需进一步对角化三对角矩阵) |
4.2 Householder 反射矩阵
给定单位向量 ($\mathbf{w}^T\mathbf{w}=1$),构造反射矩阵:
展开为矩阵元形式(设 ):
几何意义:$P$ 将任意向量 变成它关于超平面(法向量为 )的镜像反射
任意向量 可以分解成两部分:
其中 是沿 方向的分量:
而垂直于 的部分是:
Householder 作用在 上:
代入分解:
且
所以
也就是说:
- 垂直于 的分量保持不变;
- 沿 的分量反号。
这正是关于法向量为 的超平面的镜像反射。
性质:$P$ 是对称的、正交的($P = P^T = P^{-1}$)
4.3 构造 的方法
目标:给定向量 ,找一个反射矩阵 使 (即 只有第一个分量非零)
构造步骤:
首先就是 P 是正交矩阵,所以它保持了向量长度! $$ \alpha = \pm|\mathbf{v}| = \pm\sqrt{v1^2 + v2^2 + \cdots + v_n^2} $$
符号选取:取 与 反号,避免相近数相减导致精度损失。
构造 Householder 向量时,会用到:
如果 与 同号,且 ,那么第一个分量
会发生相近数相减,造成严重精度损失。
所以数值上通常选:
如果 ,取
如果 ,取
这样
的绝对值会变大,数值更稳定。
推导 的公式
令
然后令
于是
我们要证明:
先计算
展开:
其中
因为 ,而
所以
再计算
展开:
即
所以
因此
于是
可以验证 ,且 满足 。
数值例子:设
- ,取 (与 反号)
- (具体计算略)
- 最终 ✓
4.4 Householder 三对角化算法
现在考虑一个 实对称矩阵:
我们希望通过一系列正交相似变换:
把它变成三对角矩阵。
因为 正交,所以本征值不变。
对 对称矩阵 ,经过 次 Householder 变换:
for k = 1 to n-2:
取 A 的第 k 列第 k+1 到 n 行作为向量 v
构造 Householder 矩阵 P_k(大小为 n-k)
用 P_k 对 A 做相似变换(扩充为 n×n 的块对角形式)
end
效果:对称 → 三对角矩阵
💡 如果 不对称,则变换成 上 Hessenberg 矩阵(下三角除次对角线外全为零)
详细展开过程
设
因为 对称,所以第一列下面是:
我们希望保留 ,把 全部消掉,使第一列变成:
取子向量:
构造一个 的 Householder 矩阵 ,使得:
然后把它扩展成 矩阵:
做相似变换: $$ A^{(2)}=H1^TAH1. $$ 由于 ,也可写成: $$ A^{(2)}=H1AH1. $$ 这会把第一列的第 3 到第 个元素消掉。
由于变换是对称相似变换,矩阵仍然对称,因此第一行对应的第 3 到第 个元素也同时为 0。
于是第一行/列已经满足三对角结构。
4.14 第二步及以后
第二步不再动第一行第一列。
我们取第 2 列从第 3 行到第 行的子向量:
构造 的 Householder 矩阵 ,扩展为:
然后做:
这样第 2 列中第 4 行以下的元素都被消掉。
继续这个过程,直到第 步。
n-2是因为 每k列只需要消掉 第k+2行 以下的元素
当 k = n - 2的时候,最后两列已经自然满足三对角
还有核心就是 后边的变换并不会破坏前面的0,就是每次构造矩阵的时候,我们把左上角构造成 单元矩阵 得以 保证已经做好的三对角零结构不会被破坏!
4.5 三对角矩阵的求解
- 如果某个 ,矩阵可以分裂成两个更小的独立块分别对角化
- 然后用 Jacobi 或 QR 算法对角化三对角矩阵
- 计算量:Householder 三对角化 ≈ (不含本征矢)或 (含本征矢)
5. QR 算法 —— 二十世纪十大算法之一
核心:QR分解
QR分解 就是把一个矩阵 写成
Q:正交矩阵
R:上三角矩阵
如果 A 是 n ✖️ n 非奇异矩阵 则通常可以得到完整的 QR分解
5.1 核心迭代格式
QR 算法是计算矩阵全部本征值的最重要算法。
基本迭代:
从
开始,每一步做 QR 分解:
然后反过来相乘:
看起来只是把乘法顺序反过来,但关键是它等价于一个正交相似变换。
因为
左乘 :
所以
因此
和
相似,且由于 正交,所以是正交相似。
因此每一步都不改变本征值。
收敛性:
趋于上三角矩阵(Schur 形式),对角元就是本征值。
严格证明比较长,但核心直觉可以从幂迭代理解。
设矩阵可以对角化:
其中
并假设本征值大小满足:
幂法中:
因为
所以高次幂会越来越强调最大本征值对应的方向。
QR 迭代可以理解成一种“同时幂法”:
- 幂法追踪一个向量;
- QR 迭代追踪一组正交基;
- 每一步 QR 分解相当于对这组基重新正交化。
在不断迭代中,正交基逐渐对齐到不变子空间,因此矩阵在这组基下逐渐变成上三角形式,也就是 Schur 形式。
对于实对称矩阵,上三角 Schur 形式进一步退化为对角矩阵,因为实对称矩阵被正交相似变换后仍然对称,而一个既对称又上三角的矩阵只能是对角矩阵。
人话版:
- 把矩阵拆成「正交×上三角」
- 把乘积顺序反过来再乘一次
- 重复,矩阵就自动趋近对角形
5.2 QR 分解 —— Givens 旋转法
用 次 Givens 旋转把矩阵消成上三角:
第 次旋转:选 使 的第 位置为 0。
取 满足:
给定一个向量的两个分量: $$ \begin{bmatrix} a\b \end{bmatrix}, $$ 我们想构造旋转矩阵: $$ G= \begin{bmatrix} c&s\ -s&c \end{bmatrix}, $$ 使得: $$ G \begin{bmatrix} a\b \end{bmatrix} = \begin{bmatrix} r\0 \end{bmatrix}. $$
推导
计算: $$ \begin{bmatrix} c&s\ -s&c \end{bmatrix} \begin{bmatrix} a\b \end{bmatrix} = \begin{bmatrix} ca+sb\ -sa+cb \end{bmatrix}. $$ 我们希望第二个分量为 0: $$ -sa+cb=0. $$ 即 $$ cb=sa. $$ 一个自然选择是: $$ c=\frac{a}{r},\qquad s=\frac{b}{r}, $$ 其中 $$ r=\sqrt{a^2+b^2}. $$ 验证第二个分量: $$ -sa+cb = -\frac{b}{r}a+\frac{a}{r}b = 0. $$ 第一个分量: $$ ca+sb = \frac{a}{r}a+\frac{b}{r}b = \frac{a^2+b^2}{r} = r. $$ 所以 $$ G \begin{bmatrix} a\b \end{bmatrix} = \begin{bmatrix} r\0 \end{bmatrix}. $$
数值例子(消去 ):
第一列 ,构造 Givens 旋转消去第 2 个分量:
次旋转后得到 ,所有旋转矩阵的转置之积为 :
因为
所以
因此 $$ Q=P^T $$ 与 Jacobi 旋转的区别:QR 分解中的 Givens 旋转换不是相似变换($Pk A$ 而非 $Pk^T A P_k$),目的是消成上三角而非对角化。
5.3 Householder 做 QR 分解
Givens 每次只消一个元素。Householder 每次可以消掉一整列下方的元素。
给定矩阵 ,第一步取第一列:
构造 Householder 矩阵 ,使得:
于是
的第一列下面全部为零。
第二步只处理右下角子矩阵,构造:
继续做,最终得到:
因为每个 都正交,所以它们乘积也正交。
令
则
Householder QR 对稠密矩阵通常比 Givens 更高效,因为它每一步消一整列,而不是一个元素一个元素消。
用 次 Householder 反射做 QR 分解:
💡 Householder 做 QR 分解比 Givens 旋转效率更高。
5.4 加速收敛:Shifted QR(带位移的 QR)
基础 QR 迭代:
如果本征值很接近,收敛很慢。
于是引入位移 :
然后
由
得:
于是
展开:
因为
所以
因此带位移 QR 仍然是正交相似变换,本征值不变。
设某个本征值 是我们想让它快速收敛出来的对象。
对
而言,本征值变成:
如果 接近某个本征值 ,那么
会很小。
QR 迭代里,某些次对角元的衰减速度与本征值间隔有关。选择好的 可以把某个方向迅速分离出来,使矩阵右下角的次对角元素快速趋近 0。
一旦某个次对角元满足:
矩阵就近似分裂成:
如果矩阵是对称三对角,则更干净地分裂成两个独立块:
这叫 deflation。
Wilkinson shift
对于对称三对角矩阵,常取右下角 子块: $$ \begin{bmatrix} a&b\ b&d \end{bmatrix}. $$ 它的本征值为: $$ \mu_{\pm} = \frac{a+d}{2} \pm \sqrt{\left(\frac{a-d}{2}\right)^2+b^2}. $$ Wilkinson shift 取其中更接近 的那个。
一种数值稳定写法是: $$ \delta=\frac{a-d}{2}, $$ 这个公式避免了相近数相减。
选 的策略:取 右下角 子矩阵的本征值中靠近 的那个。
数值例子:
右下角 子矩阵: $$\begin{bmatrix} a{n-1,n-1}^{(k)} & a{n-1,n}^{(k)} \ a{n,n-1}^{(k)} & a{n,n}^{(k)} \end{bmatrix}$$
设其本征值为 (例如 ),选 中更接近 的那个。
5.5 Schur 分解
对任意 方阵复 ,存在酉矩阵 和上三角矩阵 使得:
的对角元就是 的全部本征值。
。
💡 QR 算法本质上就是在计算 Schur 分解。对于不对称矩阵也可以使用。
任何复矩阵A,都可以通过“旋转坐标轴” (酉变换),变成一个“上三角矩阵”(对角线是特征值,对角线下面全是0)
证明思路用数学归纳法。
对于任意复矩阵 ,至少存在一个本征值 和对应单位本征向量 :
把 扩充成一组标准正交基,需要n个相互垂直的单位向量,把这一堆列向量拼成矩阵 Q1。因为每一列都是单位长且互相垂直,所以 Q1 是酉矩阵(Unitary),也就是 (旋转坐标轴不改变长度):
因为 酉:
考察:
它的第一列是:
1、矩阵乘法看列:$Q1^{\dagger}A Q1$ 这个矩阵,乘上 第一列标准基 就等于取出其第一列,而Q1e1其实就是 Q1矩阵的第一列,就是q1!
2、带入特征方程
3、核心就是 等于多少?
展开来写就是
进一步,利用标准正交基的性质,得到上述式子其实就是 e1
于是新矩阵 的第一列,就是 开头,下边都是0!
所以矩阵形状为:
然后对右下角 继续做同样操作。归纳下去,最终得到上三角矩阵。
QR 算法本质上就是在数值逼近这个 Schur 分解。
5.6 广义本征值问题
广义本征值问题是:
假设:
因为 对称正定,可以做 Cholesky 分解:
原方程:
令
则
代回:
左乘 :
定义
则:
而且 是对称的:
因此广义对称本征值问题被化成了标准对称本征值问题。
求出 后,原问题的本征向量是: $$ x=L^{-T}y. $$ 求解 ,其中 对称且 正定。
处理方法:做 Cholesky 分解 ,化为标准本征值问题:
是对称矩阵,其本征值即原问题的本征值,但本征矢需要回代:
💡 不对称,不能直接做。通过 Cholesky 变换保对称性。
6. Power 方法(幂法)与反幂法
6.1 幂法 —— 求最大本征值
核心思想:设本征值排列 ,任意初始向量 在本征矢基下展开:
反复左乘 :
当 很大时,$\lambda1^k$ 主导(假设 $c1 \neq 0$):
说人话:不断被矩阵乘,向量方向会被拽到「最大本征值对应的本征矢方向」上。
6.2 算法步骤(带归一化)
如果 ,那么
会指数增长,导致数值溢出。
如果 ,则会指数衰减,导致下溢。
所以每步都做归一化:
x_0 = 任意非零向量
for k = 1, 2, ...:
y_k = A x_{k-1} ← 矩阵乘向量
λ_k = max(|y_k|) 的分量 ← 近似最大本征值
x_k = y_k / λ_k ← 归一化,防止溢出
end
数值例子(3×3 矩阵):
| 迭代 | |||
|---|---|---|---|
| 0 | — | — | |
| 1 | 2 | ||
| 2 | 2.5 | ||
| 3 | 2.8 | ||
| ... | ... | ... | → 趋近最大本征矢 |
精确最大本征值:$\lambda_{\max} = 2 + \sqrt{2} \approx 3.414$。
6.3 对称矩阵的幂法
对于归一化向量 ,常用 Rayleigh 商:
如果 已归一化,则
如果 ,则
因为
所以
所以当 越接近本征向量时,Rayleigh 商越接近对应本征值。
对实对称矩阵,幂法的收敛速度快得多——类似于变分法求基态能量:
当 很小时收敛极快。
设 对称,有标准正交本征向量:
令当前归一化向量为:
且
Rayleigh 商:
代入:
于是:
由于正交归一:
所以:
与 的误差:
因为
所以:
其中 项为 0,因此:
注意误差由 控制。
而幂法中:
所以 Rayleigh 商误差大致是:
这就是对称矩阵下本征值估计更快的原因。
vs
幂法失败的情形
1、如果说 c1 = 0 , 初始向量没有最大本征方向分量!
2、如果最大本征值出现重,就是 1和2本征值相同,没有唯一的主导方向
3、如果 最大本征值是小于0的,那么向量可能是正负交替的(分奇偶)
4、如果 会出现收敛很慢的情况!
5、幂法只自然给出 最大模本征值,而不是 全部本征值!
6.4 反幂法(Inverse Power Method)—— 求指定本征值
如果想求接近某值 的本征值:
- 对 做幂法
- 的最大本征值 =
如果我们想找离某个数 最近的本征值,考虑矩阵:
如果
那么
所以
也就是说,$(A-qI)^{-1}$ 的本征值是:
如果 离 最近,则
最小,于是
最大。
所以对 做幂法,会收敛到原矩阵中最靠近 的本征值。
反幂法迭代:
实际计算中解线性方程组
然后进行归一化,本征值仍利用 Rayleigh商进行估计!!!
如果每一步把 shift 取为当前 Rayleigh 商:
然后解:
再归一化:
这就是 Rayleigh 商迭代。
对实对称矩阵,它在接近本征向量后通常有三次收敛速度,非常快。
💡 加速技巧:如果 很接近本征值,收敛极快。实际应用中常结合位移 QR 法的思想。
6.5 带位移的幂法(Shifted Power Method)
本征矢不变,改变收敛目标:
收敛到离 最近的本征值。
6.6 Wielandt 收缩法 —— 求次大本征值
假设已知最大本征对:
对于对称矩阵,且 已归一化:
定义:
看它对 的作用:
因为
所以
也就是说,原来 被压成了 0。
对于其他正交本征向量 ,$i\geq2$:
于是
所以 的本征值为:
这样可以继续对 做幂法,求次大本征值。
的本征值为 ,可以继续用幂法求 。
💡 类似量子计算中 VQD(Variational Quantum Deflation)算法求激发态的思路。
6.7 三种 Power 方法对比
| 方法 | 目标 | 关键操作 | 收敛速度 | ||
|---|---|---|---|---|---|
| 幂法 | 最大 $ | \lambda | $ | ||
| 反幂法 | 最接近 的 | 极快(若 接近) | |||
| 位移幂法 | 最接近 的 | 中等 |
⚠️ Power 方法的局限:只求一个本征值,而且当 接近 1 时收敛极慢
7. 奇异值分解(SVD)
7.1 定义
对 矩阵 ,存在分解:
- :$m \times m$ 正交矩阵,列是「左奇异向量」
- :$n \times n$ 正交矩阵,列是「右奇异向量」
- :$m \times n$ 对角矩阵,对角元 是奇异值
矩阵形式($m=3, n=2$ 的例子):
Proof
考察:
它是 对称矩阵:
并且半正定,因为对任意 :
所以 可以正交对角化:
其中
且
定义奇异值:
于是:
这里 是 的第 列,称为右奇异向量。
构造左奇异向量
当 时,定义:
现在证明 正交归一。
计算:
即:
因为
所以:
当 时:
当 时:
因此这些 是标准正交的。
得到
由定义:
所以
把所有 合起来:
右乘 :
这就是 SVD。
如果某些 ,则 ,这些方向属于零空间。对应的 可以通过补全正交基得到。
进一步的
同样可以证明:
因为:
左乘 得:
再左乘 :
所以:
- 的本征向量是右奇异向量;
- 的本征向量是左奇异向量;
- 二者的非零本征值相同,都是 。
7.2 SVD 与 的关系
是 对称半正定矩阵,其本征值为 ,本征矢为 :
计算 SVD 的步骤:
1. 求 A^T A 的本征值 σ_i^2 和本征矢 v_i
2. 奇异值 σ_i = sqrt(σ_i^2)
3. 构造 V = [v_1, v_2, ..., v_n]
4. U 的前 k 列:u_i = (1/σ_i) A v_i (i=1,...,k, k=rank(A))
5. U 的剩余 m-k 列:补充线性无关向量,用 Gram-Schmidt 正交化
7.3 SVD与本征值
💡 如果 是对称正定矩阵,则奇异值 = 本征值。一般情况下 。
如果 是对称正定矩阵,则: $$ A=Q\Lambda Q^T, $$ 且 。这时: $$ A^TA=A^2=Q\Lambda^2Q^T, $$ 所以: $$ \sigmai=\lambdai. $$ 如果 是对称但不正定,则: $$ \sigmai=|\lambdai|. $$ 如果 是一般矩阵,奇异值通常不等于本征值绝对值。
7.4 SVD 的图像压缩应用
低秩近似
SVD 可以写成外积和:
其中 。
如果只保留前 个最大奇异值:
这就是最好的秩 近似,称为 Eckart–Young 定理:
误差为:
这就是图像压缩的数学基础。
每个像素对应矩阵的一个元素。取前 个最大奇异值($k \ll N$):
存储量对比:
| 完整存储 | SVD 压缩 ($k$ 项) | |
|---|---|---|
| 要存的数 | ||
| 压缩比 | 1 | |
| 例:$N=1000, k=50$ | 1,000,000 | 100,050 ≈ 10× 压缩 |
8. Krylov 子空间方法
8.1 Krylov 子空间的定义
给定矩阵 和初始向量 ,$m$ 阶 Krylov 子空间为:
说人话:不断用矩阵 去乘初始向量,每次乘出来的新向量构成一个子空间的基。这个子空间自动包含了对解最有用的方向。
8.2 为什么 Krylov 子空间有效?
幂法只看:
的最后一个方向。
Krylov 方法则把这些向量张成的整个空间都利用起来。
也就是说,它不是只取一个向量,而是在空间:
里面寻找最佳近似本征向量。
- 幂法本质上就是在 中找最优近似
- Krylov 子空间方法用 ($m$ 维),信息量大得多
- 维 Krylov 子空间能捕获前 个主导本征矢的信息
8.3 Krylov 基的性质
8.3.1 多项式滤波视角
Krylov 子空间中的任意向量都可以写成:
其中 是次数不超过 的多项式。
如果因为 是本征矢,满足 ,所以 。同理,多项式作用上去就会变成:
则
你想得到系统最低能量(基态本征值 )对应的本征矢 。 你可以设计(或者让算法自动寻找)一个多项式 。这个多项式在 处的值非常大,而在其他本征值处的值都接近 (就像一个滤波器)。 这样,在求和项 中,非目标项都被压制到了几乎为 0,只有 这一项脱颖而出!
所以 Krylov 方法本质上是在构造多项式 ,使得:
- 目标本征值对应的 大;
- 非目标本征值对应的 小。
这就是“自动筛选重要方向”的原因。
8.3.2 Krylov 投影思想
直接解超级大矩阵 是不可能的。 既然如此,我们能不能只在 维的 Krylov 子空间里找近似解?(通常 很小,比如 或 )
我们把这个小空间里的一组正交基按列排好,拼成一个大矩阵 (尺寸是 )。 因为基向量是正交归一的,所以满足 ($m \times m$ 的单位阵)
我们不直接在 维大空间里解:
而是在 维子空间中近似(我们假设真实的本征矢 可以由这个小空间的基线性组合得到),这里y是一个只有m维的小向量:
其中 的列是 Krylov 子空间的一组正交基。
要求残差(近似解和精确解的差距):
利用伽辽金条件(Golerkin Condition):我们不能让残差等于 0(因为空间不够大,不可能完全精确),但我们可以要求残差 与我们这个小空间 垂直。 意思是,误差不能在我们关心的空间里露头。即要求与子空间正交:
代入:
得到:
因为
所以:
定义小矩阵 m ✖️ m的小矩阵:
于是只需解小规模本征值问题:
称为 Ritz 值,$Q_my$ 称为 Ritz 向量。
我们把一个 的巨无霸本征值问题,通过投影,变成了一个 的微型本征值问题。 我们用前几章介绍的常规方法(如 QR 算法)轻松对角化 ,求出本征值 (称为 Ritz 值)和本征矢 。 然后通过 ,就能非常精准地还原出原大矩阵的本征矢(称为 Ritz 向量)。
在 krylov子空间中, A的投影矩阵是 上 Hessenberg形式 (即除了主对角线、紧挨着的下一条次对角线以外,下三角其余元素全是0)
Krylov基生成过程
这个基的生成过程(也就是著名的 Arnoldi 迭代算法)一步一步彻底拆解。
首先,我们要明白为什么不直接用 做基? 因为当 稍微变大一点,根据幂法的原理,$A^k\mathbf{b}$ 会迅速向最大本征值对应的本征矢靠拢。这就导致这几个向量几乎指向同一个方向(也就是几乎共线),数学上叫“高度线性相关”。用它们做基,矩阵极其病态,计算机稍微一算就全是舍入误差。
所以,我们需要一边用 乘,一边做正交化。这个完美的结合,就是 Arnoldi 过程。
第一步:准备启动(Step 0)
我们有一个初始向量 。
- 计算它的模长:$\beta = |\mathbf{b}|$。
- 把它归一化,得到我们第一根正交基向量 : $$\mathbf{q}1 = \frac{\mathbf{b}}{\beta}$$ 此时,我们的基里面只有一根向量:${\mathbf{q}1}$。
第二步:生成第二根基向量 (Step 1)
现在我们想通过 作用到已有的基上来扩展空间。
- 用 乘已有的最新基向量: $$\mathbf{v} = A\mathbf{q}_1$$
- 正交化(剔除在 方向上的投影): 计算 与 的内积,记为 : $$h{11} = \mathbf{q}1^T \mathbf{v}$$ 然后从 中减去 方向的分量,得到一个纯净的、与 垂直的新方向向量 : $$\mathbf{r} = \mathbf{v} - h{11}\mathbf{q}1$$
- 归一化: 计算这根新向量的模长,记为 : $$h{21} = |\mathbf{r}|$ 如果 h{21} \neq 0$,归一化得到第二根基向量 : $$\mathbf{q}2 = \frac{\mathbf{r}}{h{21}}$$ 此时,我们的基向量组变成了:${\mathbf{q}1, \mathbf{q}2}$。它们彼此正交且长度为 1。
第三步:生成第三根基向量 (Step 2)
重复这个思路:
- 用 乘上一步新生成的基向量 : $$\mathbf{v} = A\mathbf{q}_2$$
- 正交化(剔除在已有的 和 上的所有投影):
- 剔除 方向:$h{12} = \mathbf{q}1^T \mathbf{v}$
- 剔除 方向:$h{22} = \mathbf{q}2^T \mathbf{v}$ 从 中把这两份投影全部扣掉: $$\mathbf{r} = \mathbf{v} - h{12}\mathbf{q}1 - h{22}\mathbf{q}2$$
- 归一化: 计算模长:$h{32} = |\mathbf{r}|$\mathbf{q}3 = \frac{\mathbf{r}}{h{32}}$$ 此时,基向量组变成了:${\mathbf{q}1, \mathbf{q}2, \mathbf{q}3}$。
归纳:第 步的通用公式(Step )
已知前 个已经相互正交归一的基 。我们要生出第 个:
- 作用算符: $$\mathbf{v} = A\mathbf{q}_j$$
- 扣除前 个方向的投影(施密特正交化): 对于每一个 : $$h{ij} = \mathbf{q}i^T \mathbf{v}$$ 扣除投影后的残差向量: $$\mathbf{r} = \mathbf{v} - \sum{i=1}^{j} h{ij}\mathbf{q}_i$$
- 归一化: $$h{j+1, j} = |\mathbf{r}|$ $\mathbf{q}{j+1} = \frac{\mathbf{r}}{h_{j+1, j}}$$
这就是完整的 Krylov 基生成过程(Arnoldi 迭代)。
💡 为什么这样会自然产生“上 Hessenberg 矩阵”?
我们把第 步归一化公式 变形一下(乘以分母): $$\mathbf{r} = h{j+1, j} \mathbf{q}{j+1}$$
再把第二步正交化公式代入这个式子: $$\mathbf{v} - \sum{i=1}^{j} h{ij}\mathbf{q}i = h{j+1, j} \mathbf{q}_{j+1}$$
因为 ,我们移项整理得到: $$A\mathbf{q}j = h{1j}\mathbf{q}1 + h{2j}\mathbf{q}2 + \ldots + h{jj}\mathbf{q}j + h{j+1, j}\mathbf{q}_{j+1}$$
这个式子的物理意义非常震撼: 当你用大矩阵 作用到第 个基向量上时,产生的新向量最多只能投影到第 个基向量上!它跟再后面的基向量(例如 )绝对是垂直的(内积为0)。
这就意味着,如果把所有系数 排成一个矩阵: $$ H = \begin{bmatrix} h{11} & h{12} & h{13} & \cdots \ h{21} & h{22} & h{23} & \cdots \ 0 & h{32} & h{33} & \cdots \ 0 & 0 & h{43} & \cdots \ \vdots & \vdots & \vdots & \ddots \end{bmatrix} $$ 由于对于所有 的位置,其系数 $h{ij} = 0$,所以主对角线下方的第二条线开始,全部都是 0! 这正是上 Hessenberg 矩阵!
所以,Arnoldi 算法妙就妙在:它在用施密特正交化建立空间基底的同时,顺手就把在这个空间里投影的大矩阵 ,记录成了一个极其简单、几乎是对角阵的 Hessenberg 小矩阵 !接下来对这个 做对角化,就能轻松拿到我们想要的本征值。
直观解释:
回忆一下 Krylov 基的生成过程:
- 是由 正交化得到的;
- 是由 正交化得到的;
- 一般地, 只能跟前面的 发生关联(投影不为 0)。 对于比 更靠后的基向量(如 甚至更远),由于生成顺序的关系,它们和 必然是正交的:
而 正是矩阵 的矩阵元! 这说明,只要行数 大于列数 ,对应的矩阵元就全部为 0。
写出来就是: $$ Hm = \begin{bmatrix} h{11} & h{12} & h{13} & \cdots \ h{21} & h{22} & h{23} & \cdots \ 0 & h{32} & h{33} & \cdots \ 0 & 0 & h{43} & \cdots \ \end{bmatrix} $$ 这正是上 Hessenberg 矩阵!这种矩阵不仅容易存储,而且极易使用 QR 算法进行对角化。Krylov 方法之所以如此高效,秘密全在于此!
💡 这正是 Krylov 子空间方法的核心:在 Krylov 子空间中,$A$ 的投影矩阵是上 Hessenberg 形式——比原矩阵更容易对角化。
9. Lanczos 迭代
9.1 核心思想
对对称矩阵 ,在 Krylov 子空间中构造一组正交基(Lanczos 基),使得 在这组基下的投影是三对角矩阵。
9.2 Lanczos 三对角化
初始化:
给定归一化 。
第 步:
计算对角元:
去掉当前方向:
计算次对角元:
如果
说明 Krylov 子空间已经不再扩展,算法终止。
否则:
于是得到三项关系:
矩阵形式
把列向量合成: $$ Qm=[q1,q2,\ldots,qm]. $$ 则: $$ AQm=QmTm+\betamq{m+1}em^T. $$ 其中: $$ Tm= \begin{bmatrix} \alpha1&\beta1\ \beta1&\alpha2&\beta2\ &\beta2&\alpha3&\ddots\ &&\ddots&\ddots&\beta{m-1}\ &&&\beta{m-1}&\alpham \end{bmatrix}. $$ 如果忽略最后残差项,就是: $$ Qm^TAQm=Tm. $$ 所以 Lanczos 把大矩阵 投影成小三对角矩阵 。
给定对称矩阵 和初始归一化向量 ($\mathbf{q}0 = \mathbf{0}$, $\beta0 = 0$):
Lanczos 迭代:
for i = 1, 2, ..., m:
u = A q_i - β_{i-1} q_{i-1} ← 矩阵乘 + 减去上一步贡献
α_i = q_i^T u ← 对角元
u = u - α_i q_i ← 再减当前方向
β_i = ||u|| ← 次对角元
if β_i ≈ 0: break
q_{i+1} = u / β_i ← 归一化得到下一个基向量
end
每次迭代只需要3 个向量($\mathbf{q}{i-1}, \mathbf{q}i, \mathbf{q}_{i+1}$),内存效率极高!
9.3 得到的结构
步后得到三对角矩阵 :
且
9.4 数值例子
精确本征值:$10,\ -5,\ 1$
步 Lanczos:
得到 三对角矩阵:
对角化 得到近似本征值 和 。仅 2 步就找到了"极端本征值"(最大和最小)的近似!
完整 ($m=n$,全矩阵) 则严格恢复本征值 。
9.5 Lanczos 的收敛特性
设
则近似本征向量为:
残差:
代入:
利用 Lanczos 关系:
所以:
因为
所以前两项抵消:
剩下:
因此残差范数:
这提供了一个非常方便的收敛判据。 $$ \text{极端本征值(最大/最小)收敛快} \quad > \quad \text{中间本征值收敛慢} $$
数值验证($A = B^T B$,$B \in \mathbb{R}^{10\times10}$ 正定对称,$m$ 取 2~10):
| Krylov 维度 | 收敛的本征值 |
|---|---|
| 2 | 最大 + 最小(极端值) |
| 4~5 | 前几个极端值 |
| 10(满秩) | 全部严格本征值 |
💡 Lanczos = 在 Krylov 子空间中对对称矩阵做截断对角化。截断类似于 SVD 图像压缩——保留最重要的信息、丢弃细节。极端本征值对应"最重要成分"。
9.6 Lanczos 的优势
| 特性 | 说明 |
|---|---|
| 内存 | 只需存 3 个向量($\mathbf{q}{i-1}, \mathbf{q}i, \mathbf{q}_{i+1}$) |
| 主要操作 | 矩阵-向量乘($A\mathbf{q}_i$),适合稀疏矩阵 |
| 适用规模 | 维基矢! |
| 最佳场景 | 稀疏、短程相互作用的哈密顿量 |
理论上 Lanczos 向量彼此正交:
但浮点运算中,由于舍入误差,正交性会逐渐丢失。
后果是:
- 已经收敛的本征值可能重复出现;
- 出现 ghost eigenvalues;
- Ritz 值稳定性变差。
解决办法包括:
- full reorthogonalization;
- selective reorthogonalization;
- partial reorthogonalization;
- restarted Lanczos。
10. Arnoldi 迭代
10.1 动机
Lanczos 要求矩阵对称(或 Hermite)。对于不对称矩阵,需要 Arnoldi 迭代。
10.2 Arnoldi 算法
给定不对称矩阵 和初始归一化向量 :
for k = 1, 2, ..., m:
v = A q_k
for j = 1 to k: ← 与前面所有 q_j 正交化
h_{j,k} = q_j^T v ← 内积(投影系数)
v = v - h_{j,k} q_j
end
h_{k+1,k} = ||v|| ← 次对角元
if h_{k+1,k} ≈ 0: break
q_{k+1} = v / h_{k+1,k}
end
关键区别:Lanczos 只需与 和 正交化(利用对称性),Arnoldi 需要与所有已生成的 正交化。
10.3 结果:上 Hessenberg 矩阵
步 Arnoldi 得到 上 Hessenberg 矩阵 :
(如果 对称,则 退化为三对角 = 回到 Lanczos)
10.4 Arnoldi vs Lanczos 对比
| Lanczos | Arnoldi | |
|---|---|---|
| 适用矩阵 | 对称 / Hermite | 任意方阵 |
| 正交化 | 只需 2 个旧向量 | 需所有旧向量 |
| 结果矩阵 | 三对角 | 上 Hessenberg |
| 计算量/步 | (逐渐增加) | |
| 代表软件 | — | ARPACK |
💡 ARPACK 是 Arnoldi Package 的缩写,是求解大型稀疏矩阵本征值问题的主流软件包。当 接近零向量时算法自然终止(精确不变子空间已找到)。
11. Schrödinger 方程的对角化求解
11.1 问题提法
径向 Schrödinger 方程是一个本征值问题:
其中 是实对称矩阵,$\psi$ 是波函数,$E$ 是能级。
11.2 求解策略流程
┌─────────────────────────────┐
│ 哈密顿量矩阵 H (实对称) │
└────────────┬────────────────┘
│
┌────────────────┼────────────────┐
▼ ▼ ▼
┌───────────────┐ ┌───────────┐ ┌─────────────────┐
│ 直接法 (稠密) │ │ 幂法 │ │ Lanczos (稀疏) │
│ Householder │ │ (最大E) │ │ (极端本征值) │
│ → QR对角化 │ │ 反幂法 | │ 3向量内存 │
│ 全部本征值 │ │ (指定E) │ │ 10^9~10^10基 │
└───────────────┘ └───────────┘ └─────────────────┘
11.3 具体方案对比
| 方案 | 适用场景 | 计算量 | 特点 |
|---|---|---|---|
| Householder → QR | 稠密,需全部本征态 | (不含本征矢) | 完整精确 |
| Power method | 只需基态能量 | /步 | 简单但收敛慢 |
| Lanczos | 稀疏/短程,需极端本征值 | /步(稀疏) | 内存极省 |
12. DMRG:密度矩阵重整化群
12.1 问题背景
严格对角化计算量随系统尺寸指数增长($2^L$),无法处理大系统。
12.2 NRG(数值重整化群, Wilson 1974)
K. Wilson 因重整化群在临界现象和 Kondo 效应中的应用获 1982 年诺贝尔物理学奖。
NRG 步骤:
① 初始块 A (长度 L),Hilbert 空间维数 M
↓
② 形成复合块 AA (长度 2L),哈密顿量 H_AA (维数 M²)
↓
③ 用 Lanczos 对角化 H_AA,取 M 个最低本征态
↓
④ 将 H_AA 投影到截断空间 → H_AA-tr
↓
⑤ 令 2L→L, AA→A, H_AA-tr→H_A,回到步骤②
↓ 重复直到达到目标系统尺寸
12.3 NRG 的局限 → DMRG 的革新
| NRG | DMRG | |
|---|---|---|
| 截断依据 | 能量(取最低 M 个本征态) | 量子熵(密度矩阵本征值) |
| 环境处理 | 不考虑 | 保留环境效应 |
| 最佳场景 | 杂质问题(很有限) | 低纠缠系统(极为广泛) |
💡 DMRG 的关键创新:不按能量截断,而按约化密度矩阵的奇异值(SVD)截断——本质是在量子纠缠熵中做截断。
12.4 DMRG 算法流程
Warm-up 阶段:
1. Lanczos 求基态
2. 构造 A' 和 B' 块
3. 构造约化密度矩阵
4. 对角化约化密度矩阵
5. 将 H_A 变换到密度矩阵本征基,截断
6. 重复
Sweeping 阶段: 通过多轮左右扫描优化波函数,直到收敛。
12.5 DMRG 的应用范围
自旋链、量子点、原子核、量子化学、量子信息……DMRG 已成为处理一维/准一维多体系统的黄金标准方法。
13. 算法对比与总结
13.1 本征值问题与量子多体问题
量子多体系统 → 组态混合 → 大型矩阵对角化 → 本征值问题的数值方法
13.2 所有算法一览
| 算法 | 类别 | 求几个本征值 | 矩阵要求 | 计算量 | 内存需求 | 适用规模 |
|---|---|---|---|---|---|---|
| Jacobi | 直接迭代 | 全部 | 对称 | 小($n<100$) | ||
| Householder | 直接变换 | 全部 | 对称 | 中等 | ||
| QR(基本) | 迭代 | 全部 | 任意 | /步 | 中等 | |
| Shifted QR | 迭代 | 全部 | 任意 | (三对角后) | 中等 | |
| 幂法 | 迭代 | 1 个(最大) | 任意 | /步 | 任意 | |
| 反幂法 | 迭代 | 1 个(指定) | 任意 | +求解 | 任意 | |
| Lanczos | 子空间迭代 | 极端值 | 对称 | /步(稀疏) | 超大($10^9$+) | |
| Arnoldi | 子空间迭代 | 部分 | 任意 | /步 | 大 | |
| SVD | 分解 | 全部奇异值 | 任意 | 中等 | ||
| DMRG | 重整化群 | 基态 | 对称/Hermite | 多项式 | 可控 | 大($10^2$ 格点) |
13.3 选择算法的决策树
需要求全部本征值?
├── 是 → 矩阵是否稠密?
│ ├── 是 → Householder + QR 算法
│ └── 否 → 能否做三对角化?
│ └── 是 → Householder + QR(三对角矩阵)
│
└── 否 → 需要几个本征值?
├── 1 个(最大)→ 幂法
├── 1 个(指定位置)→ 反幂法
└── 多个极端值 → 矩阵是否对称?
├── 是 → Lanczos
└── 否 → Arnoldi
13.4 算法背后的数学思想
| 思想 | 代表算法 | 核心操作 |
|---|---|---|
| 旋转消元 | Jacobi, Givens QR | 逐个/逐列消去非对角元 |
| 反射消元 | Householder | 批量整列消元 |
| 子空间投影 | Lanczos, Arnoldi | 在 Krylov 子空间做近似 |
| 迭代收敛 | Power, QR | 反复作用使主导方向浮现 |
| 低秩近似 | SVD, DMRG | 保留最大奇异值/最大纠缠 |
| 重整化 | NRG, DMRG | 通过截断控制 Hilbert 空间维度 |
13.5 二十世纪十大算法(与本课程相关的两个)
- QR 算法 —— 计算矩阵全部本征值的标准方法
- Krylov 子空间方法 —— 大型稀疏矩阵本征值问题的革命性方法
13.6 关键公式速查
| 公式 | 名称 | 含义 | ||
|---|---|---|---|---|
| 本征值方程 | 矩阵作用 = 标量拉伸 | |||
| Householder 矩阵 | 反射变换矩阵 | |||
| Jacobi 旋转角 | 消去非对角元 | |||
| QR 迭代 | 反向乘积累 | |||
| Shifted QR | 加速收敛的位移 | |||
| SVD | 奇异值分解 | |||
| Krylov 子空间 | 子空间基的生成 | |||
| (三对角) | Lanczos 分解 | 对称情况的简化 | ||
| (上 Hessenberg) | Arnoldi 分解 | 非对称情况的投影 | ||
| $\tilde{\rho}A = \text{Tr}B | \psi\rangle\langle\psi | $ | 约化密度矩阵 | DMRG 的截断依据 |
Akuiro 整理补充· 2026-07-08