Math.NET Numerics 中如何实现 QR 分解?
是使用 Gram-Schimdt 还是使用 Givens 旋转?我感觉它是用 Gram-Schimdt 实现的,但我不确定。我找不到实现。
就结果而言,使用 Gram-Schimdt 的 QR 分解与使用 Givens 旋转的不同吗?
我使用Givens旋转矩阵生成(手动)QR分解,然后使用MathNet.Numerics.LinearAlgebra.Generic.Factorization.QRMethod
(我相信它实现了Gram-Schimdt)生成QR分解,结果略有不同。数字之间的差异大约为 1E-16(不是那么大),并且某些行具有相反的符号 (*-1)(这是真正的问题 - 我认为这是因为 MathNet.Numerics 实现了不同的 QR 算法)。
你能推荐一些使用 Givens 旋转执行 QR 分解的库吗?