用法一
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
