问题标签 [qr-decomposition]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
975 浏览

r - R中的QR分解和Choleski分解

我最近读到了如何使用 Choleski 分解计算 QR 分解的 R 矩阵。关系是:

R = Choleski 分解(A^TA)

例子:

现在计算 QR 和 Choleski 分解:

正如所观察到的,从 Choleski 和 QR 分解计算的 R 矩阵的值并不相同。第一行和第三行chol(AtA)被否定 wrt qr.R(qr_A)。这是为什么?我假设的关系不正确吗?

0 投票
1 回答
2320 浏览

algorithm - 使用伴随矩阵求根

我想找到一个单变量多项式的所有实根。例如,我可以使用 Jenkins-Traub 算法,但我想学习如何使用伴随矩阵来解决它。

我知道如何将多项式转换为伴随矩阵,并且我找到了一个执行 QR 分解的脚本:http: //quantstart.com/articles/QR-Decomposition-with-Python-and-NumPy

这就是我迷失的地方:下一步该做什么?我想我必须计算多个分解,但是当我这样做时,我总是得到相同的结果(显然)。我还读到,首先将伴随矩阵转换为 Hessenberg 形式可能很有用 - 但是如何?然后是“轮班”——它们是什么?

我还找到了http://www.nr.com/webnotes/nr3web17.pdf但由于我什么都不懂,我想知道是否有更简单的方法(即使速度较慢或不太稳定)。

换句话说:阅读http://en.wikipedia.org/wiki/QR_algorithm

  • “让 A 成为我们想要计算其特征值的实矩阵”
    好的,那是我的伴生矩阵,对吗?

  • “我们计算来自第一个链接的 QR 分解 Ak=QkRk”,对吗
    Q, R = householder(A)

  • “然后我们形成 Ak+1 = RkQk”
    很容易,只需将 R 和 Q 相乘

  • “在一定条件下,[2] 矩阵 Ak 收敛到一个三角矩阵,即 A 的 Schur 形式。三角矩阵的特征值列在对角线上,特征值问题就解决了。”
    ……等等,什么?我试过了:

    /li>

但似乎没有任何进展,我什至看不到任何接近正确根源的数字。

请问,谁能给我解释一下?

PS:我不想盲目地使用 LAPACK 或类似的东西,因为我想了解它是如何工作的,至少在非常简化的方面。

PPS:还有http://adorio-research.org/wordpress/?p=184(不知道它与第一种方法有什么不同,虽然......)

0 投票
1 回答
2381 浏览

r - 从 QR 分解中获取帽子矩阵以进行加权最小二乘回归

我正在尝试扩展lwr()package 的功能McSptial,它将加权回归拟合为非参数估计。在函数的核心中,它使用QR 分解而不是 QR 分解来lwr()反转矩阵,从而导致数值不稳定。solve()我想更改它,但无法弄清楚如何从 QR 分解中获取帽子矩阵(或其他导数)。

有数据:

lwr()功能如下:

我需要的值,例如:

目前我使用reg <- lm.wfit(x=xmat, y=y, w=w)但无法从其中取回在我看来是帽子矩阵 ( xmat1) 的东西。

0 投票
1 回答
1164 浏览

r - 在 QR 分解中计算 R 矩阵并在 R 中旋转列

我有一个矩阵A,可以通过以下代码获得:

我想对矩阵应用 qr 分解与列旋转A,然后我执行以下代码来获取矩阵R,但我们知道t(R)%*%R应该与矩阵相同A,为什么它们根据行或列的顺序不同?我怎样才能得到正确的矩阵R

0 投票
1 回答
1423 浏览

matlab - Matlab中使用QR分解求解最小二乘

我正在使用 Matlab 估计具有普通最小二乘法 (OLS) 的回归模型。

该模型是y = xB,其中x是一个非常稀疏的矩阵,其维度为500000 x 2500。我正在使用 QR 分解:

然后b估计

