问题标签 [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 回答
668 浏览

sparse-matrix - 特征 QR 分解结果不同于两种方法

我尝试使用Eigen进行QR分解,但是从以下两种方法得到的结果不同,请帮助我找出错误!谢谢。

0 投票
1 回答
74 浏览

r - 通过 Householder 成功找到 Q & R 后无法在 R 中获得线性回归系数

我正在手动尝试计算回归系数,而不是对数据使用任何默认值http://people.sc.fsu.edu/~jburkardt/datasets/regression/x31.txt

这是我的代码,它可以正确生成满足 A=QR 的 Q&R。但我无法找到系数作为 Q & R 产生问题的维度。任何专家可以在这里帮助我吗?当我有适当的问答时,如何找到系数会出错?

0 投票
1 回答
1426 浏览

performance - 如何在 Julia 中最有效地使用 QR 分解?

避免数组分配有利于性能。但是,我还没有理解执行矩阵 QR 分解的最有效方法是什么A。(注意:需要 Q 和 R 矩阵)

简单地使用 Q, R = qr(A) 可能不是最好的主意,因为它同时分配了 Q 和 R,两者都可以重新分配。

该功能qrfact允许以打包格式存储分解。但是,之后我仍然会写: F = qrfact(A); Q = F[:Q]; R = F[:R] 再次为Qand分配新数组R。最后,文档还建议了该qrfact!函数,该函数通过覆盖输入 A 来节省空间,而不是创建一个副本。但是,如果一个人使用F = qrfact!(A) 了被覆盖的东西,在某种意义上说它不是orA是没有的,这是一个人(特别是我)需要的。QR

所以我的两个问题是:

  1. 如果您只关心矩阵Q并且R重新分配它们没有问题,那么执行 QR 分解的最佳/最有效方法是什么。

  2. A调用时矩阵中实际写的是什么qrfact!(A)

0 投票
1 回答
119 浏览

decomposition - 我们可以用张量分解做什么?

我有三个关于张量分解的问题。

  1. 张量分解(分解)的情况(或应用)是什么?
  2. 这在未来成为主流技术的可能性有多大?
  3. 你如何使用它?
0 投票
1 回答
18600 浏览

r - “输入意外结束”错误是什么意思?

我目前正在 R 中构建一个应用程序来计算 QR 矩阵分解、QR 非负矩阵分解和计算 ICA。目前我正在处理第一个任务。我收到以下错误:

代码:

我对 R 很陌生。请提出可能是哪个问题。

0 投票
1 回答
560 浏览

cuda - cuSolverDN 或其他 CUDA 库是否有用于密集矩阵的批处理版本的 QR 分解来求解 A*x = b?

我正在尝试解决 A*x = b 其中 A 具有复杂值且密集的问题。

我使用 cuSolverDN 库中的 cusolverDnCgeqrf() 方法对一组线性方程组进行 QR 分解。但是,我想多次这样做以加快处理速度。

这种方法有“批处理”版本吗?或者我可以使用另一个 CUDA 库吗?

0 投票
0 回答
349 浏览

c++ - 修改/缩小特征置换矩阵

我无法解决我认为应该是一个相当简单的问题。基本问题是我想修改 Eigen PermutationMatrix 但我不知道如何。

我正在X使用 C++ Eigen 库对一些矩阵进行 QR 分解。我在秩不足的矩阵上做这个,我需要一个特定的输出。具体来说,我需要

R^{-1} * t(R^{-1})

问题是 usingEigen::ColPivHouseholderQR返回一个置换版本的R. 这很容易解决X满级时的问题,但我想要最快的解决方案来解决等级不足的情况。让我演示一下:

所以基本问题是我想修改 Pmat 以便它只置换我从中提取的 R_inv 的 r 列PQR.matrixQR()。我的基本问题是我不知道如何使用 Eigen PermutationMatrix 修改工作,因为它似乎没有任何普通矩阵的方法或属性。

一种可能的解决方案如下:当我相乘时Pmat * MatrixXd::Identity(p, p),我得到一个有用的矩阵。

例如,我得到类似的东西:

如果 p = 4 和 r = 3,那么我会喜欢这个子视图,在其中我删除前 r 列右侧的所有列,然后删除所有为 0 的行:

所以我可以做到以下几点:

但这似乎很昂贵,并且没有利用 Pmat 已经知道应该删除哪些 Pmat 行的事实。我猜有一种更简单的方法可以使用 Pmat。

有什么方法可以轻松修改 Eigen PermutationMatrix 以仅考虑未放置在第一个r位置之外的列?

任何帮助或提示将不胜感激。


我想出了另一个解决方案,它可能需要更少的计算。

0 投票
0 回答
38 浏览

r - 从 X 的 QR 分解中检索 X

对此感到困惑:我正在计算以下矩阵 X 的 QR 分解,我希望通过计算乘积 QR 来返回 X。好吧,该产品给出了“几乎”X,但是第 1 列和第 2 列倒置了……这怎么可能?

0 投票
1 回答
322 浏览

r - R和matlab中的qr函数

我有一个关于将 matlab 函数转换为 R 的问题,我希望有人能提供帮助。

matlab 和 R 中使用的标准 QR 分解称为 qr()。据我了解,用两种语言执行 qr 分解的标准方法是:

Matlab: [Q,R] = qr(A)满足 QR=A

回复:

两者都为我提供了相同的结果,不幸的是,这不是我所需要的。我需要的是这个:

Matlab: [Q,R,e] = qr(A,0)产生经济尺寸分解,其中 e 是置换向量,因此 A(:,e) = Q*R。

R:没有线索

我尝试将[Q,R,E] = qr(A)

变量 Q 和 E 的结果似乎相同(但 R 不同)。因此,根据定义的输入/输出,会有不同的结果(这是有道理的)。

所以我的问题是: R中有没有一种方法可以在Matlab中模仿这个 [Q,R,e]=qr(A,0) ?

我曾尝试深入研究 matlab 函数,但它导致了漫长而曲折的无尽函数定义之路,我希望有更好的解决方案。

任何帮助将不胜感激,如果我遗漏了一些明显的东西,我深表歉意。

0 投票
1 回答
743 浏览

matlab - 在 MATLAB 中具有给定旋转的 GMRES 方法

我有以下算法实现


vetnorm_r我的问题是在每次迭代(可能在每次重新启动时)获取一个包含所有残差范数(作为输出)的向量(可能是矩阵)。我不知道如何构建这个向量或矩阵。

% 输入 A REAL 非对称正定矩阵 % x REAL 初始猜测向量 % b REAL 右手边向量 % M REAL 预处理器矩阵 % restart INTEGER 重新启动之间的迭代次数 % maxit INTEGER 最大迭代次数 % tol REAL 容错 % % 输出 x实数解向量 % 误差 实数误差范数 % iter INTEGER 执行的迭代次数 % flag INTEGER: 0 = 找到公差的解 % 1 = 给定 maxit 没有收敛

感谢您的任何回复