问题标签 [matrix-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.
ruby - Ruby Matrix::特征值分解错误
我查看了给定矩阵的特征向量矩阵,但是当我尝试对其求逆时,我在eigenvector_matrix_inv()
.
它不应该是单数,如检查Mathematica
:
给予
我究竟做错了什么 ?
我应该特别注意 Ruby 中的一些特殊内容吗?
matlab - 通过给定的 LU 分解和常数向量求解线性方程组
给定L
和U
LU 分解和常数向量b
这样LU*x=b
,是否有任何内置函数可以找到x
?意思是 -
请注意,在两者中L
,U
我们都在处理三角矩阵,它可以通过前向和后向替换直接求解,而无需使用高斯消元过程。
编辑 :
求解这个线性方程组应该按照以下步骤——
编辑 2:
我找到了 linalg::matlinsolveLU 但我没有尝试,因为我的版本太旧 ( R2010a
) 。它对任何人都有效吗?
cuda - 使用 CUDA 的矩阵乘法的特例
我正在寻找一些专用于典型密集矩阵乘法的特殊函数(CUDA),例如 A*B,其中 A 的大小为 6*n,B 的大小为 n*6,n 非常大(n=2 ^24)。我已经使用 CUBLAS 和其他一些库来测试这个示例,在 CUBLAS 中,对于这个示例,我们使用 6*6=36 个线程,这与 GPU 的总并行度相差甚远,所以我将 A 和 B 拆分为子矩阵(向量)然后对它们中的每一个实现点积函数,性能得到了很好的提升。问题是,在这种情况下,我们需要启动 36 个 CUDA 内核,并且在它们之间有很多相同的数据足迹(相同的数据已经从 GPU 的全局内存中访问过多次)。所以我问这种问题是否存在任何解决方案。
c++ - mpi环境中c/c++中并行分布式cholesky分解的库?
在 mpi 环境中,哪些库可用于 C/C++ 中密集矩阵的并行分布式 Cholesky 分解?
我找到了 ScaLAPACK 库,这可能是我正在寻找的解决方案。似乎调用起来有点繁琐,有很多 Fortran <-> C 转换要做,这让我觉得它可能没有被广泛使用,因此也许有一些其他的库被用来代替?
或者,当一个已经在使用 MPI 并且 MPI 已经在程序中初始化时,是否有一些 ScaLAPACK 包装器使得在 C 或 C++ 环境中使用起来相对不太痛苦?
java - Java中的CHOLMOD
我已经问过类似的问题,但这次我会更具体。
我需要在一个for
循环中执行一个通常很大的正定对称矩阵(约1000x1000
)的 Cholesky 分解。现在,为此,我一直在尝试:
1) Apache 数学库
2) 并行 Colt 库
3) JLapack 库
例如,如果与 MATLAB 相比,在上述三种情况中的任何一种情况下,时间消耗都非常长。
因此,我想知道在 Java 中是否有任何高度优化的外部 Cholesky 分解工具:例如,我一直在考虑CHOLMOD算法,它实际上在内部MATLAB
和其他工具中调用。
我非常感谢您能就此事获得全面的反馈。
algorithm - LU分解方阵matlab高斯消除
我正在尝试创建一个程序,该程序将方形(n×n)矩阵作为输入,如果它是可逆的,LU 将使用高斯消元法分解矩阵。
这是我的问题:在课堂上,我们了解到最好更改行,以便您的枢轴始终是其列中的最大数字(绝对值)。例如,如果矩阵当时正在A = [1,2;3,4]
切换行[3,4;1,2]
,那么我们可以继续进行高斯消元。
我的代码适用于不需要行更改的矩阵,但对于需要行更改的矩阵,则不需要。这是我的代码:
澄清:由于我们正在切换行,我们正在寻找分解P
(置换矩阵)时间,而不是我们作为输入A
的原始数据。A
代码说明:
- 首先我检查矩阵是否可逆,如果不是,停止。如果是,则枢轴为 (1,1)
- 我在第 1 列中找到最大的数字,然后切换行
- 使用高斯消元对第 1 列进行评分,将除点 (1,1) 之外的所有部分都归零
- 枢轴现在是 (2,2),在第 2 列中找到最大的数字...冲洗,重复
java - 在java中计算截断奇异值分解的最佳方法
我想对最好的 2 或 3 个库进行基准测试,以计算截断奇异值分解 (SVD),即仅保留 k 个最大奇异值的 SVD。此外,我有这些限制:
- 它必须是一个java库
- 我的矩阵是稀疏的(大约 1% 非零值)
- 我的矩阵很大(通常是 10k x 5k)
- 我的矩阵也可以大于高(5k x 10k)
我遇到了相当多的库,但例如,对于 Colt,我什至不知道 SVD 算法是否考虑到我的矩阵是稀疏的这一事实。此外,我没有找到可以直接计算截断解决方案的单个库(应该更快)。实际上,我最感兴趣的是从截断的 SVD 获得的近似矩阵。
提前感谢您的帮助,
罗曼·拉罗什
java - Java Concurrent - Fork/Join 中的线程同步 - LU 分解
在开发Java软件的过程中,我在这里问Java Concurrent - no speedUp 获得LU算法 - 虚假共享?为什么我没有加快使用 CyclicBarrier 并行化此代码的速度。
该算法基本上是做矩阵的高斯归约
经过一番讨论(如果您感兴趣,请查看评论),用户 (brettw) 使用 Fork/Join Java 框架回复了此解决方案:
问题是该算法不会产生预期的结果,因为没有与工作人员同步(每一行都必须更新所有值以增加k
值)。
我的问题是:
由于我无法预见线程/工作者的数量,您会建议什么样的同步策略?
matrix - LU分解N^3
假设我有一个正方形 NXN 对称实数矩阵 A,并且我想计算 A 的 LU 分解。最好的算法来做到这一点
- 如果 A 是稠密矩阵
- 如果 A 是稀疏矩阵?
java - 4x4变换矩阵分解
我正在尝试分解一个齐次坐标变换矩阵,它是这些变换矩阵的结果(按其书写顺序应用):非均匀缩放 -> 旋转 -> 翻译我从生成 4x4 变换矩阵(最后一列的前三个值),但我找不到提取旋转和缩放矩阵的方法。
我在网上找到了以下矩阵分解算法:
- 将比例因子计算为矩阵的前三个基向量(列或行)的大小
- 将前三个基向量除以这些值(从而对它们进行归一化)
- 矩阵的左上角 3x3 部分现在表示旋转(您可以按原样使用它,也可以将其转换为四元数形式)
- 平移是矩阵的第四个基向量(在齐次坐标中 - 这将是您感兴趣的前三个元素)
这是我的java实现
但是它检索到的轴角和比例因子是不正确的。
它出什么问题了?