我的问题是我是否需要担心这里的数字错误。我需要做一些额外的迭代吗?R我应该检查, 或的条件数R'R吗?任何指导将不胜感激。

0 投票
2 回答
2249 浏览

python - 使用 numpy 和 CULA 的不同 QR 分解结果

我以两种不同的方式执行 QR 分解:使用标准 numpy 方法和使用在 CULA 库中实现的 GEQRF LAPACK 函数。这是python中的简单示例(用于访问CULA的PyCULA):

它产生以下输出:

我的代码有什么问题?

0 投票
1 回答
1536 浏览

matlab - 使用 Givens-rotations 计算 Hessenberg 矩阵

我正在 matlab 中实现计算给定矩阵 A 的 Hessenberg 矩阵。我理解数学并且我手动计算了它,但我一直在使用相同的解决方案。

矩阵 A =

我的结果=

matlab中的hess结果=

我获得的结果是仅使用一个 Given 旋转

G{1}(3,4)

G{1}(3,4).transpose * A * G{1}(3,4) 应该得到正确的解决方案。

如您所见,我获得的结果有一些不属于它们的减号。我的实现是错误的还是 hess 的实现是错误的,或者它们都是有效的?

提前谢谢了!

0 投票
1 回答
1909 浏览

python - 在 scipy/numpy 中 n > m 的矩形矩阵的 QR 分解

我有一个 n > m 的 amxn 矩形矩阵 A。给定 A 的秩 r <= m,简化的 QR 分解产生具有 mxr 维的矩阵 Q,以及具有 rxn 维的 R。Q 的列是 A 范围的正交基。R 将是上三角形,但呈阶梯状。R 中带有枢轴的列对应于 A 中的独立列。

当我从 numpy.linalg 应用 qr 函数时(在 scipy.linalg 中也有这个函数的一个版本,这似乎是相同的),它返回矩阵 Q 具有 mxm 维度,以及 R 具有 mxn 维度,即使排名为矩阵 A 小于 m。这似乎是“完整”的 QR 分解,其中 Q 的列是 Re^m 的正交基。是否可以通过 numpy.linalg;scipy.linalg 中函数 qr 返回的这个 R 矩阵来识别 A 的独立列?

0 投票
1 回答
519 浏览

r - base R`qr`如何创建QR分解紧凑形式?

我想知道如何使用RcppArmadillo. RcppArmadillo使用以下方法在矩阵上运行 QR 分解相对简单:

但是,当我将 的输出fun与正常的 Rqr方法进行比较时,我被qr$qr.

我尝试在 R 源代码中查找旧的 Fortran,dqrdc2.f但我不是一个强大的 Fortran 程序员,无法弄清楚这种紧凑形式是如何创建的。在这里这里都提出了类似的问题,但我还没有找到解决方案。这里的最终目标是:

fun如果我能了解这种紧凑的形式,显然会修改输出。

编辑

报告的文档qr

这个“下三角”是我想了解的。

0 投票
0 回答
1052 浏览

c++ - Eigen SparseQR 矩阵逆并不像 Matlab 中那样精确

在我的算法中,我采用了稀疏矩阵逆运算,并通过使用 QR 分解方法的 A*x=b 方法来解决它。在 Matlab 上,QR 操作运行良好。

但是,当我尝试使用 Eigen 库将代码转换为 C++ 时,我没有得到相同的答案。在某些情况下,与 Matlab 中的结果相比,向量 x 的每个元素都有一些值的偏移。然而,导致移位的这个值在向量中的所有元素中都是恒定的。

一瞥我所做的事情:

x 是我的最终向量,其中包含 A.inverse()*b 的结果,不是吗?

此外,我试图将它作为一个完整的矩阵来解决,但与 Matlab 相比,在 C++ 上仍然产生了不同的答案。

这里有没有人遇到过类似的问题?如果是,欢迎任何帮助或指点。另一方面,如果我的理解有问题,也感谢任何纠正。

谢谢。