[Eigen中文文档] 稠密矩阵分解函数对比

简介: 本文介绍了 Eigen 为各种方阵和过约束问题提供的稠密矩阵分解的速度比较。

文档总目录

英文原文(Benchmark of dense decompositions)

本页介绍了 Eigen 为各种方阵和过约束问题提供的稠密矩阵分解的速度比较。

有关线性求解器、分解的特征和数值鲁棒性的更一般概述,请查看 此表

该基准测试已在配备英特尔酷睿 i7 @ 2.6 GHz 的笔记本电脑上运行,并使用启用了 AVX 和 FMA 指令集但没有多线程的 clang 进行编译。使用单精度浮点数,对于 double,可以通过将时间乘以一个因子 2 来得到一个很好的估计。

方阵是对称的,对于过约束矩阵,测试报告的时间包括计算对称协方差矩阵 $A^TA$ 的成本,对于前四个基于 Cholesky 和 LU 的求解器,用符号 * 表示(表的右上角部分)。计时以毫秒为单位,因素与LLT分解有关, LLT分解速度最快,但也是最不通用和鲁棒的。

屏幕截图 2023-06-01 231235.png

* : 此分解不支持对过度约束问题的直接最小二乘求解,并且报告的时间包括计算对称协方差矩阵 $A^TA$ 的成本。

总结:

上表由 bench/dense_solvers.cpp 文件生成,可以随意修改它以生成与你的硬件、编译器和问题大小相匹配的表格。

相关文章
|
9月前
|
XML 并行计算 算法
[Eigen中文文档] 求解稀疏线性系统
在Eigen中,有多种方法可用于求解稀疏系数矩阵的线性系统。由于此类矩阵的特殊表示,必须特别小心以获得良好的性能。本文列出了Eigen中可用的稀疏求解器。还介绍了所有这些线性求解器共同的主要步骤。根据矩阵的属性、所需的准确度,最终用户可以调整这些步骤以提高其代码的性能。请注意,并不需要深入了解这些步骤背后的内容:最后一节介绍了一个基础例程,可轻松使用以获取所有可用求解器的性能洞察。
217 0
|
9月前
|
并行计算 算法 测试技术
[Eigen中文文档] 稠密分解方法目录
本文介绍了 Eigen 提供的处理稠密矩阵分解方法的目录。
86 0
|
11月前
|
机器学习/深度学习 存储 vr&ar
线性代数高级--矩阵的秩--SVD分解定义--SVD分解的应用
线性代数高级--矩阵的秩--SVD分解定义--SVD分解的应用
|
1月前
|
机器学习/深度学习 算法 搜索推荐
SciPy线性代数库详解:矩阵运算与方程求解
【4月更文挑战第17天】SciPy的`scipy.linalg`模块提供丰富的线性代数功能,包括矩阵运算、线性方程组求解、特征值问题和奇异值分解等,基于BLAS和LAPACK库确保效率与稳定性。关键操作如矩阵乘法使用`dot`函数,转置和共轭转置用`transpose`和`conj`,求解线性方程组有`solve`和迭代方法,计算特征值和向量用`eig`,奇异值分解则依赖`svd`。这个库对科学计算、数据分析和机器学习等领域至关重要。
|
9月前
|
存储
[Eigen中文文档] 就地矩阵分解
从 Eigen 3.3 开始,LU、Cholesky 和 QR 分解可以就地操作,即直接在给定的输入矩阵内操作。当处理大矩阵时,或者当可用内存非常有限(嵌入式系统)时,此功能特别有用。
54 0
|
9月前
|
存储 算法 NoSQL
[Eigen中文文档] 稀疏矩阵操作
在许多应用中(例如,有限元方法),通常要处理非常大的矩阵,其中只有少数系数不为零。在这种情况下,可以通过使用仅存储非零系数的特殊表示来减少内存消耗并提高性能。这样的矩阵称为稀疏矩阵。
273 0
|
9月前
|
安全 编译器 C++
[Eigen中文文档] 矩阵与向量运算
本文章旨在提供有关如何使用 Eigen 在矩阵、向量和标量之间执行算术操作的概述和一些详细信息。
230 0
|
9月前
[Eigen中文文档] 无矩阵求解器
本文介绍Eigen的无矩阵求解器。
80 0
|
9月前
|
测试技术
[Eigen中文文档] 线性代数与分解
本节将说明如何求解线性系统,计算各种分解,如 LU、QR、SVD、特征分解……
117 0
|
9月前
[Eigen中文文档] 求解线性最小二乘系统
本文介绍如何使用 Eigen 求解线性最小二乘系统。 本文讨论三种方法 SVD 分解、QR 分解和正规方程。其中,SVD 分解通常最准确但最慢,正规方程式最快但最不准确,QR 分解介于两者之间。
150 0