更改

删除1字节 、 2024年10月25日 (星期五)
第487行: 第487行:  
GNU科学库(GSL)也实现了相同算法,并提供了一种替代方法,在第2步中使用单边雅可比正交化(GSL Team 2007)<ref>{{cite web |url=https://www.gnu.org/software/gsl/doc/html/|title=§14.4 Singular Value Decomposition |author=GSL Team |year=2007 |work=GNU Scientific Library Reference Manual}}</ref>。这种方法通过求解一系列<math>2\times 2</math>的SVD问题来计算双对角矩阵的SVD,类似于雅可比特征值算法求解一系列<math>2\times 2</math>的特征值问题(Golub & Van Loan 1996,§8.6.3)<ref>{{cite book |last1=Golub |first1=Gene H. |last2=Van Loan |first2=Charles F. |title=Matrix Computations |edition=3rd |publisher=Johns Hopkins |year=1996 |isbn=978-0-8018-5414-9}}</ref>。第2步的另一种方法借鉴了分治特征值算法(divide-and-conquer eigenvalue algorithms)的思想(Trefethen & Bau III 1997,第31讲)。
 
GNU科学库(GSL)也实现了相同算法,并提供了一种替代方法,在第2步中使用单边雅可比正交化(GSL Team 2007)<ref>{{cite web |url=https://www.gnu.org/software/gsl/doc/html/|title=§14.4 Singular Value Decomposition |author=GSL Team |year=2007 |work=GNU Scientific Library Reference Manual}}</ref>。这种方法通过求解一系列<math>2\times 2</math>的SVD问题来计算双对角矩阵的SVD,类似于雅可比特征值算法求解一系列<math>2\times 2</math>的特征值问题(Golub & Van Loan 1996,§8.6.3)<ref>{{cite book |last1=Golub |first1=Gene H. |last2=Van Loan |first2=Charles F. |title=Matrix Computations |edition=3rd |publisher=Johns Hopkins |year=1996 |isbn=978-0-8018-5414-9}}</ref>。第2步的另一种方法借鉴了分治特征值算法(divide-and-conquer eigenvalue algorithms)的思想(Trefethen & Bau III 1997,第31讲)。
   −
还有一种不显式使用特征值分解的替代方法<ref>{{cite web |title=Simple SVD |url=https://mathworks.co.kr/matlabcentral/fileexchange/12674-simple-svd |website=MATLAB Central File Exchange }}</ref>。通常,我们将矩阵<math>\mathbf{M}</math>的奇异值问题转换为等价的对称特征值问题,如<math>\mathbf{M}\mathbf{M}^{*}</math>,<math>\mathbf{M}^{*}\mathbf{M}</math>,或
+
还有一种不显式使用特征值分解的替代方法<ref>{{cite web |title=Simple SVD |url=https://mathworks.co.kr/matlabcentral/fileexchange/12674-simple-svd |website=MATLAB Central File Exchange }}</ref>。通常,我们将矩阵<math>\mathbf{M}</math>的奇异值问题转换为等价的对称特征值问题,如<math>\mathbf{M}\mathbf{M}^{*}</math>,<math>\mathbf{M}^{*}\mathbf{M}</math>,或 <math> \begin{bmatrix}\mathbf{0} &\mathbf{M} \\\mathbf{M}^{*}&\mathbf{0} \end{bmatrix}. </math>
 
  −
<math> \begin{bmatrix}\mathbf{0} &\mathbf{M} \\\mathbf{M}^{*}&\mathbf{0} \end{bmatrix}. </math>
      
使用特征值分解的方法基于QR算法,该算法已发展得稳定且快速。注意,奇异值是实数,右奇异向量和左奇异向量不需要形成相似变换。我们可以在QR分解和LQ分解之间迭代交替以找到实对角Hermitian矩阵。QR分解给出<math>\mathbf{M} \Rightarrow \mathbf{Q}\mathbf{R}</math>,<math>\mathbf{R}</math>的LQ分解给出<math>\mathbf{R} \Rightarrow \mathbf{L}\mathbf{P}^{*}</math>。因此,每次迭代中,我们有<math>\mathbf{M} \Rightarrow \mathbf{Q}\mathbf{L}\mathbf{P}^{*}</math>,更新<math>\mathbf{M} \Leftarrow \mathbf{L}</math>并重复正交化。最终,[需要澄清]QR分解和LQ分解之间的这种迭代产生左右酉奇异矩阵。这种方法不能像QR算法那样通过谱移位或缩减来加速,因为没有使用相似变换,移位方法不易定义。然而,这种迭代方法实现简单,当速度不重要时是个不错的选择。它还提供了纯正交/酉变换如何获得SVD的洞察。
 
使用特征值分解的方法基于QR算法,该算法已发展得稳定且快速。注意,奇异值是实数,右奇异向量和左奇异向量不需要形成相似变换。我们可以在QR分解和LQ分解之间迭代交替以找到实对角Hermitian矩阵。QR分解给出<math>\mathbf{M} \Rightarrow \mathbf{Q}\mathbf{R}</math>,<math>\mathbf{R}</math>的LQ分解给出<math>\mathbf{R} \Rightarrow \mathbf{L}\mathbf{P}^{*}</math>。因此,每次迭代中,我们有<math>\mathbf{M} \Rightarrow \mathbf{Q}\mathbf{L}\mathbf{P}^{*}</math>,更新<math>\mathbf{M} \Leftarrow \mathbf{L}</math>并重复正交化。最终,[需要澄清]QR分解和LQ分解之间的这种迭代产生左右酉奇异矩阵。这种方法不能像QR算法那样通过谱移位或缩减来加速,因为没有使用相似变换,移位方法不易定义。然而,这种迭代方法实现简单,当速度不重要时是个不错的选择。它还提供了纯正交/酉变换如何获得SVD的洞察。
2,464

个编辑