用法一
lu(A::SparseMatrixCSC; check = true) -> F::UmfpackLU计算稀疏矩阵 A 的 LU 分解。
对于具有实数或复数元素类型的稀疏 A,F 的返回类型为 UmfpackLU{Tv, Ti} ,其中 Tv =   或 Float64 ComplexF64 并且 Ti 是整数类型(   或Int32  )。Int64 
当 check = true 时,如果分解失败,则会引发错误。当 check = false 时,检查分解的有效性(通过   )由用户负责。issuccess 
分解F 的各个组件可以通过索引访问:
| 零件 | 说明 | 
|---|---|
| L | L(下三角)部分的LU | 
| U | U(上三角)部分的LU | 
| p | 右排列 Vector | 
| q | 左排列 Vector | 
| Rs | Vector比例因子 | 
| : | (L,U,p,q,Rs)组件 | 
F和A之间的关系是
F.L*F.U == (F.Rs .* A)[F.p, F.q]
F进一步支持以下函数:
注意
lu(A::SparseMatrixCSC) 使用作为 SuiteSparse 一部分的 UMFPACK 库。由于此库仅支持具有   或 Float64 ComplexF64 元素的稀疏矩阵,因此 lu 将 A 转换为类型为 SparseMatrixCSC{Float64} 或 SparseMatrixCSC{ComplexF64} 的副本(视情况而定)。
用法二
lu(A, pivot = RowMaximum(); check = true) -> F::LU计算 A 的 LU 分解。
当 check = true 时,如果分解失败,则会引发错误。当 check = false 时,检查分解的有效性(通过   )由用户负责。issuccess 
在大多数情况下,如果 A 是 AbstractMatrix{T} 的子类型 S 且元素类型 T 支持 + 、 - 、 * 和 / ,则返回类型为 LU{T,S{T}} 。如果选择了旋转(默认),则元素类型还应支持   和 abs   。可以通过传递 < pivot = NoPivot() 来关闭旋转。
分解 F 的各个组件可以通过   访问:getproperty 
| 零件 | 说明 | 
|---|---|
| F.L | L(下三角)部分的LU | 
| F.U | U(上三角)部分的LU | 
| F.p | (右)排列 Vector | 
| F.P | (右)排列 Matrix | 
迭代分解生成组件 F.L 、 F.U 和 F.p 。
F和A之间的关系是
F.L*F.U == A[F.p, :]
F进一步支持以下函数:
| 支持的函数 | LU | LU{T,Tridiagonal{T}} | 
|---|---|---|
| :/ | ✓ | |
| :\方法 | ✓ | ✓ | 
| inv方法 | ✓ | ✓ | 
| LinearAlgebra.det | ✓ | ✓ | 
| LinearAlgebra.logdet | ✓ | ✓ | 
| LinearAlgebra.logabsdet | ✓ | ✓ | 
| size | ✓ | ✓ | 
例子
julia> A = [4 3; 6 3]
2×2 Matrix{Int64}:
 4  3
 6  3
julia> F = lu(A)
LU{Float64, Matrix{Float64}}
L factor:
2×2 Matrix{Float64}:
 1.0       0.0
 0.666667  1.0
U factor:
2×2 Matrix{Float64}:
 6.0  3.0
 0.0  1.0
julia> F.L * F.U == A[F.p, :]
true
julia> l, u, p = lu(A); # destructuring via iteration
julia> l == F.L && u == F.U && p == F.p
true相关用法
- Julia LinearAlgebra.lu!用法及代码示例
- Julia LinearAlgebra.logdet用法及代码示例
- Julia LinearAlgebra.ldlt!用法及代码示例
- Julia LinearAlgebra.ldiv!用法及代码示例
- Julia LinearAlgebra.ldlt用法及代码示例
- Julia LinearAlgebra.lq用法及代码示例
- Julia LinearAlgebra.logabsdet用法及代码示例
- Julia LinearAlgebra.lmul!用法及代码示例
- Julia LinearAlgebra.lyap用法及代码示例
- Julia LinearAlgebra.BLAS.dot用法及代码示例
- Julia LinearAlgebra.bunchkaufman用法及代码示例
- Julia LinearAlgebra.cholesky!用法及代码示例
- Julia LinearAlgebra.istriu用法及代码示例
- Julia LinearAlgebra.istril用法及代码示例
- Julia LinearAlgebra.stride1用法及代码示例
- Julia LinearAlgebra.svd用法及代码示例
- Julia LinearAlgebra.eigen用法及代码示例
- Julia LinearAlgebra.BLAS.dotu用法及代码示例
- Julia LinearAlgebra.I用法及代码示例
- Julia LinearAlgebra.Transpose用法及代码示例
- Julia LinearAlgebra.det用法及代码示例
- Julia LinearAlgebra.tril!用法及代码示例
- Julia LinearAlgebra.schur!用法及代码示例
- Julia LinearAlgebra.tr用法及代码示例
- Julia LinearAlgebra.axpby!用法及代码示例
注:本文由纯净天空筛选整理自julialang.org 大神的英文原创作品 LinearAlgebra.lu — Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
