You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于对角矩阵极分解交换性及PU型极分解的疑问

关于对角矩阵极分解交换性及PU型极分解的疑问

嗨,我来帮你理清这些关于极分解的疑问~

1. 极分解其实有两种形式:UP和PU都存在

首先纠正一个认知:你说的两种形式都是合法的极分解,只是分右极分解和左极分解:

  • 右极分解:任意矩阵A(实/复)都能写成 A = U P,其中U是酉矩阵(实矩阵对应正交矩阵),P是半正定Hermitian矩阵(实矩阵对应半正定对称矩阵)。这里的P是唯一的,等于 (A^H A)^(1/2)(A^H是共轭转置,实矩阵就是普通转置);如果A可逆,U也是唯一的,等于 A P^{-1}。
  • 左极分解:A也能写成 A = P U,这里的P是半正定Hermitian矩阵(等于 (A A^H)^(1/2)),U同样是酉矩阵,P唯一,可逆时U也唯一。

所以你一开始记错的PU形式是存在的,只是它是左极分解,而我们常说的标准极分解一般指右极分解(UP)。

2. 什么时候UP和PU相等?

你测试的矩阵里U@P和P@U相等,核心原因是U和P这两个矩阵可交换。针对对角矩阵的情况:
假设A是对角矩阵diag(d1, d2, ..., dn),它的右极分解里:

  • P是diag(|d1|, |d2|, ..., |dn|)(半正定对角矩阵)
  • U是diag(d1/|d1|, d2/|d2|, ..., dn/|dn|)(酉/正交对角矩阵)

而对角矩阵之间的乘法天生是可交换的(两个对角矩阵相乘,结果还是对角矩阵,每个对角元是对应位置元素的乘积,顺序不影响结果),所以此时UP = PU。

不过要注意:不是所有矩阵的极分解都满足这个等式,只有当U和P可交换时才成立。比如非对称的可逆矩阵(比如A = [[1, 2], [0, 1]]),它的极分解里U和P就不可交换,此时UP≠PU。

另外你测试的那个三对角矩阵,它其实是实对称矩阵,实对称矩阵的极分解中,U和P都是对称矩阵,而且可以同时对角化,所以它们也能交换,这就是为什么你得到的A1和A2相等的原因。

3. 简单总结

  • 极分解有两种形式:右分解UP和左分解PU,都是合理的,只是对应的P分别由A^H A和A A^H的平方根得到。
  • 对角矩阵的极分解中,U和P都是对角矩阵,必然可交换,所以UP=PU;实对称矩阵(包括对角矩阵)的极分解也满足这个等式。
  • 非对称且无法同时对角化的矩阵,极分解的U和P不可交换,此时UP≠PU。

附上你提供的测试代码:

import numpy as np
from scipy.linalg import polar
A= np.array([[-2, 1, 0, 0],
              [1, -2, 1, 0],
              [0, 1, -2, 1],
              [0, 0, 1, -2]])
U, P = polar(A)
print(U)
print(P)
A1 = U @ P
print(A1)
A2 = P @ U
print(A2)
are_equal = np.allclose(A1, A2)
print("Are matrix equal:", are_equal)

备注:内容来源于stack exchange,提问作者Manu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 13:13:00