用法一
eigen(A; permute::Bool=true, scale::Bool=true, sortby) -> Eigen
計算 A
的特征值分解,返回一個
分解對象 Eigen
F
,其中包含 F.values
中的特征值和矩陣 F.vectors
列中的特征向量。 (k
特征向量可以從切片 F.vectors[:, k]
中獲得。)
迭代分解產生組件 F.values
和 F.vectors
。
以下函數可用於 Eigen
對象:
、inv
和 det
。isposdef
對於一般的非對稱矩陣,可以在特征向量計算之前指定如何平衡矩陣。選項permute=true
將矩陣置換為更接近上三角形,而scale=true
將矩陣按其對角線元素縮放以使行和列在範數上更加相等。兩個選項的默認值為true
。
默認情況下,特征值和向量按字典順序按 (real(λ),imag(λ))
排序。可以將不同的比較函數 by(λ)
傳遞給 sortby
,或者您可以傳遞 sortby=nothing
以任意順序保留特征值。一些特殊的矩陣類型(例如
或 Diagonal
)可能會實現自己的排序約定並且不接受 SymTridiagonal
sortby
關鍵字。
例子
julia> F = eigen([1.0 0.0 0.0; 0.0 3.0 0.0; 0.0 0.0 18.0])
Eigen{Float64, Float64, Matrix{Float64}, Vector{Float64}}
values:
3-element Vector{Float64}:
1.0
3.0
18.0
vectors:
3×3 Matrix{Float64}:
1.0 0.0 0.0
0.0 1.0 0.0
0.0 0.0 1.0
julia> F.values
3-element Vector{Float64}:
1.0
3.0
18.0
julia> F.vectors
3×3 Matrix{Float64}:
1.0 0.0 0.0
0.0 1.0 0.0
0.0 0.0 1.0
julia> vals, vecs = F; # destructuring via iteration
julia> vals == F.values && vecs == F.vectors
true
用法二
eigen(A, B) -> GeneralizedEigen
計算 A
和 B
的廣義特征值分解,返回一個
分解對象 GeneralizedEigen
F
,其中包含 F.values
中的廣義特征值和矩陣 F.vectors
列中的廣義特征向量。 (第 k
個廣義特征向量可以從切片 F.vectors[:, k]
中獲得。)
迭代分解產生組件 F.values
和 F.vectors
。
傳遞給 eigen
的任何關鍵字參數都會傳遞給 lower-level
函數。eigen!
例子
julia> A = [1 0; 0 -1]
2×2 Matrix{Int64}:
1 0
0 -1
julia> B = [0 1; 1 0]
2×2 Matrix{Int64}:
0 1
1 0
julia> F = eigen(A, B);
julia> F.values
2-element Vector{ComplexF64}:
0.0 - 1.0im
0.0 + 1.0im
julia> F.vectors
2×2 Matrix{ComplexF64}:
0.0+1.0im 0.0-1.0im
-1.0+0.0im -1.0-0.0im
julia> vals, vecs = F; # destructuring via iteration
julia> vals == F.values && vecs == F.vectors
true
用法三
eigen(A::Union{SymTridiagonal, Hermitian, Symmetric}, irange::UnitRange) -> Eigen
計算 A
的特征值分解,返回一個
分解對象 Eigen
F
,其中包含 F.values
中的特征值和矩陣 F.vectors
列中的特征向量。 (k
特征向量可以從切片 F.vectors[:, k]
中獲得。)
迭代分解產生組件 F.values
和 F.vectors
。
以下函數可用於 Eigen
對象:
、inv
和 det
。isposdef
UnitRange
irange
指定要搜索的排序特征值的索引。
注意
如果 irange
不是 1:n
,其中 n
是 A
的維度,則返回的分解將是 truncated
分解。
用法四
eigen(A::Union{SymTridiagonal, Hermitian, Symmetric}, vl::Real, vu::Real) -> Eigen
計算 A
的特征值分解,返回一個
分解對象 Eigen
F
,其中包含 F.values
中的特征值和矩陣 F.vectors
列中的特征向量。 (k
特征向量可以從切片 F.vectors[:, k]
中獲得。)
迭代分解產生組件 F.values
和 F.vectors
。
以下函數可用於 Eigen
對象:
、inv
和 det
。isposdef
vl
是要搜索的特征值窗口的下限,vu
是上限。
注意
如果 [ vl
, vu
] 不包含 A
的所有特征值,則返回的分解將是 truncated
分解。
相關用法
- Julia LinearAlgebra.eigvecs用法及代碼示例
- Julia LinearAlgebra.eigvals用法及代碼示例
- Julia LinearAlgebra.eigvals!用法及代碼示例
- Julia LinearAlgebra.eigmin用法及代碼示例
- Julia LinearAlgebra.eigmax用法及代碼示例
- Julia LinearAlgebra.BLAS.dot用法及代碼示例
- Julia LinearAlgebra.bunchkaufman用法及代碼示例
- Julia LinearAlgebra.cholesky!用法及代碼示例
- Julia LinearAlgebra.istriu用法及代碼示例
- Julia LinearAlgebra.istril用法及代碼示例
- Julia LinearAlgebra.stride1用法及代碼示例
- Julia LinearAlgebra.svd用法及代碼示例
- Julia LinearAlgebra.logdet用法及代碼示例
- 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.LU用法及代碼示例
- Julia LinearAlgebra.isposdef!用法及代碼示例
注:本文由純淨天空篩選整理自julialang.org 大神的英文原創作品 LinearAlgebra.eigen — Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。