用法:
bunchkaufman(A, rook::Bool=false; check = true) -> S::BunchKaufman
根據存儲在 A
中的三角形,計算對稱或 Hermitian 矩陣 A
的 Bunch-Kaufman [Bunch1977] 分解為 P'*U*D*U'*P
或 P'*L*D*L'*P
,並返回
對象。請注意,如果 BunchKaufman
A
是複對稱的,則 U'
和 L'
表示非共軛轉置,即 transpose(U)
和 transpose(L)
。
在給定 S.uplo
和 S.p
的情況下,迭代分解產生組件 S.D
、 S.U
或 S.L
。
如果 rook
是 true
,則使用車旋轉。如果rook
為假,則不使用車旋轉。
當 check = true
時,如果分解失敗,則會引發錯誤。當 check = false
時,檢查分解的有效性(通過
)由用戶負責。issuccess
以下函數可用於BunchKaufman
對象:
、size
\
、
、inv
、issymmetric
、ishermitian
。getindex
例子
julia> A = [1 2; 2 3]
2×2 Matrix{Int64}:
1 2
2 3
julia> S = bunchkaufman(A) # A gets wrapped internally by Symmetric(A)
BunchKaufman{Float64, Matrix{Float64}}
D factor:
2×2 Tridiagonal{Float64, Vector{Float64}}:
-0.333333 0.0
0.0 3.0
U factor:
2×2 UnitUpperTriangular{Float64, Matrix{Float64}}:
1.0 0.666667
⋅ 1.0
permutation:
2-element Vector{Int64}:
1
2
julia> d, u, p = S; # destructuring via iteration
julia> d == S.D && u == S.U && p == S.p
true
julia> S.U*S.D*S.U' - S.P*A*S.P'
2×2 Matrix{Float64}:
0.0 0.0
0.0 0.0
julia> S = bunchkaufman(Symmetric(A, :L))
BunchKaufman{Float64, Matrix{Float64}}
D factor:
2×2 Tridiagonal{Float64, Vector{Float64}}:
3.0 0.0
0.0 -0.333333
L factor:
2×2 UnitLowerTriangular{Float64, Matrix{Float64}}:
1.0 ⋅
0.666667 1.0
permutation:
2-element Vector{Int64}:
2
1
julia> S.L*S.D*S.L' - A[S.p, S.p]
2×2 Matrix{Float64}:
0.0 0.0
0.0 0.0
相關用法
- Julia LinearAlgebra.BLAS.dot用法及代碼示例
- Julia LinearAlgebra.cholesky!用法及代碼示例
- Julia LinearAlgebra.istriu用法及代碼示例
- Julia LinearAlgebra.istril用法及代碼示例
- Julia LinearAlgebra.stride1用法及代碼示例
- Julia LinearAlgebra.svd用法及代碼示例
- Julia LinearAlgebra.logdet用法及代碼示例
- Julia LinearAlgebra.eigen用法及代碼示例
- Julia LinearAlgebra.BLAS.dotu用法及代碼示例
- Julia LinearAlgebra.ldlt!用法及代碼示例
- Julia LinearAlgebra.I用法及代碼示例
- Julia LinearAlgebra.Transpose用法及代碼示例
- Julia LinearAlgebra.det用法及代碼示例
- Julia LinearAlgebra.tril!用法及代碼示例
- Julia LinearAlgebra.schur!用法及代碼示例
- Julia LinearAlgebra.tr用法及代碼示例
- Julia LinearAlgebra.axpby!用法及代碼示例
- Julia LinearAlgebra.adjoint!用法及代碼示例
- Julia LinearAlgebra.eigvecs用法及代碼示例
- Julia LinearAlgebra.LU用法及代碼示例
- Julia LinearAlgebra.isposdef!用法及代碼示例
- Julia LinearAlgebra.LQ用法及代碼示例
- Julia LinearAlgebra.normalize用法及代碼示例
- Julia LinearAlgebra.diag用法及代碼示例
- Julia LinearAlgebra.rank用法及代碼示例
注:本文由純淨天空篩選整理自julialang.org 大神的英文原創作品 LinearAlgebra.bunchkaufman — Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。