×
Julia 简介Julia 开始Julia 变量声明与命名Julia 整数和浮点数Julia 数学运算和基本函数Julia 复数和分数Julia 字符串Julia 函数Julia 控制流Julia 变量的作用域Julia 类型Julia 方法Julia 构造函数Julia 类型转换和类型提升Julia 模块Julia 元编程Julia 多维数组Julia 线性代数Julia 网络和流Julia 并行计算Julia 日期和时间Julia 可空类型Julia 交互Julia 运行外部程序Julia 调用 C 和 Fortran 代码Julia 嵌入式 JuliaJulia 扩展包Julia 开发扩展包Julia 代码性能优化Julia 代码样式Julia 常见问题Julia 与其他语言的区别

Julia 线性代数


线性代数

矩阵分解

矩阵分解是将一个矩阵分解为数个矩阵的乘积,是线性代数中的一个核心概念。

下面的表格总结了在 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缩放矩阵

基本运算

矩阵类型+-*
其它已优化的函数
Hermitian


XYinv, sqrtm, expm
Triangular
XYXYinv, det
SymTridiagonalXXXZXYeigmax/min
TridiagonalXXXZXY
BidiagonalXXXZXY
DiagnoalXXXYXYinv, det, logdet, /
UniformScalingXXXYZXYZ/

图例:

X已对矩阵-矩阵运算优化
Y已对矩阵-向量运算优化
Z已对矩阵-标量运算优化

矩阵分解

矩阵类型LAPACKeigeigvalseigvecssvdsvdvals
HermitianHEABC



TriangularTR




SymTridiagonalSTAABCAD

TridiagonalGT




BidiagonalBD
AA

DiagonalDI
A


图例:

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+IA-I 这意味着 A 必须是一个方阵. 使用了单位算子 I 的乘法运算是一个空操作(除非缩放因子为一) ,因此基本没有开销。


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)