当前位置:K88软件开发文章中心编程语言非主流编程语言Julia → 文章内容

Julia 线性代数

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-15 16:28:19

由 陈 创建, 最后一次修改 2016-08-12 线性代数矩阵分解矩阵分解是将一个矩阵分解为数个矩阵的乘积,是线性代数中的一个核心概念。下面的表格总结了在 Julia 中实现的几种矩阵分解方式。具体的函数可以参考标准库文档的 Linear Algebra章节。CholeskyCholesky 分解CholeskyPivoted主元 Cholesky 分解LULU 分解LUTridiagonal三对角矩阵的 LU 因子分解UmfpackLU稀疏矩阵的 LU 分解(使用 UMFPACK 计算)QRQR 分解QRCompactWYQR 分解的紧凑 WY 形式QRPivoted主元 QR 分解HessenbergHessenberg 分解Eigen特征分解SVD奇异值分解GeneralizedSVD广义奇异值分解特殊矩阵线性代数中经常碰到带有对称性结构的特殊矩阵,这些矩阵经常和矩阵分解联系到一起。Julia 内置了非常丰富的特殊矩阵类型,可以快速地对特殊矩阵进行特定的操作.下面的表格总结了 Julia 中特殊的矩阵类型,其中也包含了 LAPACK 中的一些已经优化过的运算。Hermitian埃尔米特矩阵Triangular上/下三角矩阵Tridiagonal三对角矩阵SymTridiagonal对称三对角矩Bidiagonal上/下双对角矩阵Diagonal对角矩阵UniformScaling缩放矩阵基本运算矩阵类型+-*\其它已优化的函数HermitianXYinv, sqrtm, expmTriangularXYXYinv, detSymTridiagonalXXXZXYeigmax/minTridiagonalXXXZXYBidiagonalXXXZXYDiagnoalXXXYXYinv, det, logdet, /UniformScalingXXXYZXYZ/图例:X已对矩阵-矩阵运算优化Y已对矩阵-向量运算优化Z已对矩阵-标量运算优化矩阵分解矩阵类型LAPACKeigeigvalseigvecssvdsvdvalsHermitianHEABCTriangularTRSymTridiagonalSTAABCADTridiagonalGTBidiagonalBDAADiagonalDIA图例:A已对寻找特征值和/或特征向量优化例如 eigvals(M)B已对寻找 ilth 到 ihth 特征值优化eigvals(M, il, ih)C已对寻找在 [vl, vh] 之间的特征值优化eigvals(M, vl, vh)D已对寻找特征值 x=[x1, x2,...] 所对应的特征向量优化eigvecs(M, x)缩放运算一个 UniformScaling 运算符代表了一个单位算子的标量次数, λ*I。单位算子 I 被定义为一个常量且是 UniformScaling 的一个实例。 这些运算符的尺寸是一般大小,可匹配 +,-,* 和 \ 等其它二元运算符中的矩阵。对于 A+I 和 A-I 这意味着 A 必须是一个方阵. 使用了单位算子 I 的乘法运算是一个空操作(除非缩放因子为一) ,因此基本没有开销。

Julia 线性代数