极地分解的快速算法

计算科学 线性代数 矩阵 近似
2021-12-09 21:35:13

众所周知,根据极坐标分解,方阵可以表示为下式

M=QR
Q - 正交矩阵R - 正半正定 Hermitian 矩阵)

对于 3× 3矩阵的情况,我需要找到这个Q因子。为此,我使用下一个众所周知的迭代公式3×3

Qi+1=12[Qi+(Qi1)T]

其中detQ00 但是,在实践中它的工作有点慢(它需要超过 15 次迭代才能找到正确的答案)。是否存在任何其他更快的算法来执行极地分解?对于2×2矩阵的情况,我找到了找到Q因子的精确公式。2×2

Q=M+sign(detM)(dcba)
其中初始矩阵M=\begin{pmatrix} a & b \\ c & d\\ \end{pmatrix} 3\times 3矩阵
M=(abcd)
是否存在这样的公式?3×3

3个回答

您可以将问题简化为计算奇异值分解,为此存在许多快速方法和代码。对于快速 3x3 SVD,我找到了这篇论文

为了将极坐标分解简化为 SVD,假设极坐标分解写成以下形式,

M=UP,

具有正交和半正定(即,从你的符号)。的 SVD 表示为P UPQURPP

P=VΣVT.

将第二个方程代入第一个方程,

M=UVΣVT.

换句话说,如果你计算 M 的 SVD M

M=WΣVT,

由上式给出,且 P

U=WVT.


顺便说一句,当你想证明无限维算子的类 SVD 分解的存在时,一种基本策略是从更容易证明的极分解开始,然后向后执行这些步骤。

AJM Spencer在 Continuum Mechanics 中的第 2.5 节专门讨论 3x3 极分解。

最近的一份出版物提出了一种解决 3x3 极坐标分解的新方法。

一种计算 3x3 矩阵的极分解的算法

(我真的很惊讶 OP 迭代方法需要 15 次迭代!)