把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end

LU 分解及 Matrix determinant lemma

LU 分解

对于一个矩阵 A,求出 A=LU,其中 L 是下三角矩阵,U 是上三角矩阵的过程称为 LU 分解。

一般矩阵的 LU 分解可以消成行列式的同时记录逆矩阵,复杂度同高斯消元。

一个比较好的性质是 |A|=|L||U|,如果能利用 A 的特殊性质快速分解出来,因为 |L|,|U| 就是对角线乘积,所以 |A| 可以快速计算。

比如 Ai,j=gcd(i,j)

对其施以欧拉反演,可以得到 Ai,j=dgcd(i,j)φ(d)

则可以拆成两个矩阵:Li,j=[ji]φ(j),Ui,j=[ij],则容易验证 A=LU,且 L,U 满足三角矩阵条件。因此 |A|=i=1nφ(i)

进一步的,如果 Ai,j=f(gcd(i,j)),则对于满足 fi=jigj,即 gf 的高维差分,|A|=i=1ng(i)

一个可能有用的论文

Matrix determinant lemma

Un×m 的矩阵,Vm×n 的矩阵,Ixx 阶单位矩阵。

主要定理是:

|In+UV|=|Im+VU|

证明可以考虑构造矩阵相乘:

(InVIm)(In+UVUIm)(InVIm)=(InUVU+Im)

对两边取行列式即可。

将其扩展到一般的情况,令 An×n 矩阵,则有

|A+UV|=|A||In+UVA1|=|A||In+VA1U|

假设我们要求的是一个形如 |DG| 的行列式,且 G=UVD 易求行列式和逆,则 MDL 的最大作用是将 G 原本隐藏在这个乘法里的性质显露出来。一个简单的应用例子:如果 m 远小于 n,则现在只需要做一次 m×n×m 的矩阵乘法并对一个阶为 m 的矩阵求行列式,而不是原来的 n×m×n 的矩阵乘法以及阶为 n 的矩阵求行列式。

其相比于 LU 分解来说不要求分解出来的一定是两个对角矩阵,适用性更加广泛,但是性质要弱一点。

PA 2022 Drzewa rozpinające

使用矩阵树定理,我们要求的值即为 |DG|,其中 D 为度数矩阵,G 为邻接矩阵。

D 容易计算,并且由于其为对角矩阵,逆和行列式都容易计算。考虑仍然对 G 施以欧拉反演,可以构造出两个 n×m 的矩阵 Ui,j=[jai]φ(j),Vi,j=[iaj],满足 G=UV

使用 MDL,可以得到我们要求的就是 |D||In+VA1U|

你说得对,但是这看上去还是要求阶为 5000 矩阵的行列式啊?

考虑矩阵 VA1U 的实际意义,会发现只有 lcm(i,j)m 的位置有值,因此这个矩阵非常稀疏,且值主要集中在上方的一个类似于反比例函数的区域,所以从下到上消元速度非常快。时间复杂度可以(?)看作 O(n2) 的。

submission

AGC060F Spanning Trees of Interval Graph

使用矩阵树定理,直接求行列式需要对一个很大的矩阵消元,爆了。

发现可以使用点减边容斥计算这个 G,这样的话使用 MDL 之后就只需要对一个阶 2n1 的矩阵求行列式,于是就对完了。

D,VA1U 均容易根据实际意义二维前缀和求得,时间复杂度 O(n3)

submission

posted @   275307894a  阅读(161)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2022-10-18 QOJ #2643. Bubble Sort 2
浏览器标题切换
浏览器标题切换end
点击右上角即可分享
微信分享提示