用法一
ldlt(A::SparseMatrixCSC; shift = 0.0, check = true, perm=nothing) -> CHOLMOD.Factor
計算A
.A
必須是SparseMatrixCSC
或一個LinearAlgebra.Symmetric/LinearAlgebra.Hermitian一個視圖SparseMatrixCSC
.請注意,即使A
沒有類型標簽,它仍然必須是對稱的或 Hermitian。使用fill-reducing 排列。F = ldlt(A)
最常用於求解方程組A*x = b
和F\b
.返回的分解對象F
也支持方法LinearAlgebra.diag,LinearAlgebra.det,LinearAlgebra.logdet, 和inv方法.您可以從F
使用F.L
.但是,由於默認情況下啟用了透視,因此分解在內部表示為A == P'*L*D*L'*P
有一個置換矩陣P
;隻使用L
不考慮P
會給出不正確的答案。為了包括排列的影響,通常最好提取 "combined" 因子,例如PtL = F.PtL
(相當於P'*L
) 和LtP = F.UP
(相當於L'*P
)。支持因子的完整列表是:L, :PtL, :D, :UP, :U, :LD, :DU, :PtLD, :DUP
.
當 check = true
時,如果分解失敗,則會引發錯誤。當 check = false
時,檢查分解的有效性(通過 issuccess
)由用戶負責。
設置可選的 shift
關鍵字參數計算 A+shift*I
而不是 A
的分解。如果提供了perm
參數,它應該是1:size(A,1)
的排列,給出使用的順序(而不是 CHOLMOD 的默認 AMD 順序)。
注意
此方法使用 SuiteSparse 中的 CHOLMOD 庫,該庫僅支持雙打或複雙打。不屬於這些元素類型的輸入矩陣將酌情轉換為SparseMatrixCSC{Float64}
或SparseMatrixCSC{ComplexF64}
。
CHOLMOD 中的許多其他函數都已包裝,但未從 Base.SparseArrays.CHOLMOD
模塊導出。
用法二
ldlt(S::SymTridiagonal) -> LDLt
計算實對稱三對角矩陣S
的LDLt
分解,使得S = L*Diagonal(d)*L'
其中L
是單位下三角矩陣,d
是向量。 LDLt
因式分解 F = ldlt(S)
的主要用途是用 F\b
求解線性方程組 Sx = b
。
例子
julia> S = SymTridiagonal([3., 4., 5.], [1., 2.])
3×3 SymTridiagonal{Float64, Vector{Float64}}:
3.0 1.0 ⋅
1.0 4.0 2.0
⋅ 2.0 5.0
julia> ldltS = ldlt(S);
julia> b = [6., 7., 8.];
julia> ldltS \ b
3-element Vector{Float64}:
1.7906976744186047
0.627906976744186
1.3488372093023255
julia> S \ b
3-element Vector{Float64}:
1.7906976744186047
0.627906976744186
1.3488372093023255
相關用法
- Julia LinearAlgebra.ldlt!用法及代碼示例
- Julia LinearAlgebra.ldiv!用法及代碼示例
- Julia LinearAlgebra.logdet用法及代碼示例
- Julia LinearAlgebra.lu用法及代碼示例
- Julia LinearAlgebra.lq用法及代碼示例
- Julia LinearAlgebra.logabsdet用法及代碼示例
- Julia LinearAlgebra.lmul!用法及代碼示例
- Julia LinearAlgebra.lyap用法及代碼示例
- Julia LinearAlgebra.lu!用法及代碼示例
- 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.ldlt — Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。